+2004-04-20 Matthias Clasen <mclasen@redhat.com>
+
+ * gtk/gtktextview.c (gtk_text_view_allocate_children): Make
+ sure anchored children get size allocated, even if the layout
+ is valid. (#122323, Andrew E. Makeev)
+
Mon Apr 19 17:59:17 2004 Owen Taylor <otaylor@redhat.com>
* INSTALL.in: Update libpng and libjpeg URLs, remove
+2004-04-20 Matthias Clasen <mclasen@redhat.com>
+
+ * gtk/gtktextview.c (gtk_text_view_allocate_children): Make
+ sure anchored children get size allocated, even if the layout
+ is valid. (#122323, Andrew E. Makeev)
+
Mon Apr 19 17:59:17 2004 Owen Taylor <otaylor@redhat.com>
* INSTALL.in: Update libpng and libjpeg URLs, remove
+2004-04-20 Matthias Clasen <mclasen@redhat.com>
+
+ * gtk/gtktextview.c (gtk_text_view_allocate_children): Make
+ sure anchored children get size allocated, even if the layout
+ is valid. (#122323, Andrew E. Makeev)
+
Mon Apr 19 17:59:17 2004 Owen Taylor <otaylor@redhat.com>
* INSTALL.in: Update libpng and libjpeg URLs, remove
+2004-04-20 Matthias Clasen <mclasen@redhat.com>
+
+ * gtk/gtktextview.c (gtk_text_view_allocate_children): Make
+ sure anchored children get size allocated, even if the layout
+ is valid. (#122323, Andrew E. Makeev)
+
Mon Apr 19 17:59:17 2004 Owen Taylor <otaylor@redhat.com>
* INSTALL.in: Update libpng and libjpeg URLs, remove
+2004-04-20 Matthias Clasen <mclasen@redhat.com>
+
+ * gtk/gtktextview.c (gtk_text_view_allocate_children): Make
+ sure anchored children get size allocated, even if the layout
+ is valid. (#122323, Andrew E. Makeev)
+
Mon Apr 19 17:59:17 2004 Owen Taylor <otaylor@redhat.com>
* INSTALL.in: Update libpng and libjpeg URLs, remove
#include "gtktextview.h"
#include "gtkimmulticontext.h"
#include "gdk/gdkkeysyms.h"
+#include "gtkprivate.h"
#include "gtksizegroup.h" /* FIXME http://bugzilla.gnome.org/show_bug.cgi?id=72258 */
#include "gtktextutil.h"
#include "gtkwindow.h"
GtkWidget *child);
static void gtk_text_view_forall (GtkContainer *container,
gboolean include_internals,
- GtkCallback callback,
+ GtkCallback callback,
gpointer callback_data);
/* FIXME probably need the focus methods. */
&child_loc,
child->anchor);
+ /* Since anchored children are only ever allocated from
+ * gtk_text_layout_get_line_display() we have to make sure
+ * that the display line caching in the layout doesn't
+ * get in the way. Invalidating the layout around the anchor
+ * achieves this.
+ */
+ if (GTK_WIDGET_ALLOC_NEEDED (child->widget))
+ {
+ GtkTextIter end = child_loc;
+ gtk_text_iter_forward_char (&end);
+ gtk_text_layout_invalidate (text_view->layout, &child_loc, &end);
+ }
+
gtk_text_layout_validate_yrange (text_view->layout,
&child_loc,
0, 1);
while (tmp_list != NULL)
{
GtkWidget *child = tmp_list->data;
-
+
gtk_container_propagate_expose (GTK_CONTAINER (text_view),
child,
event);
GtkTextIter drop_point;
GtkTextView *text_view;
gboolean success = FALSE;
- GtkTextBuffer *buffer;
+ GtkTextBuffer *buffer = NULL;
text_view = GTK_TEXT_VIEW (widget);