diff options
author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2023-10-17 15:16:42 +0400 |
---|---|---|
committer | Michael Tokarev <mjt@tls.msk.ru> | 2023-11-07 20:24:01 +0300 |
commit | ad8457e85ee951faaf53eb83435b1438eed191c5 (patch) | |
tree | 299151810b057b7cfd06d88ea5f44ce1f7eb08c5 | |
parent | 091798aaf091ee83f32317a56bb181fb1ddf30c0 (diff) |
ui/gtk: force realization of drawing area
Fixes the GL context creation from a widget that isn't yet realized (in
a hidden tab for example).
Resolves:
https://gitlab.com/qemu-project/qemu/-/issues/1727
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Antonio Caggiano <quic_acaggian@quicinc.com>
Message-Id: <20231017111642.1155545-1-marcandre.lureau@redhat.com>
(cherry picked from commit 565f85a9c293818a91a3d3414311303de7e00cec)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
-rw-r--r-- | ui/gtk.c | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -2317,6 +2317,7 @@ static void gtk_display_init(DisplayState *ds, DisplayOptions *opts) GdkDisplay *window_display; GtkIconTheme *theme; char *dir; + int idx; if (!gtkinit) { fprintf(stderr, "gtk initialization failed\n"); @@ -2379,6 +2380,15 @@ static void gtk_display_init(DisplayState *ds, DisplayOptions *opts) gtk_container_add(GTK_CONTAINER(s->window), s->vbox); gtk_widget_show_all(s->window); + + for (idx = 0;; idx++) { + QemuConsole *con = qemu_console_lookup_by_index(idx); + if (!con) { + break; + } + gtk_widget_realize(s->vc[idx].gfx.drawing_area); + } + if (opts->u.gtk.has_show_menubar && !opts->u.gtk.show_menubar) { gtk_widget_hide(s->menu_bar); |