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>
This commit is contained in:
parent
e301a77abb
commit
30d90aebcd
10
ui/gtk.c
10
ui/gtk.c
|
@ -2364,6 +2364,7 @@ static void gtk_display_init(DisplayState *ds, DisplayOptions *opts)
|
||||||
GdkDisplay *window_display;
|
GdkDisplay *window_display;
|
||||||
GtkIconTheme *theme;
|
GtkIconTheme *theme;
|
||||||
char *dir;
|
char *dir;
|
||||||
|
int idx;
|
||||||
|
|
||||||
if (!gtkinit) {
|
if (!gtkinit) {
|
||||||
fprintf(stderr, "gtk initialization failed\n");
|
fprintf(stderr, "gtk initialization failed\n");
|
||||||
|
@ -2426,6 +2427,15 @@ static void gtk_display_init(DisplayState *ds, DisplayOptions *opts)
|
||||||
gtk_container_add(GTK_CONTAINER(s->window), s->vbox);
|
gtk_container_add(GTK_CONTAINER(s->window), s->vbox);
|
||||||
|
|
||||||
gtk_widget_show_all(s->window);
|
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 &&
|
if (opts->u.gtk.has_show_menubar &&
|
||||||
!opts->u.gtk.show_menubar) {
|
!opts->u.gtk.show_menubar) {
|
||||||
gtk_widget_hide(s->menu_bar);
|
gtk_widget_hide(s->menu_bar);
|
||||||
|
|
Loading…
Reference in a new issue