keep the cursor visible when the size changes. Fixes bug #344874.

2006-06-22  Michael Natterer  <mitch@imendio.com>

	* gtk/gtktextview.c (gtk_text_view_size_allocate): keep the cursor
	visible when the size changes. Fixes bug #344874.
This commit is contained in:
Michael Natterer 2006-06-22 14:37:53 +00:00 committed by Michael Natterer
parent 63ba491f40
commit 9365af4cd3
3 changed files with 24 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2006-06-22 Michael Natterer <mitch@imendio.com>
* gtk/gtktextview.c (gtk_text_view_size_allocate): keep the cursor
visible when the size changes. Fixes bug #344874.
2006-06-22 Matthias Clasen <mclasen@redhat.com> 2006-06-22 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkpintjob.h: Add a note about updating the registration. * gtk/gtkpintjob.h: Add a note about updating the registration.

View File

@ -1,3 +1,8 @@
2006-06-22 Michael Natterer <mitch@imendio.com>
* gtk/gtktextview.c (gtk_text_view_size_allocate): keep the cursor
visible when the size changes. Fixes bug #344874.
2006-06-22 Matthias Clasen <mclasen@redhat.com> 2006-06-22 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkpintjob.h: Add a note about updating the registration. * gtk/gtkpintjob.h: Add a note about updating the registration.

View File

@ -3127,11 +3127,21 @@ gtk_text_view_size_allocate (GtkWidget *widget,
*/ */
gtk_text_view_flush_first_validate (text_view); gtk_text_view_flush_first_validate (text_view);
/* widget->window doesn't get auto-redrawn as the layout is computed, so has to
* be invalidated
*/
if (size_changed && GTK_WIDGET_REALIZED (widget)) if (size_changed && GTK_WIDGET_REALIZED (widget))
gdk_window_invalidate_rect (widget->window, NULL, FALSE); {
GtkTextBuffer *buffer;
/* widget->window doesn't get auto-redrawn as the layout is
* computed, so has to be invalidated
*/
gdk_window_invalidate_rect (widget->window, NULL, FALSE);
/* keep cursor visible */
buffer = get_buffer (text_view);
gtk_text_view_scroll_to_mark (text_view,
gtk_text_buffer_get_mark (buffer, "insert"),
0.0, FALSE, 0.0, 0.0);
}
} }
static void static void