mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/virt-viewer
synced 2025-12-27 23:00:54 +00:00
Make the display submenu insensitive if display can't be selected
This commit is contained in:
parent
57bf1e9090
commit
8006302fef
@ -1635,15 +1635,31 @@ window_update_menu_displays_cb(gpointer key G_GNUC_UNUSED,
|
||||
while (tmp) {
|
||||
int *nth = tmp->data;
|
||||
VirtViewerWindow *vwin = VIRT_VIEWER_WINDOW(g_hash_table_lookup(self->priv->windows, nth));
|
||||
VirtViewerDisplay *display = virt_viewer_window_get_display(vwin);
|
||||
GtkWidget *item;
|
||||
gboolean visible;
|
||||
gboolean visible, sensitive = FALSE;
|
||||
gchar *label;
|
||||
|
||||
label = g_strdup_printf(_("Display %d"), *nth + 1);
|
||||
item = gtk_check_menu_item_new_with_label(label);
|
||||
g_free(label);
|
||||
|
||||
visible = gtk_widget_get_visible(GTK_WIDGET(virt_viewer_window_get_window(vwin)));
|
||||
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), visible);
|
||||
|
||||
if (display) {
|
||||
guint hint = virt_viewer_display_get_show_hint(display);
|
||||
|
||||
if (hint & VIRT_VIEWER_DISPLAY_SHOW_HINT_READY)
|
||||
sensitive = TRUE;
|
||||
|
||||
if ((hint & VIRT_VIEWER_DISPLAY_SHOW_HINT_DISABLED) &&
|
||||
virt_viewer_display_get_selectable(display))
|
||||
sensitive = TRUE;
|
||||
}
|
||||
|
||||
gtk_widget_set_sensitive(item, sensitive);
|
||||
|
||||
g_signal_connect(G_OBJECT(item),
|
||||
"toggled", G_CALLBACK(menu_display_visible_toggled_cb), vwin);
|
||||
gtk_menu_shell_append(submenu, item);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user