display: ignore display that do not have toplevel window

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 <marcandre.lureau@redhat.com>
Acked-by: Victor Toso <victortoso@redhat.com>
This commit is contained in:
Marc-André Lureau 2018-07-26 19:14:57 +02:00
parent f23548aa33
commit 1ad52ea8e9

View File

@ -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);