Re: Dealing with GTK 3.3.18 scrolling handling changes for GNOME 3.4
- From: Bastien Nocera <hadess hadess net>
- To: Carlos Garnacho <carlosg gnome org>
- Cc: desktop-devel-list gnome org, Colin Walters <walters verbum org>
- Subject: Re: Dealing with GTK 3.3.18 scrolling handling changes for GNOME 3.4
- Date: Fri, 16 Mar 2012 12:56:22 +0100
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]