diff options
author | Matthias Clasen <mclasen@redhat.com> | 2004-04-20 13:50:19 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2004-04-20 13:50:19 +0000 |
commit | 2f49fbd6cd8749aa6c13370cc6fa83aaae958018 (patch) | |
tree | eebb09f83de6798b3e7423e7963af62bfdbed18e | |
parent | ca5188c4f2a62d5135f3f2953eddd0db835680bd (diff) | |
download | gdk-pixbuf-2f49fbd6cd8749aa6c13370cc6fa83aaae958018.tar.gz |
Make sure anchored children get size allocated, even if the layout is
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)
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | ChangeLog.pre-2-10 | 6 | ||||
-rw-r--r-- | ChangeLog.pre-2-4 | 6 | ||||
-rw-r--r-- | ChangeLog.pre-2-6 | 6 | ||||
-rw-r--r-- | ChangeLog.pre-2-8 | 6 | ||||
-rw-r--r-- | gtk/gtktextview.c | 20 |
6 files changed, 47 insertions, 3 deletions
@@ -1,3 +1,9 @@ +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 diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index fc01ee0a3..87a17afa8 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,9 @@ +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 diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index fc01ee0a3..87a17afa8 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,9 @@ +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 diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index fc01ee0a3..87a17afa8 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,9 @@ +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 diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index fc01ee0a3..87a17afa8 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,9 @@ +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 diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c index df8d87780..50efb41bd 100644 --- a/gtk/gtktextview.c +++ b/gtk/gtktextview.c @@ -43,6 +43,7 @@ #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" @@ -346,7 +347,7 @@ static void gtk_text_view_remove (GtkContainer *container, 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. */ @@ -2877,6 +2878,19 @@ gtk_text_view_allocate_children (GtkTextView *text_view) &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); @@ -4176,7 +4190,7 @@ gtk_text_view_paint (GtkWidget *widget, while (tmp_list != NULL) { GtkWidget *child = tmp_list->data; - + gtk_container_propagate_expose (GTK_CONTAINER (text_view), child, event); @@ -6108,7 +6122,7 @@ gtk_text_view_drag_data_received (GtkWidget *widget, GtkTextIter drop_point; GtkTextView *text_view; gboolean success = FALSE; - GtkTextBuffer *buffer; + GtkTextBuffer *buffer = NULL; text_view = GTK_TEXT_VIEW (widget); |