With commit 81ed9d13 "virt_viewer_window_enter_fullscreen: Pass in monitor for fullscreen window" we need a monitor number to determine where to move the window when going fullscreen. Since the VirtViewerDisplay needs to know the fullscreen monitor number too, to determine the fullscreen size it was being stored there. But we don't always have a display, leading to errors like: (remote-viewer:7996): remote-viewer-CRITICAL **: virt_viewer_display_get_monitor: assertion `VIRT_VIEWER_IS_DISPLAY(self)' failed And to the monitor number not always being stored. This patchset fixes this by storing the monitor number inside VirtViewerWindow, and passing it to VirtViewerDisplay only when we've a display. Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> --- src/virt-viewer-window.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/virt-viewer-window.c b/src/virt-viewer-window.c index f8958a1..80ba322 100644 --- a/src/virt-viewer-window.c +++ b/src/virt-viewer-window.c @@ -100,6 +100,7 @@ struct _VirtViewerWindowPrivate { gboolean grabbed; gboolean before_saved; GdkRectangle before_fullscreen; + gint fullscreen_monitor; gboolean desktop_resize_pending; gint zoomlevel; @@ -472,9 +473,8 @@ virt_viewer_window_move_to_monitor(VirtViewerWindow *self) { VirtViewerWindowPrivate *priv = self->priv; GdkRectangle mon; - gint n; + gint n = priv->fullscreen_monitor; - n = virt_viewer_display_get_monitor(priv->display); if (n == -1 || !priv->fullscreen) return; @@ -494,7 +494,9 @@ virt_viewer_window_leave_fullscreen(VirtViewerWindow *self) gtk_check_menu_item_set_active(check, FALSE); priv->fullscreen = FALSE; - virt_viewer_display_set_monitor(priv->display, -1); + priv->fullscreen_monitor = -1; + if (priv->display) + virt_viewer_display_set_monitor(priv->display, -1); ViewAutoDrawer_SetActive(VIEW_AUTODRAWER(priv->layout), FALSE); gtk_widget_show(menu); gtk_widget_hide(priv->toolbar); @@ -541,7 +543,9 @@ virt_viewer_window_enter_fullscreen(VirtViewerWindow *self, gint monitor) ViewAutoDrawer_SetActive(VIEW_AUTODRAWER(priv->layout), TRUE); ViewAutoDrawer_Close(VIEW_AUTODRAWER(priv->layout)); - virt_viewer_display_set_monitor(priv->display, monitor); + priv->fullscreen_monitor = monitor; + if (priv->display) + virt_viewer_display_set_monitor(priv->display, monitor); virt_viewer_window_move_to_monitor(self); gtk_window_fullscreen(GTK_WINDOW(priv->window)); @@ -1118,6 +1122,7 @@ 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); + virt_viewer_display_set_monitor(VIRT_VIEWER_DISPLAY(priv->display), priv->fullscreen_monitor); gtk_widget_show_all(GTK_WIDGET(display)); gtk_notebook_append_page(GTK_NOTEBOOK(priv->notebook), GTK_WIDGET(display), NULL); -- 1.8.1.4 _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list