new version number for release 4.7.2
[xboard.git] / gtk / xoptions.c
index 18fc857..7a03ffb 100644 (file)
@@ -317,8 +317,13 @@ void
 ScrollToCursor (Option *opt, int caretPos)
 {
     static GtkTextIter iter;
+    static GtkTextMark *mark;
+    if(!mark) mark = gtk_text_mark_new(NULL, 0);
     gtk_text_buffer_get_iter_at_offset((GtkTextBuffer *) opt->handle, &iter, caretPos);
-    gtk_text_view_scroll_to_iter((GtkTextView *) opt->textValue, &iter, 0.0, 0, 0.5, 0.5);
+    gtk_text_buffer_add_mark((GtkTextBuffer *) opt->handle, mark, &iter);
+    gtk_text_view_scroll_to_mark((GtkTextView *) opt->textValue, mark, 0.0, 0, 0.5, 0.5);
+//    gtk_text_view_scroll_to_iter((GtkTextView *) opt->textValue, &iter, 0.0, 0, 0.5, 0.5);
+    gtk_text_buffer_delete_mark((GtkTextBuffer *) opt->handle, mark);
 }
 
 int
@@ -1571,13 +1576,8 @@ SendText (int n)
 void
 SetInsertPos (Option *opt, int pos)
 {
-#ifdef TODO_GTK
-    Arg args[16];
-    XtSetArg(args[0], XtNinsertPosition, pos);
-    XtSetValues(opt->handle, args, 1);
-//    SetFocus(opt->handle, shells[InputBoxDlg], NULL, False); // No idea why this does not work, and the following is needed:
-//    XSetInputFocus(xDisplay, XtWindow(opt->handle), RevertToPointerRoot, CurrentTime);
-#endif
+    if(opt->value > 80) ScrollToCursor(opt, pos);
+    else gtk_editable_set_position(GTK_EDITABLE(opt->handle), pos);
 }
 
 void