summaryrefslogtreecommitdiff
path: root/gdk/win32/gdkinput-dmanipulation.c
diff options
context:
space:
mode:
authorLuca Bacci <luca.bacci982@gmail.com>2022-05-19 15:04:41 +0200
committerLuca Bacci <luca.bacci982@gmail.com>2022-05-24 11:37:06 +0200
commit8a6d6fe6b1107218f82ac8a9157aed5d30a0f67e (patch)
tree05e6afc895e4e0b10a5919f62bf61dd63df9830e /gdk/win32/gdkinput-dmanipulation.c
parent0f01629ce30404b402399a7dd0616147f4c5e3a2 (diff)
downloadgtk+-8a6d6fe6b1107218f82ac8a9157aed5d30a0f67e.tar.gz
DirectManipulation: Account for DPI scale
Diffstat (limited to 'gdk/win32/gdkinput-dmanipulation.c')
-rw-r--r--gdk/win32/gdkinput-dmanipulation.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/gdk/win32/gdkinput-dmanipulation.c b/gdk/win32/gdkinput-dmanipulation.c
index 82b60e209b..942db6cdc2 100644
--- a/gdk/win32/gdkinput-dmanipulation.c
+++ b/gdk/win32/gdkinput-dmanipulation.c
@@ -167,8 +167,10 @@ DManipEventHandler_OnContentUpdated (IDirectManipulationViewportEventHandler *se
{
case GESTURE_PAN:
{
+ GdkWin32Surface *surface_win32;
GdkModifierType state;
uint32_t time;
+ int scale;
float pan_x;
float pan_y;
GdkEvent *event;
@@ -176,14 +178,16 @@ DManipEventHandler_OnContentUpdated (IDirectManipulationViewportEventHandler *se
pan_x = transform[4];
pan_y = transform[5];
+ surface_win32 = GDK_WIN32_SURFACE (self->surface);
+ scale = surface_win32->surface_scale;
state = util_get_modifier_state ();
time = (uint32_t) GetMessageTime ();
event = gdk_scroll_event_new (self->surface,
self->device,
NULL, time, state,
- self->pan_x - pan_x,
- self->pan_y - pan_y,
+ (self->pan_x - pan_x) / scale,
+ (self->pan_y - pan_y) / scale,
FALSE,
GDK_SCROLL_UNIT_SURFACE);
_gdk_win32_append_event (event);