Message ID | 56D0203F.5060303@gmail.com |
---|---|
State | New |
Headers | show |
Heya!
> 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.
It's been a while now, but i was always missing this feature in QEMU and
i'd love to see that patch land in QEMU one day.
I discovered that patch by searching for "start qemu with tabs visible"
and found this link:
https://patchwork.ozlabs.org/project/qemu-devel/patch/56D0203F.5060303@gmail.com/
Regards
- Felix
On 23/06/2022 16.36, Felix Queißner wrote: > Heya! > >> 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. > > It's been a while now, but i was always missing this feature in QEMU and i'd > love to see that patch land in QEMU one day. > > I discovered that patch by searching for "start qemu with tabs visible" and > found this link: > > https://patchwork.ozlabs.org/project/qemu-devel/patch/56D0203F.5060303@gmail.com/ Not sure why it was That patch certainly needs a re-spin since it won't apply as-is anymore. Want to have a try? Thomas
On 23/06/2022 16.59, Thomas Huth wrote: > On 23/06/2022 16.36, Felix Queißner wrote: >> Heya! >> >>> 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. >> >> It's been a while now, but i was always missing this feature in QEMU and >> i'd love to see that patch land in QEMU one day. >> >> I discovered that patch by searching for "start qemu with tabs visible" >> and found this link: >> >> https://patchwork.ozlabs.org/project/qemu-devel/patch/56D0203F.5060303@gmail.com/ > > > Not sure why it was I wanted to say: "Not sure why it was never picked up"... sorry, I hit the send button by accident too early. Thomas
> Not sure why it was never picked up > > That patch certainly needs a re-spin since it won't apply as-is anymore. > Want to have a try? I guess the semantics of the code stay the same, but the boilerplate might change a bit? If so, i guess i can give it a try tomorrow and see if i can make it work. - Felix
On 23/06/2022 17.05, Felix Queißner wrote: > >> Not sure why it was never picked up >> >> That patch certainly needs a re-spin since it won't apply as-is anymore. >> Want to have a try? > > I guess the semantics of the code stay the same, but the boilerplate might > change a bit? > > If so, i guess i can give it a try tomorrow and see if i can make it work. The part that affects vl.c has changed completely - you now have to declare it in the "QAPI schema" in the file qapi/ui.json instead (and it has to use "-" instead of "_" now). Just have a look how grab_on_hover is handled nowadays, then you'll should be able to figure it out, I think. HTH, Thomas
diff --git a/include/ui/console.h b/include/ui/console.h index 6631b96..71132aa 100644 --- a/include/ui/console.h +++ b/include/ui/console.h @@ -453,6 +453,6 @@ int index_from_key(const char *key, size_t key_length); /* gtk.c */ void early_gtk_display_init(int opengl); -void gtk_display_init(DisplayState *ds, bool full_screen, bool grab_on_hover); +void gtk_display_init(DisplayState *ds, bool full_screen, bool grab_on_hover, bool show_tabs); #endif diff --git a/qemu-options.hx b/qemu-options.hx index f528405..1c2e9ae 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -930,7 +930,7 @@ ETEXI DEF("display", HAS_ARG, QEMU_OPTION_display, "-display sdl[,frame=on|off][,alt_grab=on|off][,ctrl_grab=on|off]\n" " [,window_close=on|off]|curses|none|\n" - " gtk[,grab_on_hover=on|off]|\n" + " gtk[,grab_on_hover=on|off][,show_tabs=on|off]|\n" " vnc=<display>[,<optargs>]\n" " select display type\n", QEMU_ARCH_ALL) STEXI diff --git a/ui/gtk.c b/ui/gtk.c index 3773826..8800eca 100644 --- a/ui/gtk.c +++ b/ui/gtk.c @@ -2071,7 +2071,7 @@ static void gd_set_keycode_type(GtkDisplayState *s) static gboolean gtkinit; -void gtk_display_init(DisplayState *ds, bool full_screen, bool grab_on_hover) +void gtk_display_init(DisplayState *ds, bool full_screen, bool grab_on_hover, bool show_tabs) { GtkDisplayState *s = g_malloc0(sizeof(*s)); char *filename; @@ -2157,6 +2157,9 @@ void gtk_display_init(DisplayState *ds, bool full_screen, bool grab_on_hover) if (grab_on_hover) { gtk_menu_item_activate(GTK_MENU_ITEM(s->grab_on_hover_item)); } + if (show_tabs) { + gtk_menu_item_activate(GTK_MENU_ITEM(s->show_tabs_item)); + } gd_set_keycode_type(s); } diff --git a/vl.c b/vl.c index b87e292..e553611 100644 --- a/vl.c +++ b/vl.c @@ -146,6 +146,7 @@ static int no_frame = 0; int no_quit = 0; #ifdef CONFIG_GTK static bool grab_on_hover; +static bool show_tabs; #endif CharDriverState *serial_hds[MAX_SERIAL_PORTS]; CharDriverState *parallel_hds[MAX_PARALLEL_PORTS]; @@ -2194,6 +2195,15 @@ static DisplayType select_display(const char *p) } else { goto invalid_gtk_args; } + } else if (strstart(opts, ",show_tabs=", &nextopt)) { + opts = nextopt; + if (strstart(opts, "on", &nextopt)) { + show_tabs = true; + } else if (strstart(opts, "off", &nextopt)) { + show_tabs = false; + } else { + goto invalid_gtk_args; + } } else if (strstart(opts, ",gl=", &nextopt)) { opts = nextopt; if (strstart(opts, "on", &nextopt)) { @@ -4567,7 +4577,7 @@ int main(int argc, char **argv, char **envp) #endif #if defined(CONFIG_GTK) case DT_GTK: - gtk_display_init(ds, full_screen, grab_on_hover); + gtk_display_init(ds, full_screen, grab_on_hover, show_tabs); break; #endif default:
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: Igor Sudarikov <4seev3@gmail.com> --- include/ui/console.h | 2 +- qemu-options.hx | 2 +- ui/gtk.c | 5 ++++- vl.c | 12 +++++++++++- 4 files changed, 17 insertions(+), 4 deletions(-)