windisplay: Fix M_confined mode confining cursor to incorrect region

It should be confined to the client rect, not the window rect.

Fixes #929
This commit is contained in:
rdb 2020-05-02 10:47:37 +02:00
parent c59a039fa8
commit 4b00f9e660

View File

@ -1311,22 +1311,18 @@ track_mouse_leaving(HWND hwnd) {
bool WinGraphicsWindow::
confine_cursor() {
RECT clip;
if (!GetWindowRect(_hWnd, &clip)) {
get_client_rect_screen(_hWnd, &clip);
windisplay_cat.info()
<< "ClipCursor() to " << clip.left << "," << clip.top << " to "
<< clip.right << "," << clip.bottom << endl;
if (!ClipCursor(&clip)) {
windisplay_cat.warning()
<< "GetWindowRect() failed, cannot confine cursor.\n";
<< "Failed to confine cursor to window.\n";
return false;
} else {
windisplay_cat.info()
<< "ClipCursor() to " << clip.left << "," << clip.top << " to "
<< clip.right << "," << clip.bottom << endl;
if (!ClipCursor(&clip)) {
windisplay_cat.warning()
<< "Failed to confine cursor to window.\n";
return false;
} else {
return true;
}
return true;
}
}