[virt-tools-list] [PATCH virt-viewer 3/3] Disable mnemonics via gtk-enable-mnemonics settings
Marc-André Lureau
marcandre.lureau at gmail.com
Sun Apr 1 18:29:01 UTC 2012
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 :)
---
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;
}
--
1.7.7.6
More information about the virt-tools-list
mailing list