diff --git a/docs/reference/gtk/running.md b/docs/reference/gtk/running.md index c64d02cee4..2cd921f267 100644 --- a/docs/reference/gtk/running.md +++ b/docs/reference/gtk/running.md @@ -358,6 +358,9 @@ disable certain features. `color-mgmt` : Disable color management +`aerosnap` +: Disable Aerosnap support on Windows + ### `GDK_GL_DISABLE` This variable can be set to a list of values, which cause GDK to diff --git a/gdk/gdk.c b/gdk/gdk.c index a1122b2fec..f746c20f7b 100644 --- a/gdk/gdk.c +++ b/gdk/gdk.c @@ -158,6 +158,7 @@ static const GdkDebugKey gdk_feature_keys[] = { { "dmabuf", GDK_FEATURE_DMABUF, "Disable dmabuf support" }, { "offload", GDK_FEATURE_OFFLOAD, "Disable graphics offload" }, { "color-mgmt", GDK_FEATURE_COLOR_MANAGEMENT, "Disable color management" }, + { "aerosnap", GDK_FEATURE_AEROSNAP, "Disable Aerosnap support on Windows" }, }; diff --git a/gdk/gdkdebugprivate.h b/gdk/gdkdebugprivate.h index ad7de9a9d5..5742d737a8 100644 --- a/gdk/gdkdebugprivate.h +++ b/gdk/gdkdebugprivate.h @@ -64,6 +64,7 @@ typedef enum { GDK_FEATURE_DMABUF = 1 << 7, GDK_FEATURE_OFFLOAD = 1 << 8, GDK_FEATURE_COLOR_MANAGEMENT = 1 << 9, + GDK_FEATURE_AEROSNAP = 1 << 10, } GdkFeatures; #define GDK_ALL_FEATURES ((1 << 10) - 1) diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c index 19aebba0c3..c77115a9af 100644 --- a/gdk/win32/gdkevents-win32.c +++ b/gdk/win32/gdkevents-win32.c @@ -391,6 +391,9 @@ set_up_low_level_keyboard_hook (GdkDisplay *display) { HHOOK hook_handle; + if (!gdk_has_feature (GDK_FEATURE_AEROSNAP)) + return; + if (GDK_WIN32_DISPLAY (display)->event_record->aerosnap_keyboard_hook != NULL) return;