[gtk+/gtk-3-10: 2/5] Allow applications to use gtk-enable-mnemonics in 3.10
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-3-10: 2/5] Allow applications to use gtk-enable-mnemonics in 3.10
- Date: Mon, 23 Sep 2013 18:43:15 +0000 (UTC)
commit 34cf40e95cb1f0bc4bb98bb14edb03dd86f1dab3
Author: Matthias Clasen <mclasen redhat com>
Date: Mon Sep 23 13:01:49 2013 -0400
Allow applications to use gtk-enable-mnemonics in 3.10
gnome-terminal is still using this setting, so we'll let
applications override it for another cycle. It is no longer
backed by a system-wide setting, though, and it will still
go away eventually.
This partically reverts 7e3a494fac62140f466fc43f6cc061215953e9b1
gtk/gtklabel.c | 11 +++++++++++
gtk/gtkmenushell.c | 10 +++++++++-
gtk/gtksettings.c | 5 +++--
3 files changed, 23 insertions(+), 3 deletions(-)
---
diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c
index d0b1643..31a1b47 100644
--- a/gtk/gtklabel.c
+++ b/gtk/gtklabel.c
@@ -1892,6 +1892,9 @@ gtk_label_screen_changed (GtkWidget *widget,
if (! shortcuts_connected)
{
+ g_signal_connect (settings, "notify::gtk-enable-mnemonics",
+ G_CALLBACK (label_shortcut_setting_changed),
+ NULL);
g_signal_connect (settings, "notify::gtk-enable-accels",
G_CALLBACK (label_shortcut_setting_changed),
NULL);
@@ -2571,6 +2574,10 @@ gtk_label_set_markup_internal (GtkLabel *label,
gboolean enable_mnemonics = TRUE;
gboolean auto_mnemonics = TRUE;
+ g_object_get (gtk_widget_get_settings (GTK_WIDGET (label)),
+ "gtk-enable-mnemonics", &enable_mnemonics,
+ NULL);
+
if (!(enable_mnemonics && priv->mnemonics_visible &&
(!auto_mnemonics ||
(gtk_widget_is_sensitive (GTK_WIDGET (label)) &&
@@ -2785,6 +2792,10 @@ gtk_label_set_pattern_internal (GtkLabel *label,
if (is_mnemonic)
{
+ g_object_get (gtk_widget_get_settings (GTK_WIDGET (label)),
+ "gtk-enable-mnemonics", &enable_mnemonics,
+ NULL);
+
if (enable_mnemonics && priv->mnemonics_visible && pattern &&
(!auto_mnemonics ||
(gtk_widget_is_sensitive (GTK_WIDGET (label)) &&
diff --git a/gtk/gtkmenushell.c b/gtk/gtkmenushell.c
index 3d3bc5e..4c6a105 100644
--- a/gtk/gtkmenushell.c
+++ b/gtk/gtkmenushell.c
@@ -968,6 +968,7 @@ gtk_menu_shell_key_press (GtkWidget *widget,
{
GtkMenuShell *menu_shell = GTK_MENU_SHELL (widget);
GtkMenuShellPrivate *priv = menu_shell->priv;
+ gboolean enable_mnemonics;
priv->keyboard_mode = TRUE;
@@ -978,7 +979,14 @@ gtk_menu_shell_key_press (GtkWidget *widget,
if (gtk_bindings_activate_event (G_OBJECT (widget), event))
return TRUE;
- return gtk_menu_shell_activate_mnemonic (menu_shell, event);
+ g_object_get (gtk_widget_get_settings (widget),
+ "gtk-enable-mnemonics", &enable_mnemonics,
+ NULL);
+
+ if (enable_mnemonics)
+ return gtk_menu_shell_activate_mnemonic (menu_shell, event);
+
+ return FALSE;
}
static gint
diff --git a/gtk/gtksettings.c b/gtk/gtksettings.c
index 4eec096..57ad653 100644
--- a/gtk/gtksettings.c
+++ b/gtk/gtksettings.c
@@ -997,14 +997,15 @@ gtk_settings_class_init (GtkSettingsClass *class)
*
* Since: 2.12
*
- * Deprecated: 3.10: This setting is ignored
+ * Deprecated: 3.10: This setting can still be used for application
+ * overrides, but will be ignored in the future
*/
result = settings_install_property_parser (class,
g_param_spec_boolean ("gtk-enable-mnemonics",
P_("Enable Mnemonics"),
P_("Whether labels should have
mnemonics"),
TRUE,
- GTK_PARAM_READWRITE | G_PARAM_DEPRECATED),
+ GTK_PARAM_READWRITE),
NULL);
g_assert (result == PROP_ENABLE_MNEMONICS);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]