summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2012-03-30 18:23:08 +0200
committerMarc-André Lureau <marcandre.lureau@gmail.com>2012-04-01 20:09:16 +0200
commit261b6926573d9fec77416d3aefba8154570d2e7b (patch)
tree39ae90fca208469d5aece2d02d925f75b6b165b3
parentffb17ce387dde7e5b83ada411b39da80053e27c5 (diff)
Disable menu items that would fail when there is no display
-rw-r--r--src/virt-viewer-window.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/virt-viewer-window.c b/src/virt-viewer-window.c
index ec96532..e9b761f 100644
--- a/src/virt-viewer-window.c
+++ b/src/virt-viewer-window.c
@@ -281,6 +281,8 @@ virt_viewer_window_init (VirtViewerWindow *self)
menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "menu-view-resize"));
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(self->priv->builder, "menu-send")), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(self->priv->builder, "menu-file-screenshot")), FALSE);
gtk_builder_connect_signals(priv->builder, self);
@@ -869,6 +871,7 @@ virt_viewer_window_toolbar_setup(VirtViewerWindow *self)
gtk_widget_show(GTK_WIDGET(button));
gtk_toolbar_insert(GTK_TOOLBAR(priv->toolbar), GTK_TOOL_ITEM(button), 0);
g_signal_connect(button, "clicked", G_CALLBACK(virt_viewer_window_toolbar_send_key), self);
+ gtk_widget_set_sensitive(button, FALSE);
priv->toolbar_send_key = button;
/* Leave fullscreen */
@@ -995,6 +998,19 @@ virt_viewer_window_set_usb_options_sensitive(VirtViewerWindow *self, gboolean se
gtk_widget_set_visible(priv->toolbar_usb_device_selection, sensitive);
}
+static void
+display_show_hint(VirtViewerDisplay *display,
+ GParamSpec *pspec G_GNUC_UNUSED,
+ VirtViewerWindow *self)
+{
+ gboolean hint;
+
+ g_object_get(display, "show-hint", &hint, NULL);
+ gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(self->priv->builder, "menu-send")), hint);
+ gtk_widget_set_sensitive(GTK_WIDGET(gtk_builder_get_object(self->priv->builder, "menu-file-screenshot")), hint);
+ gtk_widget_set_sensitive(self->priv->toolbar_send_key, hint);
+}
+
void
virt_viewer_window_set_display(VirtViewerWindow *self, VirtViewerDisplay *display)
{
@@ -1029,6 +1045,8 @@ virt_viewer_window_set_display(VirtViewerWindow *self, VirtViewerDisplay *displa
G_CALLBACK(virt_viewer_window_keyboard_ungrab), self);
g_signal_connect(display, "display-desktop-resize",
G_CALLBACK(virt_viewer_window_desktop_resize), self);
+ g_signal_connect(display, "notify::show-hint",
+ G_CALLBACK(display_show_hint), self);
}
}