GNOME Bugzilla – Bug 137713
GtkViewport unexpectedly calls process_updates on scrollbars
Last modified: 2013-08-14 02:31:55 UTC
GtkViewport listens for value_changed signals from its scrollbars. This signal gets sent whenever you call gtk_adjustment_value_changed(). In the signal handler, the viewport calls gdk_window_process_updates on the scrollbar window. Gtk+ 2.2.1. In the eclipse IDE, scrollbars are repositioned and their values are changed when the layout changes (like going from debug mode to code editing mode). In this case, gtk_adjustment_value_changed() is called while in the middle of doing the whole repaint. The effect is that scrollbars 'pop' to their new location and setting before their surrounding widgets have had a chance to render. This just looks wrong. The side effect of calling process_updates is unexpected and seems wrong. On IRC it was mentioned this was done to keep scrollbars 'snappy', but this does not take into account layout changes which may cause scrollbar values to change. Looking at the code, we believe this problem will still exist in Gtk+ 2.4.
Mass changing gtk+ bugs with target milestone of 2.4.2 to target 2.4.4, as Matthias said he was trying to do himself on IRC and was asking for help with. If you see this message, it means I was successful at fixing the borken-ness in bugzilla :) Sorry for the spam; just query on this message and delete all emails you get with this message, since there will probably be a lot.
there's no more calls to gdk_window_process_updates in gtkviewport.c