diff options
-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); |