With "detach-all=on" for display, all VCs are detached from the beginning. This is useful when there are multiple displays assigned to a guest OS.
Signed-off-by: Dongwon Kim <dongwon....@intel.com> Signed-off-by: Khairul Anuar Romli <khairul.anuar.ro...@intel.com> --- qapi/ui.json | 4 +++- ui/gtk.c | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/qapi/ui.json b/qapi/ui.json index 1052ca9c38..ff14bb2f46 100644 --- a/qapi/ui.json +++ b/qapi/ui.json @@ -1141,6 +1141,7 @@ # @show-cursor: Force showing the mouse cursor (default: off). # (since: 5.0) # @gl: Enable OpenGL support (default: off). +# @detach-all: Detatch all VirtualConsoles from beginning (default: off). # # Since: 2.12 # @@ -1150,7 +1151,8 @@ '*full-screen' : 'bool', '*window-close' : 'bool', '*show-cursor' : 'bool', - '*gl' : 'DisplayGLMode' }, + '*gl' : 'DisplayGLMode', + '*detach-all' : 'bool' }, 'discriminator' : 'type', 'data' : { 'gtk' : 'DisplayGTK', 'curses' : 'DisplayCurses', diff --git a/ui/gtk.c b/ui/gtk.c index ce885d2ca3..a07e5a049e 100644 --- a/ui/gtk.c +++ b/ui/gtk.c @@ -2211,6 +2211,7 @@ static void gtk_display_init(DisplayState *ds, DisplayOptions *opts) GdkDisplay *window_display; GtkIconTheme *theme; char *dir; + int i; if (!gtkinit) { fprintf(stderr, "gtk initialization failed\n"); @@ -2290,6 +2291,12 @@ static void gtk_display_init(DisplayState *ds, DisplayOptions *opts) gtk_menu_item_activate(GTK_MENU_ITEM(s->grab_on_hover_item)); } gd_clipboard_init(s); + + if (opts->detach_all) { + for (i = 0; i < s->nb_vcs - 1; i++) { + gtk_menu_item_activate(GTK_MENU_ITEM(s->untabify_item)); + } + } } static void early_gtk_display_init(DisplayOptions *opts) -- 2.17.1