[gtk/wip/ebassi/shortcut: 169/203] window: Remove all old mnemonic handling API
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/ebassi/shortcut: 169/203] window: Remove all old mnemonic handling API
- Date: Mon, 10 Feb 2020 11:42:07 +0000 (UTC)
commit 575ab21357d0c076d3aa8d374e132b63b5a292f6
Author: Emmanuele Bassi <ebassi gnome org>
Date: Thu Feb 6 15:54:57 2020 +0000
window: Remove all old mnemonic handling API
docs/reference/gtk/gtk4-sections.txt | 4 -
gtk/gtkapplicationaccels.c | 2 +-
gtk/gtkwindow.c | 249 ++++-------------------------------
gtk/gtkwindow.h | 14 --
gtk/gtkwindowprivate.h | 1 -
5 files changed, 27 insertions(+), 243 deletions(-)
---
diff --git a/docs/reference/gtk/gtk4-sections.txt b/docs/reference/gtk/gtk4-sections.txt
index 796910ca61..40ee970e24 100644
--- a/docs/reference/gtk/gtk4-sections.txt
+++ b/docs/reference/gtk/gtk4-sections.txt
@@ -4308,8 +4308,6 @@ gtk_window_is_active
gtk_window_is_maximized
gtk_window_get_toplevels
gtk_window_list_toplevels
-gtk_window_add_mnemonic
-gtk_window_remove_mnemonic
gtk_window_get_focus
gtk_window_set_focus
gtk_window_get_default_widget
@@ -4332,7 +4330,6 @@ gtk_window_begin_resize_drag
gtk_window_begin_move_drag
gtk_window_set_decorated
gtk_window_set_deletable
-gtk_window_set_mnemonic_modifier
gtk_window_set_type_hint
gtk_window_set_accept_focus
gtk_window_set_focus_on_map
@@ -4343,7 +4340,6 @@ gtk_window_get_default_icon_name
gtk_window_get_default_size
gtk_window_get_destroy_with_parent
gtk_window_get_icon_name
-gtk_window_get_mnemonic_modifier
gtk_window_get_modal
gtk_window_get_size
gtk_window_get_title
diff --git a/gtk/gtkapplicationaccels.c b/gtk/gtkapplicationaccels.c
index b4a14b9daa..43e35d79e4 100644
--- a/gtk/gtkapplicationaccels.c
+++ b/gtk/gtkapplicationaccels.c
@@ -347,7 +347,7 @@ gtk_application_accels_foreach_key (GtkApplicationAccels *accels,
{
AccelKey *accel_key = key;
- (* callback) (window, accel_key->key, accel_key->modifier, FALSE, user_data);
+ (* callback) (window, accel_key->key, accel_key->modifier, user_data);
}
}
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index 6cb23e7dfb..abc305441d 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -52,7 +52,6 @@
#include "gtkmain.h"
#include "gtkmarshalers.h"
#include "gtkmessagedialog.h"
-#include "gtkmnemonichash.h"
#include "gtkpointerfocusprivate.h"
#include "gtkpopovermenuprivate.h"
#include "gtkmodelbuttonprivate.h"
@@ -185,8 +184,6 @@ struct _GtkWindowPopover
typedef struct
{
- GtkMnemonicHash *mnemonic_hash;
-
GtkWidget *attach_widget;
GtkWidget *default_widget;
GtkWidget *initial_focus;
@@ -199,8 +196,6 @@ typedef struct
GQueue popovers;
- GdkModifierType mnemonic_modifier;
-
gchar *startup_id;
gchar *title;
@@ -1819,7 +1814,6 @@ gtk_window_init (GtkWindow *window)
priv->modal = FALSE;
priv->gravity = GDK_GRAVITY_NORTH_WEST;
priv->decorated = TRUE;
- priv->mnemonic_modifier = GDK_MOD1_MASK;
priv->display = gdk_display_get_default ();
priv->state = GDK_SURFACE_STATE_WITHDRAWN;
@@ -2733,130 +2727,6 @@ gtk_window_remove_accel_group (GtkWindow *window,
_gtk_window_notify_keys_changed (window);
}
-static GtkMnemonicHash *
-gtk_window_get_mnemonic_hash (GtkWindow *window,
- gboolean create)
-{
- GtkWindowPrivate *priv = gtk_window_get_instance_private (window);
-
- if (!priv->mnemonic_hash && create)
- priv->mnemonic_hash = _gtk_mnemonic_hash_new ();
-
- return priv->mnemonic_hash;
-}
-
-/**
- * gtk_window_add_mnemonic:
- * @window: a #GtkWindow
- * @keyval: the mnemonic
- * @target: the widget that gets activated by the mnemonic
- *
- * Adds a mnemonic to this window.
- */
-void
-gtk_window_add_mnemonic (GtkWindow *window,
- guint keyval,
- GtkWidget *target)
-{
- g_return_if_fail (GTK_IS_WINDOW (window));
- g_return_if_fail (GTK_IS_WIDGET (target));
-
- _gtk_mnemonic_hash_add (gtk_window_get_mnemonic_hash (window, TRUE),
- keyval, target);
- _gtk_window_notify_keys_changed (window);
-}
-
-/**
- * gtk_window_remove_mnemonic:
- * @window: a #GtkWindow
- * @keyval: the mnemonic
- * @target: the widget that gets activated by the mnemonic
- *
- * Removes a mnemonic from this window.
- */
-void
-gtk_window_remove_mnemonic (GtkWindow *window,
- guint keyval,
- GtkWidget *target)
-{
- g_return_if_fail (GTK_IS_WINDOW (window));
- g_return_if_fail (GTK_IS_WIDGET (target));
-
- _gtk_mnemonic_hash_remove (gtk_window_get_mnemonic_hash (window, TRUE),
- keyval, target);
- _gtk_window_notify_keys_changed (window);
-}
-
-/*
- * gtk_window_mnemonic_activate:
- * @window: a #GtkWindow
- * @keyval: the mnemonic
- * @modifier: the modifiers
- *
- * Activates the targets associated with the mnemonic.
- *
- * Returns: %TRUE if the activation is done.
- */
-static gboolean
-gtk_window_mnemonic_activate (GtkWindow *window,
- guint keyval,
- GdkModifierType modifier)
-{
- GtkWindowPrivate *priv = gtk_window_get_instance_private (window);
-
- g_return_val_if_fail (GTK_IS_WINDOW (window), FALSE);
-
- if (priv->mnemonic_modifier == (modifier & gtk_accelerator_get_default_mod_mask ()))
- {
- GtkMnemonicHash *mnemonic_hash = gtk_window_get_mnemonic_hash (window, FALSE);
- if (mnemonic_hash)
- return _gtk_mnemonic_hash_activate (mnemonic_hash, keyval);
- }
-
- return FALSE;
-}
-
-/**
- * gtk_window_set_mnemonic_modifier:
- * @window: a #GtkWindow
- * @modifier: the modifier mask used to activate
- * mnemonics on this window.
- *
- * Sets the mnemonic modifier for this window.
- **/
-void
-gtk_window_set_mnemonic_modifier (GtkWindow *window,
- GdkModifierType modifier)
-{
- GtkWindowPrivate *priv = gtk_window_get_instance_private (window);
-
- g_return_if_fail (GTK_IS_WINDOW (window));
- g_return_if_fail ((modifier & ~GDK_MODIFIER_MASK) == 0);
-
- priv->mnemonic_modifier = modifier;
- _gtk_window_notify_keys_changed (window);
-}
-
-/**
- * gtk_window_get_mnemonic_modifier:
- * @window: a #GtkWindow
- *
- * Returns the mnemonic modifier for this window. See
- * gtk_window_set_mnemonic_modifier().
- *
- * Returns: the modifier mask used to activate
- * mnemonics on this window.
- **/
-GdkModifierType
-gtk_window_get_mnemonic_modifier (GtkWindow *window)
-{
- GtkWindowPrivate *priv = gtk_window_get_instance_private (window);
-
- g_return_val_if_fail (GTK_IS_WINDOW (window), 0);
-
- return priv->mnemonic_modifier;
-}
-
/**
* gtk_window_get_focus:
* @window: a #GtkWindow
@@ -4718,15 +4588,10 @@ gtk_window_finalize (GObject *object)
{
GtkWindow *window = GTK_WINDOW (object);
GtkWindowPrivate *priv = gtk_window_get_instance_private (window);
- GtkMnemonicHash *mnemonic_hash;
g_free (priv->title);
gtk_window_release_application (window);
- mnemonic_hash = gtk_window_get_mnemonic_hash (window, FALSE);
- if (mnemonic_hash)
- _gtk_mnemonic_hash_free (mnemonic_hash);
-
if (priv->geometry_info)
{
g_free (priv->geometry_info);
@@ -6042,8 +5907,6 @@ _gtk_window_query_nonaccels (GtkWindow *window,
guint accel_key,
GdkModifierType accel_mods)
{
- GtkWindowPrivate *priv = gtk_window_get_instance_private (window);
-
g_return_val_if_fail (GTK_IS_WINDOW (window), FALSE);
/* movement keys are considered locked accels */
@@ -6060,14 +5923,6 @@ _gtk_window_query_nonaccels (GtkWindow *window,
return TRUE;
}
- /* mnemonics are considered locked accels */
- if (accel_mods == priv->mnemonic_modifier)
- {
- GtkMnemonicHash *mnemonic_hash = gtk_window_get_mnemonic_hash (window, FALSE);
- if (mnemonic_hash && _gtk_mnemonic_hash_lookup (mnemonic_hash, accel_key))
- return TRUE;
- }
-
return FALSE;
}
@@ -6116,9 +5971,6 @@ gtk_window_has_mnemonic_modifier_pressed (GtkWindow *window)
GList *seats, *s;
gboolean retval = FALSE;
- if (!priv->mnemonic_modifier)
- return FALSE;
-
seats = gdk_display_list_seats (gtk_widget_get_display (GTK_WIDGET (window)));
for (s = seats; s; s = s->next)
@@ -6127,7 +5979,7 @@ gtk_window_has_mnemonic_modifier_pressed (GtkWindow *window)
GdkModifierType mask;
gdk_device_get_state (dev, priv->surface, NULL, &mask);
- if (priv->mnemonic_modifier == (mask & gtk_accelerator_get_default_mod_mask ()))
+ if ((mask & gtk_accelerator_get_default_mod_mask ()) == GDK_MOD1_MASK)
{
retval = TRUE;
break;
@@ -8219,21 +8071,6 @@ gtk_window_activate_menubar (GtkWidget *widget,
return TRUE;
}
-static void
-gtk_window_mnemonic_hash_foreach (guint keyval,
- GSList *targets,
- gpointer data)
-{
- struct {
- GtkWindow *window;
- GtkWindowKeysForeachFunc func;
- gpointer func_data;
- } *info = data;
- GtkWindowPrivate *priv = gtk_window_get_instance_private (info->window);
-
- (*info->func) (info->window, keyval, priv->mnemonic_modifier, TRUE, info->func_data);
-}
-
static void
_gtk_window_keys_foreach (GtkWindow *window,
GtkWindowKeysForeachFunc func,
@@ -8241,22 +8078,6 @@ _gtk_window_keys_foreach (GtkWindow *window,
{
GtkWindowPrivate *priv = gtk_window_get_instance_private (window);
GSList *groups;
- GtkMnemonicHash *mnemonic_hash;
-
- struct {
- GtkWindow *window;
- GtkWindowKeysForeachFunc func;
- gpointer func_data;
- } info;
-
- info.window = window;
- info.func = func;
- info.func_data = func_data;
-
- mnemonic_hash = gtk_window_get_mnemonic_hash (window, FALSE);
- if (mnemonic_hash)
- _gtk_mnemonic_hash_foreach (mnemonic_hash,
- gtk_window_mnemonic_hash_foreach, &info);
groups = gtk_accel_groups_from_object (G_OBJECT (window));
while (groups)
@@ -8269,7 +8090,7 @@ _gtk_window_keys_foreach (GtkWindow *window,
GtkAccelKey *key = &group->priv->priv_accels[i].key;
if (key->accel_key)
- (*func) (window, key->accel_key, key->accel_mods, FALSE, func_data);
+ (*func) (window, key->accel_key, key->accel_mods, func_data);
}
groups = groups->next;
@@ -8297,7 +8118,6 @@ struct _GtkWindowKeyEntry
{
guint keyval;
guint modifiers;
- guint is_mnemonic : 1;
};
static void
@@ -8310,7 +8130,6 @@ static void
add_to_key_hash (GtkWindow *window,
guint keyval,
GdkModifierType modifiers,
- gboolean is_mnemonic,
gpointer data)
{
GtkKeyHash *key_hash = data;
@@ -8319,7 +8138,6 @@ add_to_key_hash (GtkWindow *window,
entry->keyval = keyval;
entry->modifiers = modifiers;
- entry->is_mnemonic = is_mnemonic;
/* GtkAccelGroup stores lowercased accelerators. To deal
* with this, if <Shift> was specified, uppercase.
@@ -8405,18 +8223,11 @@ gtk_window_activate_key (GtkWindow *window,
for (tmp_list = entries; tmp_list; tmp_list = tmp_list->next)
{
GtkWindowKeyEntry *entry = tmp_list->data;
- if (entry->is_mnemonic)
+ if (enable_accels && !found_entry)
{
found_entry = entry;
break;
}
- else
- {
- if (enable_accels && !found_entry)
- {
- found_entry = entry;
- }
- }
}
g_slist_free (entries);
@@ -8424,39 +8235,31 @@ gtk_window_activate_key (GtkWindow *window,
if (found_entry)
{
- if (found_entry->is_mnemonic)
- {
- return gtk_window_mnemonic_activate (window, found_entry->keyval,
- found_entry->modifiers);
- }
- else
+ if (enable_accels)
{
- if (enable_accels)
+ if (gtk_accel_groups_activate (G_OBJECT (window), found_entry->keyval, found_entry->modifiers))
+ return TRUE;
+
+ if (priv->application)
{
- if (gtk_accel_groups_activate (G_OBJECT (window), found_entry->keyval, found_entry->modifiers))
- return TRUE;
-
- if (priv->application)
- {
- GtkWidget *focused_widget;
- GtkActionMuxer *muxer;
- GtkApplicationAccels *app_accels;
-
- focused_widget = gtk_window_get_focus (window);
-
- if (focused_widget)
- muxer = _gtk_widget_get_action_muxer (focused_widget, FALSE);
- else
- muxer = _gtk_widget_get_action_muxer (GTK_WIDGET (window), FALSE);
-
- if (muxer == NULL)
- return FALSE;
-
- app_accels = gtk_application_get_application_accels (priv->application);
- return gtk_application_accels_activate (app_accels,
- G_ACTION_GROUP (muxer),
- found_entry->keyval, found_entry->modifiers);
- }
+ GtkWidget *focused_widget;
+ GtkActionMuxer *muxer;
+ GtkApplicationAccels *app_accels;
+
+ focused_widget = gtk_window_get_focus (window);
+
+ if (focused_widget)
+ muxer = _gtk_widget_get_action_muxer (focused_widget, FALSE);
+ else
+ muxer = _gtk_widget_get_action_muxer (GTK_WIDGET (window), FALSE);
+
+ if (muxer == NULL)
+ return FALSE;
+
+ app_accels = gtk_application_get_application_accels (priv->application);
+ return gtk_application_accels_activate (app_accels,
+ G_ACTION_GROUP (muxer),
+ found_entry->keyval, found_entry->modifiers);
}
}
}
diff --git a/gtk/gtkwindow.h b/gtk/gtkwindow.h
index 2a65bfc76b..b3697b82fe 100644
--- a/gtk/gtkwindow.h
+++ b/gtk/gtkwindow.h
@@ -235,20 +235,6 @@ GDK_AVAILABLE_IN_ALL
void gtk_window_set_has_user_ref_count (GtkWindow *window,
gboolean setting);
-GDK_AVAILABLE_IN_ALL
-void gtk_window_add_mnemonic (GtkWindow *window,
- guint keyval,
- GtkWidget *target);
-GDK_AVAILABLE_IN_ALL
-void gtk_window_remove_mnemonic (GtkWindow *window,
- guint keyval,
- GtkWidget *target);
-GDK_AVAILABLE_IN_ALL
-void gtk_window_set_mnemonic_modifier (GtkWindow *window,
- GdkModifierType modifier);
-GDK_AVAILABLE_IN_ALL
-GdkModifierType gtk_window_get_mnemonic_modifier (GtkWindow *window);
-
GDK_AVAILABLE_IN_ALL
void gtk_window_present (GtkWindow *window);
GDK_AVAILABLE_IN_ALL
diff --git a/gtk/gtkwindowprivate.h b/gtk/gtkwindowprivate.h
index b2e4b75ef1..a85b6a5bd1 100644
--- a/gtk/gtkwindowprivate.h
+++ b/gtk/gtkwindowprivate.h
@@ -56,7 +56,6 @@ void gtk_window_check_resize (GtkWindow *self);
typedef void (*GtkWindowKeysForeachFunc) (GtkWindow *window,
guint keyval,
GdkModifierType modifiers,
- gboolean is_mnemonic,
gpointer data);
gboolean gtk_window_emit_close_request (GtkWindow *window);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]