summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChun-wei Fan <fanc999@yahoo.com.tw>2021-07-12 01:52:57 +0000
committerChun-wei Fan <fanc999@yahoo.com.tw>2021-07-12 01:52:57 +0000
commit71d7054ff74d9231049704dd1588e518fa6233f8 (patch)
treead93c691193df04d3c7dfabff2b2f6f33d50a9a4
parent6128492cc03d794468cf40cef4f1201afcd8938d (diff)
parentf67bf8d8927159d77006c22f7adcb0cc4cfd4cc6 (diff)
downloadgtk+-71d7054ff74d9231049704dd1588e518fa6233f8.tar.gz
Merge branch 'wintab-set-cxo-system-option' into 'gtk-3-24'
Wintab: Set the CXO_SYSTEM option See merge request GNOME/gtk!3644
-rw-r--r--gdk/win32/gdkdevicemanager-win32.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/gdk/win32/gdkdevicemanager-win32.c b/gdk/win32/gdkdevicemanager-win32.c
index 6eaab30a83..54018157b6 100644
--- a/gdk/win32/gdkdevicemanager-win32.c
+++ b/gdk/win32/gdkdevicemanager-win32.c
@@ -1143,6 +1143,17 @@ wintab_init_check (GdkDeviceManagerWin32 *device_manager)
devix, *hctx));
wintab_contexts = g_list_append (wintab_contexts, hctx);
+
+ /* Set the CXO_SYSTEM flag */
+ if (!(lc.lcOptions & CXO_SYSTEM))
+ {
+ lc.lcOptions |= CXO_SYSTEM;
+ if (!p_WTSetA (hctx, &lc))
+ {
+ g_warning ("Could not set the CXO_SYSTEM option in the WINTAB context");
+ }
+ }
+
#if 0
(*p_WTEnable) (*hctx, TRUE);
#endif
@@ -2492,6 +2503,8 @@ G_GNUC_END_IGNORE_DEPRECATIONS;
event->button.time = _gdk_win32_get_next_tick (msg->time);
if (source_device->sends_core)
gdk_event_set_device (event, device_manager->core_pointer);
+ else
+ gdk_event_set_device (event, GDK_DEVICE (source_device));
gdk_event_set_source_device (event, GDK_DEVICE (source_device));
gdk_event_set_seat (event, gdk_device_get_seat (device_manager->core_pointer));
@@ -2524,7 +2537,10 @@ G_GNUC_END_IGNORE_DEPRECATIONS;
{
event->motion.time = _gdk_win32_get_next_tick (msg->time);
event->motion.is_hint = FALSE;
- gdk_event_set_device (event, device_manager->core_pointer);
+ if (source_device->sends_core)
+ gdk_event_set_device (event, device_manager->core_pointer);
+ else
+ gdk_event_set_device (event, GDK_DEVICE (source_device));
gdk_event_set_source_device (event, GDK_DEVICE (source_device));
gdk_event_set_seat (event, gdk_device_get_seat (device_manager->core_pointer));