summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--ChangeLog.pre-2-109
-rw-r--r--ChangeLog.pre-2-89
-rw-r--r--gtk/gtktextview.c16
-rw-r--r--gtk/gtktextview.h5
5 files changed, 44 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index e32ee7944d..7ae8e6d8b3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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;