[gtk/shortcuts-rebased-again: 157/171] window: Convert activate-focus to an action
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/shortcuts-rebased-again: 157/171] window: Convert activate-focus to an action
- Date: Mon, 24 Jun 2019 23:17:41 +0000 (UTC)
commit 2002d4987149eeab767e597c01a7b73b53754777
Author: Matthias Clasen <mclasen redhat com>
Date: Sun Jun 23 14:27:12 2019 -0400
window: Convert activate-focus to an action
gtk/gtkwindow.c | 70 +++++++++++++++++++++++++++------------------------------
gtk/gtkwindow.h | 1 -
2 files changed, 33 insertions(+), 38 deletions(-)
---
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index b5dd3c128d..45260c628d 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -435,7 +435,6 @@ static gint gtk_window_focus (GtkWidget *widget,
static void gtk_window_move_focus (GtkWidget *widget,
GtkDirectionType dir);
-static void gtk_window_real_activate_focus (GtkWindow *window);
static void gtk_window_keys_changed (GtkWindow *window);
static gboolean gtk_window_enable_debugging (GtkWindow *window,
gboolean toggle);
@@ -501,9 +500,12 @@ static void gtk_window_on_theme_variant_changed (GtkSettings *settings,
#endif
static void gtk_window_set_theme_variant (GtkWindow *window);
-static void gtk_window_activate_default_activate (GtkWidget *widget,
+static void gtk_window_activate_default_activate (GtkWidget *widget,
const char *action_name,
- GVariant *parameter);
+ GVariant *parameter);
+static void gtk_window_activate_focus_activate (GtkWidget *widget,
+ const char *action_name,
+ GVariant *parameter);
static void gtk_window_do_popup (GtkWindow *window,
GdkEventButton *event);
@@ -817,7 +819,6 @@ gtk_window_class_init (GtkWindowClass *klass)
container_class->remove = gtk_window_remove;
container_class->forall = gtk_window_forall;
- klass->activate_focus = gtk_window_real_activate_focus;
klass->keys_changed = gtk_window_keys_changed;
klass->enable_debugging = gtk_window_enable_debugging;
klass->close_request = gtk_window_close_request;
@@ -1075,25 +1076,6 @@ gtk_window_class_init (GtkWindowClass *klass)
g_object_class_install_properties (gobject_class, LAST_ARG, window_props);
gtk_root_install_properties (gobject_class, LAST_ARG);
- /**
- * GtkWindow::activate-focus:
- * @window: the window which received the signal
- *
- * The ::activate-focus signal is a
- * [keybinding signal][GtkBindingSignal]
- * which gets emitted when the user activates the currently
- * focused widget of @window.
- */
- window_signals[ACTIVATE_FOCUS] =
- g_signal_new (I_("activate-focus"),
- G_TYPE_FROM_CLASS (gobject_class),
- G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
- G_STRUCT_OFFSET (GtkWindowClass, activate_focus),
- NULL, NULL,
- NULL,
- G_TYPE_NONE,
- 0);
-
/**
* GtkWindow::keys-changed:
* @window: the window which received the signal
@@ -1162,19 +1144,30 @@ gtk_window_class_init (GtkWindowClass *klass)
* GtkWindow|default.activate:
*
* The default.activate action activates the default
- * widget in the window.
+ * widget in the window, if there is one.
+ *
+ * See the #GtkWindow:default-widget property.
*/
gtk_widget_class_install_action (widget_class, "default.activate", NULL,
gtk_window_activate_default_activate);
+ /**
+ * GtkWindow|focus.activate:
+ *
+ * The focus.activate action activates the focus
+ * widget in the window, if it is activatable.
+ */
+ gtk_widget_class_install_action (widget_class, "focus.activate", NULL,
+ gtk_window_activate_focus_activate);
+
/*
* Key bindings
*/
- gtk_widget_class_add_binding_signal (widget_class, GDK_KEY_space, 0,
- "activate-focus", NULL);
- gtk_widget_class_add_binding_signal (widget_class, GDK_KEY_KP_Space, 0,
- "activate-focus", NULL);
+ gtk_widget_class_bind_action (widget_class, GDK_KEY_space, 0,
+ "focus.activate", NULL);
+ gtk_widget_class_bind_action (widget_class, GDK_KEY_KP_Space, 0,
+ "focus.activate", NULL);
gtk_widget_class_bind_action (widget_class, GDK_KEY_Return, 0,
"default.activate", NULL);
@@ -1784,6 +1777,18 @@ gtk_window_activate_default_activate (GtkWidget *widget,
gtk_widget_activate (priv->focus_widget);
}
+static void
+gtk_window_activate_focus_activate (GtkWidget *widget,
+ const char *name,
+ GVariant *parameter)
+{
+ GtkWindow *window = GTK_WINDOW (widget);
+ GtkWindowPrivate *priv = gtk_window_get_instance_private (window);
+
+ if (priv->focus_widget && gtk_widget_is_sensitive (priv->focus_widget))
+ gtk_widget_activate (priv->focus_widget);
+}
+
static void
gtk_window_init (GtkWindow *window)
{
@@ -5783,15 +5788,6 @@ get_active_region_type (GtkWindow *window, gint x, gint y)
return GTK_WINDOW_REGION_CONTENT;
}
-static void
-gtk_window_real_activate_focus (GtkWindow *window)
-{
- GtkWindowPrivate *priv = gtk_window_get_instance_private (window);
-
- if (priv->focus_widget && gtk_widget_is_sensitive (priv->focus_widget))
- gtk_widget_activate (priv->focus_widget);
-}
-
static gboolean
gtk_window_has_mnemonic_modifier_pressed (GtkWindow *window)
{
diff --git a/gtk/gtkwindow.h b/gtk/gtkwindow.h
index 94c235afdb..a95ff496cc 100644
--- a/gtk/gtkwindow.h
+++ b/gtk/gtkwindow.h
@@ -73,7 +73,6 @@ struct _GtkWindowClass
/* G_SIGNAL_ACTION signals for keybindings */
- void (* activate_focus) (GtkWindow *window);
void (* keys_changed) (GtkWindow *window);
gboolean (* enable_debugging) (GtkWindow *window,
gboolean toggle);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]