All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
To: qemu-devel@nongnu.org
Cc: Ian Jackson <Ian.Jackson@eu.citrix.com>
Subject: [Qemu-devel] [PATCH 1 of 2] sdl nograb
Date: Tue, 04 Nov 2008 18:36:05 +0000	[thread overview]
Message-ID: <49109615.20500@eu.citrix.com> (raw)

Add a -nograb command line option to prevent sdl from grabbing mouse
and keyboard.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>

diff -r 5c78dd111aae sdl.c
--- a/sdl.c	Tue Nov 04 09:04:41 2008 +0000
+++ b/sdl.c	Tue Nov 04 18:31:02 2008 +0000
@@ -451,7 +451,7 @@
                         gui_key_modifier_pressed = 0;
                         if (gui_keysym == 0) {
                             /* exit/enter grab if pressing Ctrl-Alt */
-                            if (!gui_grab) {
+                            if (!gui_grab && !grab_disabled) {
                                 /* if the application is not active,
                                    do not try to enter grab state. It
                                    prevents
@@ -481,7 +481,7 @@
             break;
         case SDL_MOUSEMOTION:
             if (gui_grab || kbd_mouse_is_absolute() ||
-                absolute_enabled) {
+                absolute_enabled || grab_disabled) {
                 sdl_send_mouse_event(ev->motion.xrel, ev->motion.yrel, 0,
                        ev->motion.x, ev->motion.y, ev->motion.state);
             }
@@ -490,7 +490,7 @@
         case SDL_MOUSEBUTTONUP:
             {
                 SDL_MouseButtonEvent *bev = &ev->button;
-                if (!gui_grab && !kbd_mouse_is_absolute()) {
+                if (!gui_grab && !kbd_mouse_is_absolute() && !grab_disabled) {
                     if (ev->type == SDL_MOUSEBUTTONDOWN &&
                         (bev->button == SDL_BUTTON_LEFT)) {
                         /* start grabbing all events */
@@ -655,7 +655,10 @@
     atexit(sdl_cleanup);
     if (full_screen) {
         gui_fullscreen = 1;
-        gui_fullscreen_initial_grab = 1;
-        sdl_grab_start();
+        if (!grab_disabled)
+        {
+            gui_fullscreen_initial_grab = 1;
+            sdl_grab_start();
+        }
     }
 }
diff -r 5c78dd111aae sysemu.h
--- a/sysemu.h	Tue Nov 04 09:04:41 2008 +0000
+++ b/sysemu.h	Tue Nov 04 18:31:02 2008 +0000
@@ -90,6 +90,7 @@
 extern const char *keyboard_layout;
 extern int win2k_install_hack;
 extern int alt_grab;
+extern int grab_disabled;
 extern int usb_enabled;
 extern int smp_cpus;
 extern int cursor_hide;
diff -r 5c78dd111aae vl.c
--- a/vl.c	Tue Nov 04 09:04:41 2008 +0000
+++ b/vl.c	Tue Nov 04 18:31:02 2008 +0000
@@ -227,6 +227,7 @@
 #endif
 const char *qemu_name;
 int alt_grab = 0;
+int grab_disabled = 0;
 #ifdef TARGET_SPARC
 unsigned int nb_prom_envs = 0;
 const char *prom_envs[MAX_PROM_ENVS];
@@ -4685,6 +4686,7 @@
            "-no-frame       open SDL window without a frame and window decorations\n"
            "-alt-grab       use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt)\n"
            "-no-quit        disable SDL window close capability\n"
+           "-nograb         never grab mouse and keyboard\n"
 #endif
 #ifdef TARGET_I386
            "-no-fd-bootchk  disable boot signature checking for floppy disks\n"
@@ -4883,6 +4885,7 @@
     QEMU_OPTION_full_screen,
     QEMU_OPTION_no_frame,
     QEMU_OPTION_alt_grab,
+    QEMU_OPTION_nograb,
     QEMU_OPTION_no_quit,
     QEMU_OPTION_pidfile,
     QEMU_OPTION_no_kqemu,
@@ -4988,6 +4991,7 @@
     { "no-frame", 0, QEMU_OPTION_no_frame },
     { "alt-grab", 0, QEMU_OPTION_alt_grab },
     { "no-quit", 0, QEMU_OPTION_no_quit },
+    { "nograb", 0, QEMU_OPTION_nograb },
 #endif
     { "pidfile", HAS_ARG, QEMU_OPTION_pidfile },
     { "win2k-hack", 0, QEMU_OPTION_win2k_hack },
@@ -5776,6 +5780,9 @@
                 break;
             case QEMU_OPTION_no_quit:
                 no_quit = 1;
+                break;
+            case QEMU_OPTION_nograb:
+                grab_disabled = 1;
                 break;
 #endif
             case QEMU_OPTION_pidfile:

             reply	other threads:[~2008-11-04 18:32 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-04 18:36 Stefano Stabellini [this message]
2008-11-04 19:08 ` [Qemu-devel] [PATCH 1 of 2] sdl nograb Anthony Liguori

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=49109615.20500@eu.citrix.com \
    --to=stefano.stabellini@eu.citrix.com \
    --cc=Ian.Jackson@eu.citrix.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.