gtk/gdk/x11
Carlos Garnacho 4168c3cab9 gdk: be more selective resetting scroll events
It's been reported in several applications that scrolling feels jerky
since commit cc7b3985b3.

Investigation reported that the combination of passive 4-7 button grabs
on the toplevel and the presence of native subwindows might trigger
too often crossing events from the child window to the toplevel and
back as scroll "buttons" trigger the passive grab. Those crossing events
would reset the scroll valuators rendering scrolling from jerky on
touchpads (where there's intermediate smooth events between the emulated
button ones) to ineffective on regular mouse wheels (where the crossing
event would reset the valuators right before the single smooth scroll
event we get is delivered)

So, only reset scroll valuators when the pointer enters the toplevel
(we only care about this when the pointer is on the window after it's
been possibly scrolling somewhere else), and it doesn't come from an
inferior.

The situations where this happened varied though, the native subwindow
could be one created explicitly by the application, or created indirectly
through gdk_window_ensure_native(). The latter was mainly the case for
evolution (through gtk_selection_set_owner()) and any GtkScrolledWindow
under the oxygen-gtk3 theme (through gdk_window_set_composited())

https://bugzilla.gnome.org/show_bug.cgi?id=699574
2013-11-17 00:42:18 +01:00
..
gdkapplaunchcontext-x11.c all: Add names to timeouts 2013-10-23 13:31:18 +02:00
gdkasync.c x11: Mark unused variables as such 2012-03-01 05:32:34 +01:00
gdkasync.h Change FSF Address 2012-02-27 17:06:11 +00:00
gdkcursor-x11.c gdk: Add gdk_cursor_new_from_surface 2013-08-07 13:34:10 +02:00
gdkdevice-core-x11.c gdk: Convert mouse position to doubles, add new getters 2013-07-03 14:39:25 +02:00
gdkdevice-xi2.c gdk: Convert mouse position to doubles, add new getters 2013-07-03 14:39:25 +02:00
gdkdevicemanager-core-x11.c x11: Remove dead assignment 2013-08-13 16:25:27 +02:00
gdkdevicemanager-x11.c gdkdevicemanager-x11: Request XI2.3 2013-01-28 12:53:39 -05:00
gdkdevicemanager-xi2.c gdk: be more selective resetting scroll events 2013-11-17 00:42:18 +01:00
gdkdevicemanagerprivate-core.h x11: Avoid spurious focus events on grabs 2012-03-07 15:35:21 +01:00
gdkdisplay-x11.c gdkdisplay-x11: Do not pass a NULL source device to _gdk_display_device_grab_update 2013-09-16 12:47:38 +02:00
gdkdisplay-x11.h x11: Remove motif dnd leftovers 2013-06-13 15:31:35 +02:00
gdkdisplaymanager-x11.c displaymanager: Remove GInitable implementation 2013-05-02 16:17:30 +02:00
gdkdnd-x11.c x11: Initial cut at supporting window scaling for X11 2013-07-03 14:34:14 +02:00
gdkeventsource.c Handle recursion from motion event handlers 2013-11-11 23:17:14 -05:00
gdkeventsource.h Change FSF Address 2012-02-27 17:06:11 +00:00
gdkeventtranslator.c Change FSF Address 2012-02-27 17:06:11 +00:00
gdkeventtranslator.h Change FSF Address 2012-02-27 17:06:11 +00:00
gdkgeometry-x11.c x11: Initial cut at supporting window scaling for X11 2013-07-03 14:34:14 +02:00
gdkkeys-x11.c gdkkeys-x11: Remove workaround code for Sun Microsystems X server 2013-08-02 09:03:10 -04:00
gdkmain-x11.c x11: Initial cut at supporting window scaling for X11 2013-07-03 14:34:14 +02:00
gdkprivate-x11.h gdk: Add gdk_cursor_new_from_surface 2013-08-07 13:34:10 +02:00
gdkproperty-x11.c docs: Move property section docs to correct file 2013-04-16 15:30:14 +02:00
gdkscreen-x11.c x11: Add EWMH workspace handling api 2013-08-24 00:51:56 -04:00
gdkscreen-x11.h x11: Don't follow dpi and scale from xsettings when GDK_SCALE set 2013-07-03 14:36:05 +02:00
gdkselection-x11.c Change FSF Address 2012-02-27 17:06:11 +00:00
gdksettings.c Add a GtkSetting for 'shell-shows-desktop' 2013-11-14 15:03:04 -05:00
gdktestutils-x11.c Change FSF Address 2012-02-27 17:06:11 +00:00
gdkvisual-x11.c GdkVisualX11: Add a dispose implementation 2013-06-29 19:22:51 -04:00
gdkwindow-x11.c gdkwindow-x11: Don't set WM_TAKE_FOCUS if accept_focus is FALSE 2013-10-21 13:43:14 -04:00
gdkwindow-x11.h Disable frame sync for GtkPlug 2013-07-22 18:36:58 -04:00
gdkx11applaunchcontext.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11cursor.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11device-core.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11device-xi2.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11device.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkx11devicemanager-core.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11devicemanager-xi2.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11devicemanager-xi.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11devicemanager.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkx11display.h x11: Add gdk_x11_display_set_window_scale 2013-08-20 11:15:08 +02:00
gdkx11displaymanager.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11dnd.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11keys.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11property.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11screen.h x11: Add EWMH workspace handling api 2013-08-24 00:51:56 -04:00
gdkx11selection.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11utils.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11visual.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11window.h x11: Add EWMH workspace handling api 2013-08-24 00:51:56 -04:00
gdkx.h Require XInput2.h in X11 backend 2012-03-02 12:52:12 +00:00
gdkxftdefaults.c Change FSF Address 2012-02-27 17:06:11 +00:00
gdkxid.c Change FSF Address 2012-02-27 17:06:11 +00:00
Makefile.am New visibility handling in gdk 2013-05-05 15:38:48 -04:00
MwmUtil.h Change FSF Address 2012-02-27 17:06:11 +00:00
xsettings-client.c x11: Don't follow dpi and scale from xsettings when GDK_SCALE set 2013-07-03 14:36:05 +02:00
xsettings-client.h x11: Get rid of XSettingsClient object 2013-02-19 14:33:39 +01:00