gtk/gdk
Carlos Garnacho c0c5ce2f9b gdk/x11: Ignore regular crossing events while in implicit grabs
If we create an implicit grab on a surface, leave the surface, and
release the button, we would get 2 XI_Leave events, one with mode
XINotifyNormal when the pointer leaves the surface, and another with
mode XINotifyUngrab when the button is released.

Meanwhile, the upper layers rely on crossing events being paired,
and particularly in no crossing event being sent until the implicit
grab is dismissed (either by releasing it, or via more pervasive
grabs).

Ignoring the set of XINotifyNormal events while an implicit grab
is active adapts the X11 backend to this behavior. If the grab were
released or taken away by another grab, a crossing event with one
of the other XINotify*Grab/XINotify*Ungrab will be generated.

Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/2879
2020-07-09 17:02:07 +02:00
..
broadway gdk: Drop GdkGrabOwnership 2020-06-23 23:42:53 +02:00
quartz Rename master and slave device 2020-06-18 19:22:20 +01:00
resources/glsl
wayland gtk#767 add a way to change the application_id of a toplevel wayland GdkSurface 2020-07-07 15:56:12 +01:00
win32 gdk: Drop GdkGrabOwnership 2020-06-23 23:42:53 +02:00
x11 gdk/x11: Ignore regular crossing events while in implicit grabs 2020-07-09 17:02:07 +02:00
COPYING
default_cursor.png gdk: Include a default cursor as resource 2020-04-26 14:41:52 -04:00
filetransferportal.c filechooser portal: Free portal proxy when bus connection closes 2020-02-04 14:08:10 +01:00
filetransferportalprivate.h
gdk-autocleanup.h gdk: Make GdkKeymap a private api 2020-04-06 16:32:03 -04:00
gdk-private.h gdk: Better help for GDK_DEBUG 2020-06-28 13:42:02 -04:00
gdk.c gdk: Better help for GDK_DEBUG 2020-06-28 13:42:02 -04:00
gdk.h Add a GdkDragSurface interface 2020-03-12 14:56:21 -04:00
gdkapplaunchcontext.c docs: Fix several missing references in the documentation 2020-05-11 19:26:20 +02:00
gdkapplaunchcontext.h Add a getter for GdkAppLaunchContext::display 2020-02-24 08:32:34 -05:00
gdkapplaunchcontextprivate.h
gdkcairo.c gdk: Remove gdk_cairo_get_clip_rectangle() 2020-02-13 07:36:38 +01:00
gdkcairo.h gdk: Remove gdk_cairo_get_clip_rectangle() 2020-02-13 07:36:38 +01:00
gdkcairocontext.c
gdkcairocontext.h
gdkcairocontextprivate.h
gdkclipboard.c Fix minor typos 2020-06-18 10:47:16 +03:00
gdkclipboard.h
gdkclipboardprivate.h
gdkconfig.h.meson
gdkconfig.h.win32
gdkconfig.h.win32_vulkan
gdkconstructor.h
gdkcontentdeserializer.c
gdkcontentdeserializer.h
gdkcontentformats.c docs: Fix several missing references in the documentation 2020-05-11 19:26:20 +02:00
gdkcontentformats.h contentformats: Constify some functions 2020-03-02 04:43:56 +01:00
gdkcontentformatsprivate.h
gdkcontentprovider.c docs: Fix several missing references in the documentation 2020-05-11 19:26:20 +02:00
gdkcontentprovider.h
gdkcontentproviderimpl.c Fix minor typos 2020-06-18 10:47:16 +03:00
gdkcontentproviderimpl.h Remove gdk_content_provider_new_with_formats() 2020-02-18 02:40:00 +01:00
gdkcontentproviderprivate.h
gdkcontentserializer.c
gdkcontentserializer.h
gdkcursor.c
gdkcursor.h
gdkcursorprivate.h
gdkdevice.c gdk: Drop gdk_device_get_last_event_surface() 2020-06-24 11:24:04 +02:00
gdkdevice.h docs: Remove ancient version information 2020-06-27 21:46:22 -04:00
gdkdevicepad.c
gdkdevicepad.h
gdkdevicepadprivate.h
gdkdeviceprivate.h Rename master and slave device 2020-06-18 19:22:20 +01:00
gdkdevicetool.c
gdkdevicetool.h
gdkdevicetoolprivate.h
gdkdisplay.c gdk: Drop GdkGrabOwnership 2020-06-23 23:42:53 +02:00
gdkdisplay.h Bring back gdk_display_put_event 2020-05-29 09:26:50 -04:00
gdkdisplaymanager.c Fix minor typos 2020-05-28 11:00:03 +03:00
gdkdisplaymanager.h
gdkdisplaymanagerprivate.h
gdkdisplayprivate.h gdk: Drop GdkGrabOwnership 2020-06-23 23:42:53 +02:00
gdkdrag.c docs: Fix several missing references in the documentation 2020-05-11 19:26:20 +02:00
gdkdrag.h gdk: Make gdk_drag_begin take doubles 2020-05-17 17:51:03 -04:00
gdkdragprivate.h Strip const from GdkEvent 2020-02-21 00:51:02 -05:00
gdkdragsurface.c docs: Remove unnecessary SECTION 2020-05-12 18:44:21 +01:00
gdkdragsurface.h Annotation fixes 2020-04-03 15:30:56 +01:00
gdkdragsurfaceprivate.h Add a GdkDragSurface interface 2020-03-12 14:56:21 -04:00
gdkdrawcontext.c docs: Fix several missing references in the documentation 2020-05-11 19:26:20 +02:00
gdkdrawcontext.h
gdkdrawcontextprivate.h
gdkdrop.c docs: Fix several missing references in the documentation 2020-05-11 19:26:20 +02:00
gdkdrop.h drop: Remove unused convenience APIs 2020-03-02 04:43:56 +01:00
gdkdropprivate.h gdk: Make gdk_drop_status() take preferred action 2020-03-02 04:43:56 +01:00
gdkenumtypes.c.template
gdkenumtypes.h.template
gdkevents.c gdk: Small documentation fixes 2020-06-28 12:24:03 -04:00
gdkevents.h gdk: Add gdk_event_get_seat() 2020-06-23 23:42:53 +02:00
gdkeventsprivate.h Keep scroll history 2020-06-09 13:43:03 -04:00
gdkframeclock.c frame-clock: New approach in smoothing frame clock 2020-05-28 15:13:07 +02:00
gdkframeclock.h
gdkframeclockidle.c frame clock: fix scheduling 2020-06-15 08:54:18 +02:00
gdkframeclockidleprivate.h
gdkframeclockprivate.h frame-clock: New approach in smoothing frame clock 2020-05-28 15:13:07 +02:00
gdkframetimings.c
gdkframetimings.h
gdkgl.c Switch to GL_ARB_framebuffer_object 2020-06-12 15:08:44 +02:00
gdkglcontext.c Fixed OpenGL extension detection for extensions promoted to OpenGL core. 2020-02-14 05:41:01 +11:00
gdkglcontext.h
gdkglcontextprivate.h
gdkglobals.c
gdkgltexture.c
gdkgltexture.h
gdkgltextureprivate.h
gdkinternals.h gdk: Drop GdkGrabOwnership 2020-06-23 23:42:53 +02:00
gdkintl.h
gdkkeynames.c
gdkkeys.c Fix minor typos 2020-06-18 10:47:16 +03:00
gdkkeys.h gdk: Make GdkKeymap a private api 2020-04-06 16:32:03 -04:00
gdkkeysprivate.h keymap: Cache key info 2020-04-30 13:05:52 -04:00
gdkkeysyms-update.pl
gdkkeysyms.h
gdkkeyuni.c gdk: Clarify the docs of gdk_keyval_to_unicode 2020-06-22 13:24:34 -04:00
gdkmarshalers.list
gdkmemorytexture.c
gdkmemorytexture.h
gdkmemorytextureprivate.h
gdkmonitor.c display: Remove unneeded getters 2020-05-17 07:32:37 +02:00
gdkmonitor.h Remove primary monitor api 2020-01-30 21:33:37 +01:00
gdkmonitorprivate.h monitor: Add gdk_monitor_set_geometry() 2020-05-17 07:10:34 +02:00
gdkpaintable.c xxx: Add a hack to make paintables transform to/from objects 2020-05-30 19:26:46 -04:00
gdkpaintable.h docs: Fix several missing references in the documentation 2020-05-11 19:26:20 +02:00
gdkpango.c
gdkpango.h
gdkpipeiostream.c
gdkpipeiostreamprivate.h
gdkpixbuf-drawable.c
gdkpixbuf.h
gdkpopup.c docs: Fix several missing references in the documentation 2020-05-11 19:26:20 +02:00
gdkpopup.h surface: Implement GdkPopup 2020-03-11 19:35:55 -04:00
gdkpopuplayout.c popuplayout: Add docs 2020-03-11 19:35:55 -04:00
gdkpopuplayout.h gdk: Documentation fixups 2020-06-05 20:59:51 -04:00
gdkpopupprivate.h Introduce GdkPopup 2020-03-11 19:35:55 -04:00
gdkprofiler.c profiler: Add G_GNUC_PRINTF markers to silence warnings 2020-02-12 13:36:04 +01:00
gdkprofilerprivate.h profiler: Add _end_mark() version of _add_mark() 2020-02-12 11:25:34 +01:00
gdkrectangle.c
gdkrectangle.h
gdkrgba.c Drop fallback-c89.c 2020-05-31 17:09:23 +02:00
gdkrgba.h
gdkrgbaprivate.h build: Add more useful warning flags 2020-03-05 07:56:28 +01:00
gdkseat.c gdk: Drop gdk_seat_get_logical_pointers() 2020-06-23 23:42:53 +02:00
gdkseat.h gdk: Drop gdk_seat_get_logical_pointers() 2020-06-23 23:42:53 +02:00
gdkseatdefault.c gdk: Drop gdk_seat_get_logical_pointers() 2020-06-23 23:42:53 +02:00
gdkseatdefaultprivate.h Rename master and slave device 2020-06-18 19:22:20 +01:00
gdkseatprivate.h gdk: Drop gdk_seat_get_logical_pointers() 2020-06-23 23:42:53 +02:00
gdksnapshot.c
gdksnapshot.h
gdksnapshotprivate.h
gdksurface.c gdk: Depend less on gdk_event_get_device() 2020-06-23 23:42:53 +02:00
gdksurface.h gdk: Drop supports_multidevice API 2020-06-23 23:42:53 +02:00
gdksurfaceprivate.h gdk: Drop supports_multidevice API 2020-06-23 23:42:53 +02:00
gdktexture.c Fix minor typos 2020-06-18 10:47:16 +03:00
gdktexture.h
gdktextureprivate.h
gdktoplevel.c Fix minor typos 2020-05-28 11:00:03 +03:00
gdktoplevel.h gdk: Add gdk_toplevel_begin_move/resize 2020-05-17 12:41:16 -04:00
gdktoplevellayout.c surface: Document coordinate systems a bit 2020-04-13 09:29:11 -04:00
gdktoplevellayout.h gdk: Documentation fixups 2020-06-05 20:59:51 -04:00
gdktoplevelprivate.h gdk: Move the begin_move/resize_drag vfuncs around 2020-05-17 14:15:06 -04:00
gdktypes.h gdk: Add scroll delta x/y as device axes 2020-06-09 13:43:03 -04:00
gdkversionmacros.h.in
gdkvulkancontext.c Fix minor typos 2020-05-28 11:00:03 +03:00
gdkvulkancontext.h
gdkvulkancontextprivate.h
gen-gdk-gresources-xml.py gdk: Include a default cursor as resource 2020-04-26 14:41:52 -04:00
gen-keyname-table.pl
keyname-table.h
keynames-translate.txt
keynames.txt
meson.build Add a GdkDragSurface interface 2020-03-12 14:56:21 -04:00