qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 1/2] SDL2: only show consoles by shortcuts and not


From: Andrei Karas
Subject: [Qemu-devel] [PATCH 1/2] SDL2: only show consoles by shortcuts and not hide.
Date: Tue, 23 Aug 2016 23:36:22 +0300

This fix issue with stuck keys in SDL2 if press one of shortcuts
for show/hide consoles.
For close any consoles except main window can be used default WM/DE
action for close window.

Signed-off-by: Andrei Karas <address@hidden>
---
 ui/sdl2.c | 27 +++++++++++++++++----------
 1 file changed, 17 insertions(+), 10 deletions(-)

diff --git a/ui/sdl2.c b/ui/sdl2.c
index 30d2a3c..4441e99 100644
--- a/ui/sdl2.c
+++ b/ui/sdl2.c
@@ -363,15 +363,17 @@ static void handle_keydown(SDL_Event *ev)
 
             win = ev->key.keysym.scancode - SDL_SCANCODE_1;
             if (win < sdl2_num_outputs) {
-                sdl2_console[win].hidden = !sdl2_console[win].hidden;
-                if (sdl2_console[win].real_window) {
-                    if (sdl2_console[win].hidden) {
-                        SDL_HideWindow(sdl2_console[win].real_window);
-                    } else {
-                        SDL_ShowWindow(sdl2_console[win].real_window);
+                if (sdl2_console[win].hidden == 1) {
+                    sdl2_console[win].hidden = !sdl2_console[win].hidden;
+                    if (sdl2_console[win].real_window) {
+                        if (sdl2_console[win].hidden) {
+                            SDL_HideWindow(sdl2_console[win].real_window);
+                        } else {
+                            SDL_ShowWindow(sdl2_console[win].real_window);
+                        }
                     }
+                    gui_keysym = 1;
                 }
-                gui_keysym = 1;
             }
             break;
         case SDL_SCANCODE_F:
@@ -566,9 +568,14 @@ static void handle_windowevent(SDL_Event *ev)
         update_displaychangelistener(&scon->dcl, 500);
         break;
     case SDL_WINDOWEVENT_CLOSE:
-        if (!no_quit) {
-            no_shutdown = 0;
-            qemu_system_shutdown_request();
+        if (scon->idx == 0) {
+            if (!no_quit) {
+                no_shutdown = 0;
+                qemu_system_shutdown_request();
+            }
+        } else {
+            scon->hidden = true;
+            SDL_HideWindow(scon->real_window);
         }
         break;
     case SDL_WINDOWEVENT_SHOWN:
-- 
2.9.3


reply via email to

[Prev in Thread] Current Thread [Next in Thread]