summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--sdl.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sdl.c b/sdl.c
index aecdf638ea..cfdf852373 100644
--- a/sdl.c
+++ b/sdl.c
@@ -278,7 +278,8 @@ static void sdl_grab_start(void)
 {
     if (guest_cursor) {
         SDL_SetCursor(guest_sprite);
-        SDL_WarpMouse(guest_x, guest_y);
+        if (!kbd_mouse_is_absolute() && !absolute_enabled)
+            SDL_WarpMouse(guest_x, guest_y);
     } else
         sdl_hide_cursor();
 
@@ -549,7 +550,8 @@ static void sdl_mouse_warp(int x, int y, int on)
             sdl_show_cursor();
         if (gui_grab || kbd_mouse_is_absolute() || absolute_enabled) {
             SDL_SetCursor(guest_sprite);
-            SDL_WarpMouse(x, y);
+            if (!kbd_mouse_is_absolute() && !absolute_enabled)
+                SDL_WarpMouse(x, y);
         }
     } else if (gui_grab)
         sdl_hide_cursor();