Systems with touchscreens usually don't display a cursor (in fact they
can't know where the stylus is if it's not touching the screen in this
moment) so it makes sense to not hide the host's mouse cursor even
when grabbed. Only SDL.

Cheers,
Andrew
From e0111f822059b9905e842bb1d29e7c6fa8c65a8e Mon Sep 17 00:00:00 2001
From: Andrzej Zaborowski <[EMAIL PROTECTED]>
Date: Fri, 16 Mar 2007 17:28:44 +0100
Subject: [PATCH] -show-cursor switch to inhibit SDL hiding cursor.

---
 sdl.c |    6 ++++++
 vl.c  |    6 ++++++
 vl.h  |    1 +
 3 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/sdl.c b/sdl.c
index 0cb2241..1330df4 100644
--- a/sdl.c
+++ b/sdl.c
@@ -228,6 +228,9 @@ static void sdl_update_caption(void)
 
 static void sdl_hide_cursor(void)
 {
+    if (!cursor_hide)
+        return;
+
     if (kbd_mouse_is_absolute()) {
         SDL_ShowCursor(1);
         SDL_SetCursor(sdl_cursor_hidden);
@@ -238,6 +241,9 @@ static void sdl_hide_cursor(void)
 
 static void sdl_show_cursor(void)
 {
+    if (!cursor_hide)
+        return;
+
     if (!kbd_mouse_is_absolute()) {
         SDL_ShowCursor(1);
         SDL_SetCursor(sdl_cursor_normal);
diff --git a/vl.c b/vl.c
index 94260b4..292c677 100644
--- a/vl.c
+++ b/vl.c
@@ -184,6 +184,7 @@ const char *vnc_display;
 int acpi_enabled = 1;
 int fd_bootchk = 1;
 int no_reboot = 0;
+int cursor_hide = 1;
 int snapshot = 0;
 const char *sd_filename = 0;
 const char *mtd_filename = 0;
@@ -6613,6 +6614,7 @@ enum {
     QEMU_OPTION_vnc,
     QEMU_OPTION_no_acpi,
     QEMU_OPTION_no_reboot,
+    QEMU_OPTION_show_cursor,
     QEMU_OPTION_daemonize,
     QEMU_OPTION_option_rom,
     QEMU_OPTION_semihosting
@@ -6704,6 +6706,7 @@ const QEMUOption qemu_options[] = {
     { "cirrusvga", 0, QEMU_OPTION_cirrusvga },
     { "no-acpi", 0, QEMU_OPTION_no_acpi },
     { "no-reboot", 0, QEMU_OPTION_no_reboot },
+    { "show-cursor", 0, QEMU_OPTION_show_cursor },
     { "daemonize", 0, QEMU_OPTION_daemonize },
     { "option-rom", HAS_ARG, QEMU_OPTION_option_rom },
 #if defined(TARGET_ARM)
@@ -7413,6 +7416,9 @@ int main(int argc, char **argv)
             case QEMU_OPTION_no_reboot:
                 no_reboot = 1;
                 break;
+            case QEMU_OPTION_show_cursor:
+                cursor_hide = 0;
+                break;
            case QEMU_OPTION_daemonize:
                daemonize = 1;
                break;
diff --git a/vl.h b/vl.h
index 3eb204a..2211d1d 100644
--- a/vl.h
+++ b/vl.h
@@ -156,6 +156,7 @@ extern int kqemu_allowed;
 extern int win2k_install_hack;
 extern int usb_enabled;
 extern int smp_cpus;
+extern int cursor_hide;
 extern int snapshot;
 extern const char *sd_filename;
 extern const char *mtd_filename;
-- 
1.4.4.3

_______________________________________________
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel

Reply via email to