gtk2/gdk/win32
Marc-André Lureau cf04a3c99d gdk-win32: implement basic inhibit-system-shortcuts
This is largely adapted from commit 83027c68f1 ("11: Implement
inhibit_system_shortcuts API"), with similar rationale:

    To implement the inhibit_system_shortcuts API on X11, we emulate the
    same behavior using grabs on the keyboard.

    To avoid keeping active grabs on the keyboard that would affect
    other X11 applications even when the surface isn't focused, the X11
    implementation takes care of releasing the grabs as soon as the
    toplevel loses focus.

Note that Windows has low-level keyboard hooks that could help achieve
the expected behaviour. This is implemented by spice-gtk & gtk-vnc for
example, but correctness isn't obvious. I left a TODO comment.

This patch helps implementing remote desktop widgets with GTK4, since
currently on win32 backend Alt-Tab and such are always left to the
system unless there is keyboard grab (which can't be requested by the
client API anymore, afaict).

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2022-11-09 19:29:03 +04:00
..
rc
gdkcairocontext-win32.c gdk: hdr => high depth 2021-10-06 22:50:07 +02:00
gdkcairocontext-win32.h GDK/Win32: Remove layered windows usage 2021-01-18 12:48:16 +08:00
gdkclipboard-win32.c Drop gdkintl.h 2022-09-23 23:33:42 -04:00
gdkclipboard-win32.h GDK W32: Another massive clipboard and DnD update 2018-03-29 17:43:53 +00:00
gdkclipdrop-win32.c Drop gdkintl.h 2022-09-23 23:33:42 -04:00
gdkclipdrop-win32.h GdkWin32: Fix subclassing for GdkWin32Clipdrop 2022-09-26 14:34:24 +02:00
gdkcursor-win32.c GdkWin32: Use gdk_pixbuf_read_pixels () where applicable 2022-10-07 19:05:29 +02:00
gdkdevice-virtual.c win32: Stop using the query_state vfunc 2020-08-26 17:56:41 -04:00
gdkdevice-virtual.h win32: Stop using _gdk_device_query_state 2020-08-26 17:56:41 -04:00
gdkdevice-win32.c gdk/win32: deprecate gdk_win32_handle_table_lookup 2022-08-24 21:02:57 +04:00
gdkdevice-win32.h win32: Stop using _gdk_device_query_state 2020-08-26 17:56:41 -04:00
gdkdevice-winpointer.c gdk/win32: deprecate gdk_win32_handle_table_lookup 2022-08-24 21:02:57 +04:00
gdkdevice-winpointer.h Initialize WinPointer and enumerate devices 2021-08-19 15:57:41 +02:00
gdkdevice-wintab.c gdk/win32: deprecate gdk_win32_handle_table_lookup 2022-08-24 21:02:57 +04:00
gdkdevice-wintab.h win32: Stop using _gdk_device_query_state 2020-08-26 17:56:41 -04:00
gdkdevicemanager-win32.c win32: Don't include gdkinternals.h 2021-09-24 22:50:29 +02:00
gdkdevicemanager-win32.h Initialize WinPointer and enumerate devices 2021-08-19 15:57:41 +02:00
gdkdisplay-win32.c Make the gl-gles debug flag always available 2022-09-21 21:12:22 -04:00
gdkdisplay-win32.h Cleanup "GDK/Win32: Try to fix initializing GLES contexts" 2022-01-19 11:56:32 +08:00
gdkdisplaymanager-win32.c win32: Don't include gdkinternals.h 2021-09-24 22:50:29 +02:00
gdkdrag-win32.c Drop gdkintl.h 2022-09-23 23:33:42 -04:00
gdkdrop-win32.c Drop gdkintl.h 2022-09-23 23:33:42 -04:00
gdkevents-win32.c Merge branch 'forward-port-mr-991-to-gtk4-2' into 'main' 2022-10-17 19:20:08 +00:00
gdkglcontext-win32-egl.c Drop gdkintl.h 2022-09-23 23:33:42 -04:00
gdkglcontext-win32-wgl.c Drop gdkintl.h 2022-09-23 23:33:42 -04:00
gdkglcontext-win32.c Drop gdkintl.h 2022-09-23 23:33:42 -04:00
gdkglcontext-win32.h GDK-Win32: Drop GDK_WIN32_ENABLE_EGL flag 2021-11-08 15:25:24 +08:00
gdkglobals-win32.c GdkWin32: Remove _gdk_input_codepage variable 2022-01-17 14:14:55 +01:00
gdkhdataoutputstream-win32.c Drop gdkintl.h 2022-09-23 23:33:42 -04:00
gdkhdataoutputstream-win32.h GDK W32: Another massive clipboard and DnD update 2018-03-29 17:43:53 +00:00
gdkinput-dmanipulation.c DirectManipulation: Account for DPI scale 2022-05-24 11:37:06 +02:00
gdkinput-dmanipulation.h GdkWin32: Add support for DirectManipulation 2022-05-15 14:37:55 +02:00
gdkinput-winpointer.c GDK-Win32: Fix build 2021-09-30 16:21:38 +08:00
gdkinput-winpointer.h Handle WinPointer input 2021-08-19 15:57:41 +02:00
gdkkeys-win32-impl-wow64.c Rewrite GdkWin32Keymap (load table directly from layout DLL) 2022-01-12 19:01:35 +01:00
gdkkeys-win32-impl.c gdkkeys-win32: Also ignore Ctrl + Shift (etc.) 2022-02-09 10:43:07 +01:00
gdkkeys-win32.c Rename gdkdebug.h to gdkdebugprivate.h 2022-09-23 23:12:01 -04:00
gdkkeys-win32.h gdkkeys-win32: Fix capslock handling 2022-01-12 21:43:53 +01:00
gdkmain-win32.c Drop gdkintl.h 2022-09-23 23:33:42 -04:00
gdkmonitor-win32.c GdkWin32: Remove the global screen offset 2021-11-07 19:08:30 +01:00
gdkmonitor-win32.h Replace "gchar" with "char" 2020-07-25 00:47:36 +02:00
gdkprivate-win32.h Rename gdkdebug.h to gdkdebugprivate.h 2022-09-23 23:12:01 -04:00
gdkproperty-win32.c GdkWin32: Add more GDK_NOTE calls for settings 2022-11-04 16:11:27 +01:00
gdkscreen-win32.c Raise _WIN32_WINNT macro to target Windows 7 API 2021-08-19 15:57:33 +02:00
gdksurface-win32.c gdk-win32: implement basic inhibit-system-shortcuts 2022-11-09 19:29:03 +04:00
gdksurface-win32.h Use native Windows API for converting keystrokes to characters 2022-10-17 19:36:48 +02:00
gdkvulkancontext-win32.c gdk: hdr => high depth 2021-10-06 22:50:07 +02:00
gdkvulkancontext-win32.h The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkwin32.h gdk: Make GdkKeymap a private api 2020-04-06 16:32:03 -04:00
gdkwin32cursor.h GDK/Win32: Use lowercase windows.h 2021-09-26 21:52:12 +08:00
gdkwin32display.h gdk: Clean up docs syntax 2021-05-22 17:25:26 -04:00
gdkwin32displaymanager.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkwin32dnd-private.h win32: Don't include gdkinternals.h 2021-09-24 22:50:29 +02:00
gdkwin32dnd.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkwin32glcontext.h Replace "gint" with "int" 2020-07-25 00:47:36 +02:00
gdkwin32id.c gdk/win32: deprecate gdk_win32_handle_table_lookup 2022-08-24 21:02:57 +04:00
gdkwin32keys.h gdk/win32: remove old declaration 2022-08-19 11:58:12 +04:00
gdkwin32langnotification.c Replace "gint" with "int" 2020-07-25 00:47:36 +02:00
gdkwin32langnotification.h GDK W32: Test for IME correctly 2019-03-22 16:58:59 +00:00
gdkwin32misc.h gdk/win32: deprecate gdk_win32_handle_table_lookup 2022-08-24 21:02:57 +04:00
gdkwin32monitor.h gdk/monitor: Remove gdk_monitor_work_area and GdkMonitor::work-area 2020-07-29 17:57:30 +02:00
gdkwin32screen.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkwin32surface.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
meson.build build-sys: generate GdkWin32.gir 2022-08-19 17:42:30 +04:00
pktdef.h
winpointer.h Add winpointer.h header file for type declarations 2021-08-19 15:57:39 +02:00
wintab.h
xcursors.h Replace "gchar" with "char" 2020-07-25 00:47:36 +02:00