Reviewed-by: Antonio Caggiano <quic_acagg...@quicinc.com>

On 17/10/2023 13:16, marcandre.lur...@redhat.com wrote:
From: Marc-André Lureau <marcandre.lur...@redhat.com>

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.lur...@redhat.com>
---
  ui/gtk.c | 10 ++++++++++
  1 file changed, 10 insertions(+)

diff --git a/ui/gtk.c b/ui/gtk.c
index 935de1209b..2a4c9b84ba 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -2371,6 +2371,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");
@@ -2434,6 +2435,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);

Reply via email to