From 32d0ae09b865cfd6446b499225c895feaba27a51 Mon Sep 17 00:00:00 2001 From: Christophe Fergeau Date: Thu, 12 Mar 2015 17:11:25 +0100 Subject: [PATCH] foreign-menu: Don't show empty foreign menu on secondary displays When using ovirt://, the foreign menu will only be shown in the primary window after getting notified about OvirtForeignMenu::files (ie when it managed to fetch some ISO files to show in the foreign menu). However, for secondary windows, the foreign menu will be added to the window even if there are no files to show. This commit makes sure we destroy the window foreign menu whenever it would be empty. --- src/ovirt-foreign-menu.c | 3 +++ src/remote-viewer.c | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/ovirt-foreign-menu.c b/src/ovirt-foreign-menu.c index 0de13e5..7c95e4c 100644 --- a/src/ovirt-foreign-menu.c +++ b/src/ovirt-foreign-menu.c @@ -467,6 +467,9 @@ GtkWidget *ovirt_foreign_menu_get_gtk_menu(OvirtForeignMenu *foreign_menu) char *current_iso; g_debug("Creating GtkMenu for foreign menu"); + if (foreign_menu->priv->iso_names == NULL) { + return NULL; + } current_iso = ovirt_foreign_menu_get_current_iso_name(foreign_menu); gtk_menu = gtk_menu_new(); for (it = foreign_menu->priv->iso_names; it != NULL; it = it->next) { diff --git a/src/remote-viewer.c b/src/remote-viewer.c index 3c81650..12bd912 100644 --- a/src/remote-viewer.c +++ b/src/remote-viewer.c @@ -757,7 +757,12 @@ ovirt_foreign_menu_update(RemoteViewer *app, VirtViewerWindow *win) } submenu = ovirt_foreign_menu_get_gtk_menu(app->priv->ovirt_foreign_menu); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu), submenu); + if (submenu != NULL) { + gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu), submenu); + } else { + /* No items to show, no point in showing the menu */ + g_object_set_data(G_OBJECT(win), "foreign-menu", NULL); + } gtk_widget_show_all(menu); }