diff options
author | Marc-André Lureau <marcandre.lureau@gmail.com> | 2012-04-01 19:55:16 +0200 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@gmail.com> | 2012-04-01 20:09:16 +0200 |
commit | a48856f10e4ae23c86b8886430f631748ccfd7d7 (patch) | |
tree | 3304c77f8830227a8fd466eb9beea8eb5b0ba5ea | |
parent | 261b6926573d9fec77416d3aefba8154570d2e7b (diff) |
Disable mnemonics via gtk-enable-mnemonics settings
This has 2 advantages, and I can't figure any drawback:
- it fixes the issue of mnemonic hints being draw when pressing Alt
key (character underlined), even when they were disabled.
- it simplifies the code :)
-rw-r--r-- | src/virt-viewer-window.c | 43 |
1 files changed, 10 insertions, 33 deletions
diff --git a/src/virt-viewer-window.c b/src/virt-viewer-window.c index e9b761f..b17499b 100644 --- a/src/virt-viewer-window.c +++ b/src/virt-viewer-window.c @@ -79,14 +79,6 @@ enum { PROP_APP, }; -enum menuNums { - FILE_MENU, - VIEW_MENU, - SEND_KEY_MENU, - HELP_MENU, - LAST_MENU // sentinel -}; - struct _VirtViewerWindowPrivate { VirtViewerApp *app; GtkContainer *container; /* if any, then there is no window */ @@ -104,7 +96,7 @@ struct _VirtViewerWindowPrivate { gboolean accel_enabled; GValue accel_setting; GSList *accel_list; - int accel_menu_sig[LAST_MENU]; + gboolean enable_mnemonics_save; gboolean grabbed; gboolean before_saved; GdkRectangle before_fullscreen; @@ -588,18 +580,6 @@ virt_viewer_window_get_keycombo_menu(VirtViewerWindow *self) return g_object_ref_sink(menu); } -static gboolean -virt_viewer_window_ignore_accel(GtkWidget *menu G_GNUC_UNUSED, - VirtViewerWindow *self G_GNUC_UNUSED) -{ - /* ignore accelerator */ - return TRUE; -} - -static const char * const menuNames[LAST_MENU] = { - "menu-file", "menu-view", "menu-send", "menu-help" -}; - void virt_viewer_window_disable_modifiers(VirtViewerWindow *self) { @@ -607,7 +587,6 @@ virt_viewer_window_disable_modifiers(VirtViewerWindow *self) VirtViewerWindowPrivate *priv = self->priv; GValue empty; GSList *accels; - int i; if (!priv->accel_enabled) return; @@ -627,12 +606,12 @@ virt_viewer_window_disable_modifiers(VirtViewerWindow *self) } /* This stops menu bar shortcuts like Alt+F == File */ - for (i = 0 ; i < LAST_MENU ; i++) { - GtkWidget *menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, menuNames[i])); - priv->accel_menu_sig[i] = - g_signal_connect(menu, "mnemonic-activate", - G_CALLBACK(virt_viewer_window_ignore_accel), self); - } + g_object_get(settings, + "gtk-enable-mnemonics", &priv->enable_mnemonics_save, + NULL); + g_object_set(settings, + "gtk-enable-mnemonics", FALSE, + NULL); priv->accel_enabled = FALSE; } @@ -643,7 +622,6 @@ virt_viewer_window_enable_modifiers(VirtViewerWindow *self) GtkSettings *settings = gtk_settings_get_default(); VirtViewerWindowPrivate *priv = self->priv; GSList *accels; - int i; if (priv->accel_enabled) return; @@ -660,10 +638,9 @@ virt_viewer_window_enable_modifiers(VirtViewerWindow *self) } /* This allows menu bar shortcuts like Alt+F == File */ - for (i = 0 ; i < LAST_MENU ; i++) { - GtkWidget *menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, menuNames[i])); - g_signal_handler_disconnect(menu, priv->accel_menu_sig[i]); - } + g_object_set(settings, + "gtk-enable-mnemonics", priv->enable_mnemonics_save, + NULL); priv->accel_enabled = TRUE; } |