aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix xq Queißner <xq@random-projects.net>2022-07-12 15:37:53 +0200
committerGerd Hoffmann <kraxel@redhat.com>2022-07-19 14:36:42 +0200
commitc34a933802071aae5288e0aa3792756312e3da34 (patch)
tree64b5cd3cbc92dac07d13c6e425cb2efe2778e4e8
parent04fcb215b8e61042ecd592f4920fe96faf3de36b (diff)
gtk: Add show_tabs=on|off command line option.
The patch adds "show_tabs" command line option for GTK ui similar to "grab_on_hover". This option allows tabbed view mode to not have to be enabled by hand at each start of the VM. Signed-off-by: Felix "xq" Queißner <xq@random-projects.net> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Hanna Reitz <hreitz@redhat.com> Message-Id: <20220712133753.18937-1-xq@random-projects.net> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-rw-r--r--qapi/ui.json7
-rw-r--r--qemu-options.hx6
-rw-r--r--ui/gtk.c4
3 files changed, 15 insertions, 2 deletions
diff --git a/qapi/ui.json b/qapi/ui.json
index 413371d5e8..cf58ab4283 100644
--- a/qapi/ui.json
+++ b/qapi/ui.json
@@ -1195,12 +1195,17 @@
# assuming the guest will resize the display to match
# the window size then. Otherwise it defaults to "off".
# Since 3.1
+# @show-tabs: Display the tab bar for switching between the various graphical
+# interfaces (e.g. VGA and virtual console character devices)
+# by default.
+# Since 7.1
#
# Since: 2.12
##
{ 'struct' : 'DisplayGTK',
'data' : { '*grab-on-hover' : 'bool',
- '*zoom-to-fit' : 'bool' } }
+ '*zoom-to-fit' : 'bool',
+ '*show-tabs' : 'bool' } }
##
# @DisplayEGLHeadless:
diff --git a/qemu-options.hx b/qemu-options.hx
index 377d22fbd8..79e00916a1 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -1938,7 +1938,7 @@ DEF("display", HAS_ARG, QEMU_OPTION_display,
#endif
#if defined(CONFIG_GTK)
"-display gtk[,full-screen=on|off][,gl=on|off][,grab-on-hover=on|off]\n"
- " [,show-cursor=on|off][,window-close=on|off]\n"
+ " [,show-tabs=on|off][,show-cursor=on|off][,window-close=on|off]\n"
#endif
#if defined(CONFIG_VNC)
"-display vnc=<display>[,<optargs>]\n"
@@ -2023,6 +2023,10 @@ SRST
``grab-on-hover=on|off`` : Grab keyboard input on mouse hover
+ ``show-tabs=on|off`` : Display the tab bar for switching between the
+ various graphical interfaces (e.g. VGA and
+ virtual console character devices) by default.
+
``show-cursor=on|off`` : Force showing the mouse cursor
``window-close=on|off`` : Allow to quit qemu with window close button
diff --git a/ui/gtk.c b/ui/gtk.c
index 2a791dd2aa..1467b8c7d7 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -2390,6 +2390,10 @@ static void gtk_display_init(DisplayState *ds, DisplayOptions *opts)
opts->u.gtk.grab_on_hover) {
gtk_menu_item_activate(GTK_MENU_ITEM(s->grab_on_hover_item));
}
+ if (opts->u.gtk.has_show_tabs &&
+ opts->u.gtk.show_tabs) {
+ gtk_menu_item_activate(GTK_MENU_ITEM(s->show_tabs_item));
+ }
gd_clipboard_init(s);
}