changeset 353:08e56a0f9541

dw_mle_set() now moves the viewport to the cursor location.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Thu, 17 Apr 2003 20:01:23 +0000
parents feed7567764f
children 3a51ecc8383a
files gtk/dw.c
diffstat 1 files changed, 11 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/gtk/dw.c	Wed Apr 16 16:58:00 2003 +0000
+++ b/gtk/dw.c	Thu Apr 17 20:01:23 2003 +0000
@@ -2241,6 +2241,7 @@
 	tmp = gtk_text_view_new();
 	gtk_container_add (GTK_CONTAINER(tmpbox), tmp);
 	gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(tmp), GTK_WRAP_NONE);
+
 	scroller = NULL;  
 #else
 	tmpbox = gtk_hbox_new(FALSE, 0);
@@ -3210,10 +3211,20 @@
 		{
 			GtkTextBuffer *tbuffer;
 			GtkTextIter iter;
+			GtkTextMark *mark = (GtkTextMark *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_mark");
 
 			tbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tmp));
 			gtk_text_buffer_get_iter_at_offset(tbuffer, &iter, point);
+			if(!mark)
+			{
+				mark = gtk_text_buffer_create_mark(tbuffer, NULL, &iter, FALSE);
+				gtk_object_set_data(GTK_OBJECT(handle), "_dw_mark", (gpointer)mark);
+			}
+			else
+				gtk_text_buffer_move_mark(tbuffer, mark, &iter);
 			gtk_text_buffer_place_cursor(tbuffer, &iter);
+			gtk_text_view_scroll_to_mark(GTK_TEXT_VIEW(tmp), mark,
+										 0, FALSE, 0, 0);
 		}
 #else
 		if(tmp && GTK_IS_TEXT(tmp))