X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=xhistory.c;h=0551ce1f5bf3c849de9dfaa182a3da75675afdfd;hb=d2cf7f334d5525ed43002f974dd4c6e727956584;hp=0ac764fed977fb8c0994d0b89188678cc2c4706e;hpb=cbb23e5f23cee542f8099c7f80fd07df8d9f0a08;p=xboard.git diff --git a/xhistory.c b/xhistory.c index 0ac764f..0551ce1 100644 --- a/xhistory.c +++ b/xhistory.c @@ -24,6 +24,7 @@ #include #include +#include #include "common.h" #include "backend.h" @@ -48,34 +49,11 @@ extern Option historyOptions[]; // ------------- low-level front-end actions called by MoveHistory back-end ----------------- void -HighlightMove (int from, int to, Boolean highlight) -{ -#ifdef TODO_GTK - if(highlight) - XawTextSetSelection( historyOptions[0].handle, from, to ); // for lack of a better method, use selection for highighting -#endif -} - -void ScrollToCurrent (int caretPos) { -#ifdef TODO_GTK - Arg args[10]; - char *s; - int len; - GetWidgetText(&historyOptions[0], &s); - len = strlen(s); - if(caretPos < 0 || caretPos > len) caretPos = len; - if(caretPos > len-30) { // scroll to end, which causes no flicker - static XEvent event; - XtCallActionProc(historyOptions[0].handle, "end-of-file", &event, NULL, 0); - return; - } - // the following leads to a very annoying flicker, even when no scrolling is done at all. - XtSetArg(args[0], XtNinsertPosition, caretPos); // this triggers scrolling in Xaw - XtSetArg(args[1], XtNdisplayCaret, False); - XtSetValues(historyOptions[0].handle, args, 2); -#endif + static GtkTextIter iter; + gtk_text_buffer_get_iter_at_offset((GtkTextBuffer *) historyOptions[0].handle, &iter, caretPos); + gtk_text_view_scroll_to_iter((GtkTextView *) historyOptions[0].textValue, &iter, 0.0, 0, 0.5, 0.5); }