summaryrefslogtreecommitdiff
path: root/gtk/gtkapplicationwindow.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk/gtkapplicationwindow.c')
-rw-r--r--gtk/gtkapplicationwindow.c143
1 files changed, 0 insertions, 143 deletions
diff --git a/gtk/gtkapplicationwindow.c b/gtk/gtkapplicationwindow.c
index 7797eb8729..0cd3568967 100644
--- a/gtk/gtkapplicationwindow.c
+++ b/gtk/gtkapplicationwindow.c
@@ -24,8 +24,6 @@
#include "gtkapplicationprivate.h"
#include "gtkwidgetprivate.h"
#include "gtkwindowprivate.h"
-#include "gtkaccelgroup.h"
-#include "gtkaccelmap.h"
#include "gtkmenubar.h"
#include "gtkintl.h"
#include "gtksettings.h"
@@ -214,9 +212,6 @@ struct _GtkApplicationWindowPrivate
{
GSimpleActionGroup *actions;
GtkWidget *menubar;
- GtkAccelGroup *accels;
- GSList *accel_closures;
- guint accel_map_changed_id;
GMenu *app_menu_section;
GMenu *menubar_section;
@@ -370,124 +365,6 @@ gtk_application_window_update_shell_shows_menubar (GtkApplicationWindow *window,
}
}
-typedef struct {
- GClosure closure;
- gchar *action_name;
- GVariant *parameter;
-} AccelClosure;
-
-static void
-accel_activate (GClosure *closure,
- GValue *return_value,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint,
- gpointer marshal_data)
-{
- AccelClosure *aclosure = (AccelClosure*)closure;
- GActionGroup *actions;
-
- actions = G_ACTION_GROUP (closure->data);
- if (g_action_group_get_action_enabled (actions, aclosure->action_name))
- {
- g_action_group_activate_action (actions, aclosure->action_name, aclosure->parameter);
-
- /* we handled the accelerator */
- g_value_set_boolean (return_value, TRUE);
- }
-}
-
-static void
-free_accel_closures (GtkApplicationWindow *window)
-{
- GSList *l;
-
- for (l = window->priv->accel_closures; l; l = l->next)
- {
- AccelClosure *closure = l->data;
-
- gtk_accel_group_disconnect (window->priv->accels, &closure->closure);
-
- g_object_unref (closure->closure.data);
- if (closure->parameter)
- g_variant_unref (closure->parameter);
- g_free (closure->action_name);
- g_closure_invalidate (&closure->closure);
- g_closure_unref (&closure->closure);
- }
- g_slist_free (window->priv->accel_closures);
- window->priv->accel_closures = NULL;
-}
-
-/* Hack. We iterate over the accel map instead of the actions,
- * in order to pull the parameters out of accel map entries
- */
-static void
-add_accel_closure (gpointer data,
- const gchar *accel_path,
- guint accel_key,
- GdkModifierType accel_mods,
- gboolean changed)
-{
- GtkApplicationWindow *window = data;
- GActionGroup *actions;
- const gchar *path;
- const gchar *p;
- gchar *action_name;
- GVariant *parameter;
- AccelClosure *closure;
-
- if (accel_key == 0)
- return;
-
- if (!g_str_has_prefix (accel_path, "<GAction>/"))
- return;
-
- path = accel_path + strlen ("<GAction>/");
- p = strchr (path, '/');
- if (p)
- {
- action_name = g_strndup (path, p - path);
- parameter = g_variant_parse (NULL, p + 1, NULL, NULL, NULL);
- if (!parameter)
- g_warning ("Failed to parse parameter from '%s'\n", accel_path);
- }
- else
- {
- action_name = g_strdup (path);
- parameter = NULL;
- }
-
- actions = G_ACTION_GROUP (_gtk_widget_get_action_muxer (GTK_WIDGET (window)));
- if (g_action_group_has_action (actions, action_name))
- {
- closure = (AccelClosure*) g_closure_new_object (sizeof (AccelClosure), g_object_ref (actions));
- g_closure_set_marshal (&closure->closure, accel_activate);
-
- closure->action_name = g_strdup (action_name);
- closure->parameter = parameter ? g_variant_ref_sink (parameter) : NULL;
-
- window->priv->accel_closures = g_slist_prepend (window->priv->accel_closures, g_closure_ref (&closure->closure));
- g_closure_sink (&closure->closure);
-
- gtk_accel_group_connect_by_path (window->priv->accels, accel_path, &closure->closure);
- }
- else if (parameter)
- {
- g_variant_unref (parameter);
- }
-
- g_free (action_name);
-}
-
-static void
-gtk_application_window_update_accels (GtkApplicationWindow *window)
-{
- free_accel_closures (window);
-
- gtk_accel_map_foreach (window, add_accel_closure);
-}
-
static void
gtk_application_window_shell_shows_app_menu_changed (GObject *object,
GParamSpec *pspec,
@@ -758,12 +635,6 @@ gtk_application_window_real_realize (GtkWidget *widget)
gtk_application_window_update_shell_shows_menubar (window, settings);
gtk_application_window_update_menubar (window);
- /* Update the accelerators, and ensure we do again
- * if the accel map changes */
- gtk_application_window_update_accels (window);
- window->priv->accel_map_changed_id = g_signal_connect_swapped (gtk_accel_map_get (), "changed",
- G_CALLBACK (gtk_application_window_update_accels), window);
-
GTK_WIDGET_CLASS (gtk_application_window_parent_class)
->realize (widget);
@@ -800,7 +671,6 @@ gtk_application_window_real_realize (GtkWidget *widget)
static void
gtk_application_window_real_unrealize (GtkWidget *widget)
{
- GtkApplicationWindow *window = GTK_APPLICATION_WINDOW (widget);
GtkSettings *settings;
settings = gtk_widget_get_settings (widget);
@@ -808,8 +678,6 @@ gtk_application_window_real_unrealize (GtkWidget *widget)
g_signal_handlers_disconnect_by_func (settings, gtk_application_window_shell_shows_app_menu_changed, widget);
g_signal_handlers_disconnect_by_func (settings, gtk_application_window_shell_shows_menubar_changed, widget);
- g_signal_handler_disconnect (gtk_accel_map_get (), window->priv->accel_map_changed_id);
-
GTK_WIDGET_CLASS (gtk_application_window_parent_class)
->unrealize (widget);
}
@@ -933,12 +801,9 @@ gtk_application_window_dispose (GObject *object)
window->priv->menubar = NULL;
}
- free_accel_closures (window);
-
g_clear_object (&window->priv->app_menu_section);
g_clear_object (&window->priv->menubar_section);
g_clear_object (&window->priv->actions);
- g_clear_object (&window->priv->accels);
G_OBJECT_CLASS (gtk_application_window_parent_class)
->dispose (object);
@@ -952,8 +817,6 @@ gtk_application_window_init (GtkApplicationWindow *window)
window->priv->actions = gtk_application_window_actions_new (window);
window->priv->app_menu_section = g_menu_new ();
window->priv->menubar_section = g_menu_new ();
- window->priv->accels = gtk_accel_group_new ();
- gtk_window_add_accel_group (GTK_WINDOW (window), window->priv->accels);
gtk_widget_insert_action_group (GTK_WIDGET (window), "win", G_ACTION_GROUP (window->priv->actions));
@@ -1075,12 +938,6 @@ gtk_application_window_set_show_menubar (GtkApplicationWindow *window,
}
}
-GtkAccelGroup *
-gtk_application_window_get_accel_group (GtkApplicationWindow *window)
-{
- return window->priv->accels;
-}
-
/**
* gtk_application_window_get_id:
* @window: a #GtkApplicationWindow