gtk2/gdk/win32
Руслан Ижбулатов eece8a7dd2 GDK W32: Use keyboard hook to detect AeroSnap combinations better
Windows WM handles AeroSnap for normal windows on keydown. We did this
on keyup only because we do not get a keydown message, even if Windows WM
does nothing with a combination. However, in some specific cases it DOES
do something - and we have no way to detect that. Specifically, winkey+downarrow
causes maximized window to be restored by WM, and GDK fails to detect that. Then
GDK gets a keyup message, figures that winkey+downarrow was pressed and released,
and handles the combination - by minimizing the window.

To overcome this, install a low-level keyboard hook (high-level ones have
the same problem as normal message loop - they don't get messages when
Windows WM handles combinations) and use it to detect interesting key combinations
before Windows WM has a chance to block them from being processed.

Once an interesting combination is detected, post a message to the window, which
will be handled in due order.

It should be noted that this code handles key repetitions in a very crude manner.

The downside is that AeroSnap will not work if hook installation function call fails.
Also, this is a global hook, and if the hook procedure does something wrong, bad things
can happen.

https://bugzilla.gnome.org/show_bug.cgi?id=776031
2017-01-10 12:54:43 +00:00
..
rc Update GTK+ Windows icon (now scles up to 256x256) 2016-08-19 23:55:19 -04:00
bdfcursor.c GDK-W32: remove trailing whitespace everywhere 2015-04-29 21:12:14 +00:00
cursor.bdf
gdkcursor-win32.c win32: Make cursor code work without _gdk_display 2016-02-11 03:44:47 +01:00
gdkdevice-virtual.c win32: fix "unused variable" warning 2016-03-05 20:31:10 +01:00
gdkdevice-virtual.h
gdkdevice-win32.c GDK-Win32: Enable HiDPI support for Windows 2016-11-07 15:38:02 +08:00
gdkdevice-win32.h W32: avoid code duplication in gdkdevice-win32|virtual 2015-12-22 09:31:56 +01:00
gdkdevice-wintab.c GDK-Win32: Enable HiDPI support for Windows 2016-11-07 15:38:02 +08:00
gdkdevice-wintab.h
gdkdevicemanager-win32.c wintab: init only after the display is assigned 2016-11-22 12:52:00 +01:00
gdkdevicemanager-win32.h win32: Stop using _gdk_display global in device code 2016-02-11 03:44:47 +01:00
gdkdisplay-win32.c GDK W32: Remove unneeded assertion 2017-01-09 10:00:22 +00:00
gdkdisplay-win32.h GDK-Win32: Enable HiDPI support for Windows 2016-11-07 15:38:02 +08:00
gdkdisplaymanager-win32.c
gdkdnd-win32.c gdk/dnd: Don't use default display when getting cursor 2016-04-26 23:03:24 +08:00
gdkevents-win32.c GDK W32: Use keyboard hook to detect AeroSnap combinations better 2017-01-10 12:54:43 +00:00
gdkgeometry-win32.c GDK-Win32: Enable HiDPI support for Windows 2016-11-07 15:38:02 +08:00
gdkglcontext-win32.c GDK-Win32: Improve GL on Windows 2016-10-28 16:07:02 +08:00
gdkglcontext-win32.h gl: Drop profile for gdk_window_create_gl_context() 2015-02-12 12:34:28 +00:00
gdkglobals-win32.c Win32: fold the gdkinput.c file in gdkdisplay-win32.c 2016-02-22 21:45:08 +01:00
gdkkeys-win32.c GDK W32: Handle CapsLock as part of the key shift level 2017-01-10 07:59:53 +00:00
gdkmain-win32.c GDK-Win32: Enable HiDPI support for Windows 2016-11-07 15:38:02 +08:00
gdkmonitor-win32.c GDK-Win32: Enable HiDPI support for Windows 2016-11-07 15:38:02 +08:00
gdkmonitor-win32.h win32: Port to new monitor api 2016-04-27 23:18:16 -04:00
gdkprivate-win32.h GDK-Win32: Enable HiDPI support for Windows 2016-11-07 15:38:02 +08:00
gdkproperty-win32.c GDK W32: Optimize clipboard handling a bit 2016-03-26 00:03:50 +00:00
gdkscreen-win32.c gdkscreen-win32.c: Also define _WIN32_WINNT 2016-11-11 21:03:46 +08:00
gdkselection-win32.c GDK W32: Optimize clipboard handling a bit 2016-03-26 00:03:50 +00:00
gdktestutils-win32.c win32: provide an implementation for gdk_test_simulate_key(). 2014-09-22 21:22:33 -04:00
gdkwin32.h win32: Port to new monitor api 2016-04-27 23:18:16 -04:00
gdkwin32cursor.h GDK-W32: remove trailing whitespace everywhere 2015-04-29 21:12:14 +00:00
gdkwin32display.h win32: use the same parameter name as the implementation 2015-10-08 18:07:49 +02:00
gdkwin32displaymanager.h
gdkwin32dnd.h
gdkwin32glcontext.h Add OpenGL Support for the GDK Windows Backend 2014-12-17 16:07:02 +08:00
gdkwin32id.c GDK-W32: remove trailing whitespace everywhere 2015-04-29 21:12:14 +00:00
gdkwin32keys.h W32: Prefer the deadkey combinations that the OS uses 2016-08-04 16:37:19 +00:00
gdkwin32misc.h
gdkwin32monitor.h win32: Port to new monitor api 2016-04-27 23:18:16 -04:00
gdkwin32screen.h GDK-W32: remove trailing whitespace everywhere 2015-04-29 21:12:14 +00:00
gdkwin32window.h GDK-W32: remove trailing whitespace everywhere 2015-04-29 21:12:14 +00:00
gdkwindow-win32.c GDK W32: Handle maximizing correctly for small primary monitors 2016-12-24 17:29:50 +00:00
gdkwindow-win32.h GDK W32: Handle maximizing correctly for small primary monitors 2016-12-24 17:29:50 +00:00
libwntab32x.la
Makefile.am Opt in to structured logging 2016-07-22 23:13:20 -04:00
makefile.msc win32: move gdkvisual code in gdkscreen 2016-02-28 11:37:38 +01:00
pktdef.h
wintab.h
xcursors.h