diff options
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | ChangeLog.pre-2-10 | 9 | ||||
-rw-r--r-- | ChangeLog.pre-2-8 | 9 | ||||
-rw-r--r-- | gtk/gtktextview.c | 16 | ||||
-rw-r--r-- | gtk/gtktextview.h | 5 |
5 files changed, 44 insertions, 4 deletions
@@ -1,3 +1,12 @@ +2005-05-18 Anders Carlsson <andersca@imendio.com> + + * gtk/gtktextview.c: (gtk_text_view_flush_scroll), + (gtk_text_view_update_adjustments), (gtk_text_view_value_changed): + * gtk/gtktextview.h: + If the horizontal adjustment changes because of a change in the + layout width, then do a complete redraw. This is because there + might be right-aligned or centered text that needs to be redrawn. + 2005-05-18 Matthias Clasen <mclasen@redhat.com> * gtk/gtkwidget.c (gtk_widget_add_events): Try harder to set diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index e32ee7944d..7ae8e6d8b3 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,12 @@ +2005-05-18 Anders Carlsson <andersca@imendio.com> + + * gtk/gtktextview.c: (gtk_text_view_flush_scroll), + (gtk_text_view_update_adjustments), (gtk_text_view_value_changed): + * gtk/gtktextview.h: + If the horizontal adjustment changes because of a change in the + layout width, then do a complete redraw. This is because there + might be right-aligned or centered text that needs to be redrawn. + 2005-05-18 Matthias Clasen <mclasen@redhat.com> * gtk/gtkwidget.c (gtk_widget_add_events): Try harder to set diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index e32ee7944d..7ae8e6d8b3 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,12 @@ +2005-05-18 Anders Carlsson <andersca@imendio.com> + + * gtk/gtktextview.c: (gtk_text_view_flush_scroll), + (gtk_text_view_update_adjustments), (gtk_text_view_value_changed): + * gtk/gtktextview.h: + If the horizontal adjustment changes because of a change in the + layout width, then do a complete redraw. This is because there + might be right-aligned or centered text that needs to be redrawn. + 2005-05-18 Matthias Clasen <mclasen@redhat.com> * gtk/gtkwidget.c (gtk_widget_add_events): Try harder to set diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c index 668dd4e12f..d207cf6810 100644 --- a/gtk/gtktextview.c +++ b/gtk/gtktextview.c @@ -1728,7 +1728,7 @@ gtk_text_view_flush_scroll (GtkTextView *text_view) scroll->use_align, scroll->xalign, scroll->yalign); - + free_pending_scroll (scroll); return retval; @@ -1776,6 +1776,9 @@ gtk_text_view_update_adjustments (GtkTextView *text_view) if (text_view->width != width || text_view->height != height) { + if (text_view->width != width) + text_view->width_changed = TRUE; + text_view->width = width; text_view->height = height; @@ -6489,6 +6492,17 @@ gtk_text_view_value_changed (GtkAdjustment *adj, { dx = text_view->xoffset - (gint)adj->value; text_view->xoffset = adj->value; + + /* If the change is due to a size change we need + * to invalidate the entire text window because there might be + * right-aligned or centered text + */ + if (text_view->width_changed) + { + gdk_window_invalidate_rect (text_view->text_window->bin_window, NULL, FALSE); + + text_view->width_changed = FALSE; + } } else if (adj == text_view->vadjustment) { diff --git a/gtk/gtktextview.h b/gtk/gtktextview.h index ff3a67c800..9062935330 100644 --- a/gtk/gtktextview.h +++ b/gtk/gtktextview.h @@ -93,8 +93,7 @@ struct _GtkTextView guint accepts_tab : 1; - /* this flag is no longer used */ - guint reserved : 1; + guint width_changed : 1; /* debug flag - means that we've validated onscreen since the * last "invalidate" signal from the layout @@ -102,7 +101,7 @@ struct _GtkTextView guint onscreen_validated : 1; guint mouse_cursor_obscured : 1; - + GtkTextWindow *text_window; GtkTextWindow *left_window; GtkTextWindow *right_window; |