Przeglądaj źródła

Merge remote-tracking branch 'remotes/kraxel/tags/ui-20200515-pull-request' into staging

ui: sdl bugfix, -show-cursor deprecation message

# gpg: Signature made Fri 15 May 2020 09:21:29 BST
# gpg:                using RSA key 4CB6D8EED3E87138
# gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" [full]
# gpg:                 aka "Gerd Hoffmann <gerd@kraxel.org>" [full]
# gpg:                 aka "Gerd Hoffmann (private) <kraxel@gmail.com>" [full]
# Primary key fingerprint: A032 8CFF B93A 17A7 9901  FE7D 4CB6 D8EE D3E8 7138

* remotes/kraxel/tags/ui-20200515-pull-request:
  ui/sdl2: fix segment fault caused by null pointer dereference
  ui: improve -show-cursor deprecation message

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Peter Maydell 5 lat temu
rodzic
commit
2478b8ecd4
2 zmienionych plików z 16 dodań i 2 usunięć
  1. 4 2
      softmmu/vl.c
  2. 12 0
      ui/sdl2.c

+ 4 - 2
softmmu/vl.c

@@ -3531,8 +3531,10 @@ void qemu_init(int argc, char **argv, char **envp)
                 no_shutdown = 1;
                 no_shutdown = 1;
                 break;
                 break;
             case QEMU_OPTION_show_cursor:
             case QEMU_OPTION_show_cursor:
-                warn_report("The -show-cursor option is deprecated, "
-                            "use -display {sdl,gtk},show-cursor=on instead");
+                warn_report("The -show-cursor option is deprecated. Please "
+                            "add show-cursor=on to your -display options.");
+                warn_report("When using the default display you can use "
+                            "-display default,show-cursor=on");
                 dpy.has_show_cursor = true;
                 dpy.has_show_cursor = true;
                 dpy.show_cursor = true;
                 dpy.show_cursor = true;
                 break;
                 break;

+ 12 - 0
ui/sdl2.c

@@ -332,6 +332,10 @@ static void handle_keydown(SDL_Event *ev)
     int gui_key_modifier_pressed = get_mod_state();
     int gui_key_modifier_pressed = get_mod_state();
     int gui_keysym = 0;
     int gui_keysym = 0;
 
 
+    if (!scon) {
+        return;
+    }
+
     if (!scon->ignore_hotkeys && gui_key_modifier_pressed && !ev->key.repeat) {
     if (!scon->ignore_hotkeys && gui_key_modifier_pressed && !ev->key.repeat) {
         switch (ev->key.keysym.scancode) {
         switch (ev->key.keysym.scancode) {
         case SDL_SCANCODE_2:
         case SDL_SCANCODE_2:
@@ -412,6 +416,10 @@ static void handle_keyup(SDL_Event *ev)
 {
 {
     struct sdl2_console *scon = get_scon_from_window(ev->key.windowID);
     struct sdl2_console *scon = get_scon_from_window(ev->key.windowID);
 
 
+    if (!scon) {
+        return;
+    }
+
     scon->ignore_hotkeys = false;
     scon->ignore_hotkeys = false;
     sdl2_process_key(scon, &ev->key);
     sdl2_process_key(scon, &ev->key);
 }
 }
@@ -421,6 +429,10 @@ static void handle_textinput(SDL_Event *ev)
     struct sdl2_console *scon = get_scon_from_window(ev->text.windowID);
     struct sdl2_console *scon = get_scon_from_window(ev->text.windowID);
     QemuConsole *con = scon ? scon->dcl.con : NULL;
     QemuConsole *con = scon ? scon->dcl.con : NULL;
 
 
+    if (!con) {
+        return;
+    }
+
     if (qemu_console_is_graphic(con)) {
     if (qemu_console_is_graphic(con)) {
         return;
         return;
     }
     }