diff options
author | Chun-wei Fan <fanc999@yahoo.com.tw> | 2021-07-12 01:52:57 +0000 |
---|---|---|
committer | Chun-wei Fan <fanc999@yahoo.com.tw> | 2021-07-12 01:52:57 +0000 |
commit | 71d7054ff74d9231049704dd1588e518fa6233f8 (patch) | |
tree | ad93c691193df04d3c7dfabff2b2f6f33d50a9a4 | |
parent | 6128492cc03d794468cf40cef4f1201afcd8938d (diff) | |
parent | f67bf8d8927159d77006c22f7adcb0cc4cfd4cc6 (diff) | |
download | gtk+-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.c | 18 |
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)); |