SDL: wayland: Disable warp emulation when restoring cursor visibility with the shape protocol (a25a5)

From a25a5a243c2cf85f31f6d52e1c5d12f1aa750626 Mon Sep 17 00:00:00 2001
From: Frank Praznik <[EMAIL REDACTED]>
Date: Thu, 16 May 2024 12:44:01 -0400
Subject: [PATCH] wayland: Disable warp emulation when restoring cursor
 visibility with the shape protocol

(cherry picked from commit 67f3a3ee54b7c7e0945525408437f65f807ca8ba)
---
 src/video/wayland/SDL_waylandmouse.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/video/wayland/SDL_waylandmouse.c b/src/video/wayland/SDL_waylandmouse.c
index ceb6b243f3289..989d4c115ea8f 100644
--- a/src/video/wayland/SDL_waylandmouse.c
+++ b/src/video/wayland/SDL_waylandmouse.c
@@ -605,7 +605,14 @@ static int Wayland_ShowCursor(SDL_Cursor *cursor)
         if (!data->shm_data) {
             if (input->cursor_shape) {
                 Wayland_SetSystemCursorShape(input, data->system_cursor);
+
                 input->cursor_visible = SDL_TRUE;
+
+                if (input->relative_mode_override) {
+                    Wayland_input_unlock_pointer(input);
+                    input->relative_mode_override = SDL_FALSE;
+                }
+
                 return 0;
             } else if (!wayland_get_system_cursor(d, data, &scale)) {
                 return -1;