From 00c73c475e3d2d7049eed73ea956f6798365b36a Mon Sep 17 00:00:00 2001 From: Metaksakis Georgios Date: Mon, 15 Feb 2016 10:05:17 +1100 Subject: [PATCH] lavd/gdigrab: mouse dpi awareness correct mouse location on hidpi screens. fixes ticket #5008 Signed-off-by: Matt Oliver --- libavdevice/gdigrab.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libavdevice/gdigrab.c b/libavdevice/gdigrab.c index 4428a34ee7..7db587cd97 100644 --- a/libavdevice/gdigrab.c +++ b/libavdevice/gdigrab.c @@ -446,6 +446,8 @@ static void paint_mouse_pointer(AVFormatContext *s1, struct gdigrab *gdigrab) POINT pos; RECT clip_rect = gdigrab->clip_rect; HWND hwnd = gdigrab->hwnd; + int vertres = GetDeviceCaps(gdigrab->source_hdc, VERTRES); + int desktopvertres = GetDeviceCaps(gdigrab->source_hdc, DESKTOPVERTRES); info.hbmMask = NULL; info.hbmColor = NULL; @@ -479,6 +481,10 @@ static void paint_mouse_pointer(AVFormatContext *s1, struct gdigrab *gdigrab) } } + //that would keep the correct location of mouse with hidpi screens + pos.x = pos.x * desktopvertres / vertres; + pos.y = pos.y * desktopvertres / vertres; + av_log(s1, AV_LOG_DEBUG, "Cursor pos (%li,%li) -> (%li,%li)\n", ci.ptScreenPos.x, ci.ptScreenPos.y, pos.x, pos.y);