forked from AuroraMiddleware/gtk
If the horizontal adjustment changes because of a change in the layout
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.
This commit is contained in:
parent
e9e878d1bc
commit
43af1f21b9
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user