GtkNotebook will use the currently visible widget as default page. If we don't show status widget before we append the display, the current page will be on display. Quoting Gtk+ documentation: "Note that due to historical reasons, GtkNotebook refuses to switch to a page unless the child widget is visible. Therefore, it is recommended to show child widgets before adding them to a notebook." --- src/virt-viewer-notebook.c | 1 + src/virt-viewer-window.c | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/virt-viewer-notebook.c b/src/virt-viewer-notebook.c index 09e8ec4..cc7136b 100644 --- a/src/virt-viewer-notebook.c +++ b/src/virt-viewer-notebook.c @@ -86,6 +86,7 @@ virt_viewer_notebook_init (VirtViewerNotebook *self) priv->status = gtk_label_new(""); gtk_notebook_set_show_tabs(GTK_NOTEBOOK(self), FALSE); gtk_notebook_set_show_border(GTK_NOTEBOOK(self), FALSE); + gtk_widget_show_all(priv->status); gtk_notebook_append_page(GTK_NOTEBOOK(self), priv->status, NULL); gdk_color_parse("white", &color); gtk_widget_modify_fg(priv->status, GTK_STATE_NORMAL, &color); diff --git a/src/virt-viewer-window.c b/src/virt-viewer-window.c index 4bc427a..7c6e41f 100644 --- a/src/virt-viewer-window.c +++ b/src/virt-viewer-window.c @@ -1040,8 +1040,12 @@ virt_viewer_window_set_display(VirtViewerWindow *self, VirtViewerDisplay *displa virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel); virt_viewer_display_set_auto_resize(VIRT_VIEWER_DISPLAY(priv->display), priv->auto_resize); - gtk_notebook_append_page(GTK_NOTEBOOK(priv->notebook), GTK_WIDGET(display), NULL); gtk_widget_show_all(GTK_WIDGET(display)); + gtk_notebook_append_page(GTK_NOTEBOOK(priv->notebook), GTK_WIDGET(display), NULL); + /* switch back to non-display if not ready */ + if (!(virt_viewer_display_get_show_hint(display) & + VIRT_VIEWER_DISPLAY_SHOW_HINT_READY)) + gtk_notebook_set_current_page(GTK_NOTEBOOK(priv->notebook), 0); virt_viewer_signal_connect_object(display, "display-pointer-grab", G_CALLBACK(virt_viewer_window_pointer_grab), self, 0); -- 1.7.10.4