13
0

Windows Multitouch: disable gestures

Gestures may prevent a 2nd touch from being registered as
such (and instead report a zoom/pinch gesture).

At least that is my best guess, why Nathan needs 3 fingers
to move 2 Faders :)
This commit is contained in:
Robin Gareus 2024-11-02 03:41:50 +01:00
parent ced7441a19
commit 37b0910d80
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04

View File

@ -30,6 +30,8 @@
#include "config.h" #include "config.h"
#include <stdlib.h> #include <stdlib.h>
#include <windows.h>
#include "gdk.h" #include "gdk.h"
#include "gdkwindowimpl.h" #include "gdkwindowimpl.h"
#include "gdkprivate-win32.h" #include "gdkprivate-win32.h"
@ -52,6 +54,17 @@ static GSList *modal_window_stack = NULL;
typedef struct _FullscreenInfo FullscreenInfo; typedef struct _FullscreenInfo FullscreenInfo;
#ifndef GC_ALLGESTURES
typedef struct tagGESTURECONFIG {
DWORD dwID;
DWORD dwWant;
DWORD dwBlock;
} GESTURECONFIG,*PGESTURECONFIG;
#endif
typedef BOOL (WINAPI *PFN_SetGestureConfig) (HWND, DWORD, UINT, PGESTURECONFIG, UINT);
static PFN_SetGestureConfig setGestureConfig = 0;
struct _FullscreenInfo struct _FullscreenInfo
{ {
RECT r; RECT r;
@ -168,6 +181,8 @@ gdk_window_impl_win32_class_init (GdkWindowImplWin32Class *klass)
drawable_class->set_colormap = gdk_window_impl_win32_set_colormap; drawable_class->set_colormap = gdk_window_impl_win32_set_colormap;
drawable_class->get_colormap = gdk_window_impl_win32_get_colormap; drawable_class->get_colormap = gdk_window_impl_win32_get_colormap;
drawable_class->get_size = gdk_window_impl_win32_get_size; drawable_class->get_size = gdk_window_impl_win32_get_size;
setGestureConfig = (PFN_SetGestureConfig) GetProcAddress (GetModuleHandle ("user32.dll"), "SetGestureConfig");
} }
static void static void
@ -315,6 +330,12 @@ _gdk_windowing_window_init (GdkScreen *screen)
gdk_win32_handle_table_insert ((HANDLE *) &draw_impl->handle, _gdk_root); gdk_win32_handle_table_insert ((HANDLE *) &draw_impl->handle, _gdk_root);
if (setGestureConfig)
{
GESTURECONFIG gc[1] = {{0, 0, 1 /*GC_ALLGESTURES*/}};
setGestureConfig (GDK_WINDOW_HWND (_gdk_root), 0, 1, gc, sizeof (gc));
}
GDK_NOTE (MISC, g_print ("_gdk_root=%p\n", GDK_WINDOW_HWND (_gdk_root))); GDK_NOTE (MISC, g_print ("_gdk_root=%p\n", GDK_WINDOW_HWND (_gdk_root)));
} }