lavd/gdigrab: mouse dpi awareness
correct mouse location on hidpi screens. fixes ticket #5008 Signed-off-by: Matt Oliver <protogonoi@gmail.com>
This commit is contained in:
parent
70d685a77f
commit
00c73c475e
@ -446,6 +446,8 @@ static void paint_mouse_pointer(AVFormatContext *s1, struct gdigrab *gdigrab)
|
|||||||
POINT pos;
|
POINT pos;
|
||||||
RECT clip_rect = gdigrab->clip_rect;
|
RECT clip_rect = gdigrab->clip_rect;
|
||||||
HWND hwnd = gdigrab->hwnd;
|
HWND hwnd = gdigrab->hwnd;
|
||||||
|
int vertres = GetDeviceCaps(gdigrab->source_hdc, VERTRES);
|
||||||
|
int desktopvertres = GetDeviceCaps(gdigrab->source_hdc, DESKTOPVERTRES);
|
||||||
info.hbmMask = NULL;
|
info.hbmMask = NULL;
|
||||||
info.hbmColor = 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",
|
av_log(s1, AV_LOG_DEBUG, "Cursor pos (%li,%li) -> (%li,%li)\n",
|
||||||
ci.ptScreenPos.x, ci.ptScreenPos.y, pos.x, pos.y);
|
ci.ptScreenPos.x, ci.ptScreenPos.y, pos.x, pos.y);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user