Re: Dealing with GTK 3.3.18 scrolling handling changes for GNOME 3.4



Em Fri, 2012-03-16 às 12:51 +0100, Carlos Garnacho escreveu:
> Hey,
> 
> In order to provide some background to the ML, scroll events were being
> sent to widgets with GDK_BUTTON_PRESS_MASK (no scroll mask required),
> but this played odd with smooth scrolling as scrolled windows get scroll
> events in 2 ways:
> 
> 1) bubbled up from the child within
> 2) received directly via priv->overshoot_window, only if no child
> handles scrolling
> 
> With the old behavior, 1) would happen on every widget that would handle
> button presses, but not necessarily scrolling, so scrolling in a
> viewport or textview (handling smooth scroll) with eg. buttons (handling
> just button presses) would intermittently coerce smooth and non-smooth
> scrolling depending on the widget below the pointer, the weighted
> solutions were:
> 
> 1) Requiring apps to set GDK_SMOOTH_SCROLL_MASK on *every* widget within
> a scrolled window if they want smooth scrolling, or face odd behavior
> 2) Changing GDK so scroll events are only sent if
> GDK_[SMOOTH_]SCROLL_MASK is in the evmask.

So gtk_widget_add_events (widget, GDK_SCROLL_MASK); for every widget for
which we want the old behaviour back, correct? Sounds doable by 3.4.

<snip>
> > 0) Patch affected applications
> 
> I think that should be done anyway for coherence (if you expect scroll
> events, setting the scroll mask shouldn't hurt). I could just count 3
> custom scrollable widgets in gnome outside of gtk (webkit, g-t and
> gucharmap), so it shouldn't be a big effort either.

There's a gazillion pieces of code that use scroll events and that'll
need updating. The smaller the quick fix, the better.

Cheers



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]