diff options
author | Luca Bacci <luca.bacci982@gmail.com> | 2022-05-19 15:04:41 +0200 |
---|---|---|
committer | Luca Bacci <luca.bacci982@gmail.com> | 2022-05-24 11:37:06 +0200 |
commit | 8a6d6fe6b1107218f82ac8a9157aed5d30a0f67e (patch) | |
tree | 05e6afc895e4e0b10a5919f62bf61dd63df9830e /gdk/win32/gdkinput-dmanipulation.c | |
parent | 0f01629ce30404b402399a7dd0616147f4c5e3a2 (diff) | |
download | gtk+-8a6d6fe6b1107218f82ac8a9157aed5d30a0f67e.tar.gz |
DirectManipulation: Account for DPI scale
Diffstat (limited to 'gdk/win32/gdkinput-dmanipulation.c')
-rw-r--r-- | gdk/win32/gdkinput-dmanipulation.c | 8 |
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); |