From 1ad52ea8e90406ebe375a68b4e1018978167f34c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Thu, 26 Jul 2018 19:14:57 +0200 Subject: [PATCH] display: ignore display that do not have toplevel window MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit virt_viewer_display_get_preferred_monitor_geometry() may be called during application initialization (when the VTE console is being shown, virt_viewer_session_update_displays_geometry() is called when the visibility menu item is toggled). But the other displays may not yet be associated with a window, ignore them. Signed-off-by: Marc-André Lureau Acked-by: Victor Toso --- src/virt-viewer-display.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/virt-viewer-display.c b/src/virt-viewer-display.c index b3cc095..a1fcb82 100644 --- a/src/virt-viewer-display.c +++ b/src/virt-viewer-display.c @@ -687,7 +687,9 @@ void virt_viewer_display_get_preferred_monitor_geometry(VirtViewerDisplay* self, g_return_if_fail(preferred != NULL); - if (!virt_viewer_display_get_enabled(self)) { + top = gtk_widget_get_toplevel(GTK_WIDGET(self)); + if (!virt_viewer_display_get_enabled(self) || + !GTK_IS_WINDOW(top)) { preferred->width = 0; preferred->height = 0; preferred->x = 0; @@ -695,7 +697,6 @@ void virt_viewer_display_get_preferred_monitor_geometry(VirtViewerDisplay* self, return; } - top = gtk_widget_get_toplevel(GTK_WIDGET(self)); gtk_window_get_position(GTK_WINDOW(top), &topx, &topy); topx = MAX(topx, 0); topy = MAX(topy, 0);