On 07/28/2018 08:29 AM, John Coppens wrote: > On Sat, 28 Jul 2018 07:42:16 -0400 > Reuben Rissler <sil...@emypeople.net> wrote: > >>> Thanks for the suggestion. Believe it or not, I had just arrived at >>> that same solution! I first tried to use GLib.timeout_add(), and >>> that worked too, if the time was larger than 300 - 400 ms, which is >>> on the verge of annoying. I then tried idle_add(), and I guess that >>> makes the 300-400ms 'built-in'. >>> >> How many lines of text do you have? With 500 - 700 lines of text, my >> scrolling is instantaneous. The scroll feature itself has a 'soft' >> stop, but that is quite acceptable for me, as it is easier to adjust >> my eyes to the change. > > Reuben, > > The code I'm using to test is short (about 250 lines). I'm using the system > to single step program execution, so I will do many steps. The problem at > the moment is when loading the program, and scrolling to the start of > the program (the 'reset' position), but I see that the slowing down delay > is quite visible even when scrolling just one line with the arrow keys. > > I have some Gtk-2 programs where the delay is not apparent. Maybe this > is configurable? > > John > > _______________________________________________ > gtk-app-devel-list mailing list > gtk-app-devel-list@gnome.org > https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list >
John, Maybe we can trade help. There are actually two functions you can use to scroll the window to insure a text mark (usually the 'insert' mark) is visible within your view, e.g. (the following is from a find/replace widget I made) https://github.com/drankinatty/gtkwrite/blob/master/gtk_findreplace.c#L920 /* scroll window to mark to insure match is visible */ #ifndef TOMARK gtk_text_view_scroll_to_mark (GTK_TEXT_VIEW (app->view), app->last_pos, 0.0, TRUE, 0.95, 0.8); #else gtk_text_view_scroll_mark_onscreen (GTK_TEXT_VIEW (app->view), app->last_pos); #endif The gtk_text_view_scroll_to_mark give you finer control over how far from the bottom/top of your view the mark is displayed, the gtk_text_view_scroll_mark_onscreen just makes sure it is visible (but generally does a fine job) I left a #define in the code when I wrote it so I could compare the behavior of each. I use the gtk_text_view_scroll_to_mark by default. Both give instantaneous performance, even in a longer file (for me that is 2000 - 5000 lines) Also note it is called from 'btnreplace_activate' https://github.com/drankinatty/gtkwrite/blob/master/gtk_findreplace.c#L1001 and the scroll is wrapped within begin/end user action to prevent any selection bound changes being momentarily visible during the find/replace operation: gtk_text_buffer_begin_user_action (buffer); (code for gtk_text_view_scroll_to_mark gtk_text_buffer_end_user_action (buffer); You shouldn't notice any delay when implementing the scroll in any reasonable size file. -- David C. Rankin, J.D.,P.E. _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list