[virt-viewer 1/3] foreign-menu: Don't show empty foreign menu on secondary displays

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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);
 }
-- 
2.1.0

_______________________________________________
virt-tools-list mailing list
virt-tools-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/virt-tools-list




[Index of Archives]     [Linux Virtualization]     [KVM Development]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]     [Video 4 Linux]

  Powered by Linux