[client] wayland: fix mouse logic after refactor

Now correctly set inView to only be within the guest and not the letterboxed
areas. Also show the system cursor in the letterboxed area.
This commit is contained in:
Quantum 2021-01-15 05:27:33 -05:00 committed by Geoffrey McRae
parent 27a38294ea
commit 48f002992a

View File

@ -945,6 +945,17 @@ static void guestCurToLocal(struct DoublePoint *local)
// capture mode. // capture mode.
static void app_handleMouseWayland(void) static void app_handleMouseWayland(void)
{ {
const bool inView =
g_cursor.pos.x >= g_state.dstRect.x &&
g_cursor.pos.x < g_state.dstRect.x + g_state.dstRect.w &&
g_cursor.pos.y >= g_state.dstRect.y &&
g_cursor.pos.y < g_state.dstRect.y + g_state.dstRect.h;
if (params.hideMouse && inView != g_cursor.inView)
SDL_ShowCursor(inView ? SDL_DISABLE : SDL_ENABLE);
g_cursor.inView = inView;
if (g_cursor.guest.dpiScale == 0) if (g_cursor.guest.dpiScale == 0)
return; return;