[gnome-panel] libpanel-applet: remove move-focus-out-of-applet signal
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-panel] libpanel-applet: remove move-focus-out-of-applet signal
- Date: Fri, 14 Oct 2016 00:27:38 +0000 (UTC)
commit 3a4eafb5b86faf1ddeb29f41ad755d6f72059689
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date: Fri Oct 14 03:17:27 2016 +0300
libpanel-applet: remove move-focus-out-of-applet signal
And add it back to PanelAppletFrame.
https://git.gnome.org/browse/gnome-panel/commit/?id=fdc603831096422ddd771ff757cdf67f30958193
https://git.gnome.org/browse/gnome-panel/commit/?id=e83ec60a4ea0fd0dcff76187d529d1f05df8ac99
gnome-panel/panel-applet-frame.c | 70 ++++++++++++++++++++++++++++++++++++
gnome-panel/panel-applet-frame.h | 3 ++
libpanel-applet/panel-applet.c | 73 --------------------------------------
libpanel-applet/panel-applet.h | 2 -
4 files changed, 73 insertions(+), 75 deletions(-)
---
diff --git a/gnome-panel/panel-applet-frame.c b/gnome-panel/panel-applet-frame.c
index ca054ef..ce56a78 100644
--- a/gnome-panel/panel-applet-frame.c
+++ b/gnome-panel/panel-applet-frame.c
@@ -28,6 +28,7 @@
#include <glib/gi18n.h>
#include <gdk/gdk.h>
+#include <gdk/gdkkeysyms.h>
#include <gdk/gdkx.h>
#include "panel-applets-manager.h"
@@ -86,8 +87,17 @@ struct _PanelAppletFramePrivate {
GdkRectangle handle_rect;
guint has_handle : 1;
+
+ gboolean moving_focus_out;
+};
+
+enum {
+ MOVE_FOCUS_OUT_OF_APPLET,
+ LAST_SIGNAL
};
+static guint panel_applet_frame_signals [LAST_SIGNAL];
+
static gboolean
panel_applet_frame_draw (GtkWidget *widget,
cairo_t *cr)
@@ -406,10 +416,54 @@ panel_applet_frame_finalize (GObject *object)
}
static void
+panel_applet_frame_move_focus_out_of_applet (PanelAppletFrame *frame,
+ GtkDirectionType dir)
+{
+ GtkWidget *toplevel;
+
+ frame->priv->moving_focus_out = TRUE;
+ toplevel = gtk_widget_get_toplevel (GTK_WIDGET (frame));
+ g_return_if_fail (toplevel);
+
+ gtk_widget_child_focus (toplevel, dir);
+ frame->priv->moving_focus_out = FALSE;
+}
+
+static gboolean
+panel_applet_frame_focus (GtkWidget *widget,
+ GtkDirectionType dir)
+{
+ PanelAppletFrame *frame;
+
+ g_return_val_if_fail (PANEL_IS_APPLET_FRAME (widget), FALSE);
+
+ frame = PANEL_APPLET_FRAME (widget);
+
+ if (frame->priv->moving_focus_out)
+ return FALSE;
+
+ return GTK_WIDGET_CLASS (panel_applet_frame_parent_class)->focus (widget, dir);
+}
+
+static void
+add_tab_bindings (GtkBindingSet *binding_set,
+ GdkModifierType modifiers,
+ GtkDirectionType direction)
+{
+ gtk_binding_entry_add_signal (binding_set, GDK_KEY_Tab, modifiers,
+ "move_focus_out_of_applet", 1,
+ GTK_TYPE_DIRECTION_TYPE, direction);
+ gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Tab, modifiers,
+ "move_focus_out_of_applet", 1,
+ GTK_TYPE_DIRECTION_TYPE, direction);
+}
+
+static void
panel_applet_frame_class_init (PanelAppletFrameClass *klass)
{
GObjectClass *gobject_class = (GObjectClass *) klass;
GtkWidgetClass *widget_class = (GtkWidgetClass *) klass;
+ GtkBindingSet *binding_set;
gobject_class->finalize = panel_applet_frame_finalize;
@@ -419,6 +473,22 @@ panel_applet_frame_class_init (PanelAppletFrameClass *klass)
widget_class->size_allocate = panel_applet_frame_size_allocate;
widget_class->button_press_event = panel_applet_frame_button_changed;
widget_class->button_release_event = panel_applet_frame_button_changed;
+ widget_class->focus = panel_applet_frame_focus;
+
+ klass->move_focus_out_of_applet = panel_applet_frame_move_focus_out_of_applet;
+
+ panel_applet_frame_signals [MOVE_FOCUS_OUT_OF_APPLET] =
+ g_signal_new ("move_focus_out_of_applet",
+ G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+ G_STRUCT_OFFSET (PanelAppletFrameClass, move_focus_out_of_applet),
+ NULL, NULL, g_cclosure_marshal_VOID__ENUM,
+ G_TYPE_NONE, 1, GTK_TYPE_DIRECTION_TYPE);
+
+ binding_set = gtk_binding_set_by_class (gobject_class);
+ add_tab_bindings (binding_set, 0, GTK_DIR_TAB_FORWARD);
+ add_tab_bindings (binding_set, GDK_SHIFT_MASK, GTK_DIR_TAB_BACKWARD);
+ add_tab_bindings (binding_set, GDK_CONTROL_MASK, GTK_DIR_TAB_FORWARD);
+ add_tab_bindings (binding_set, GDK_CONTROL_MASK | GDK_SHIFT_MASK, GTK_DIR_TAB_BACKWARD);
g_type_class_add_private (klass, sizeof (PanelAppletFramePrivate));
}
diff --git a/gnome-panel/panel-applet-frame.h b/gnome-panel/panel-applet-frame.h
index 8e646f2..3af0be4 100644
--- a/gnome-panel/panel-applet-frame.h
+++ b/gnome-panel/panel-applet-frame.h
@@ -61,6 +61,9 @@ struct _PanelAppletFrameClass {
void (*change_orientation) (PanelAppletFrame *frame,
PanelOrientation orientation);
+
+ void (*move_focus_out_of_applet) (PanelAppletFrame *frame,
+ GtkDirectionType direction);
};
struct _PanelAppletFrame {
diff --git a/libpanel-applet/panel-applet.c b/libpanel-applet/panel-applet.c
index 1a6ffcb..d4ecc1e 100644
--- a/libpanel-applet/panel-applet.c
+++ b/libpanel-applet/panel-applet.c
@@ -33,7 +33,6 @@
#include <glib/gi18n-lib.h>
#include <cairo.h>
#include <cairo-gobject.h>
-#include <gdk/gdkkeysyms.h>
#include <gtk/gtk.h>
#include <gtk/gtkx.h>
#include <X11/Xatom.h>
@@ -94,14 +93,11 @@ struct _PanelAppletPrivate {
int *size_hints;
int size_hints_len;
- gboolean moving_focus_out;
-
gboolean locked_down;
};
enum {
CHANGE_ORIENT,
- MOVE_FOCUS_OUT_OF_APPLET,
LAST_SIGNAL
};
@@ -1217,19 +1213,6 @@ panel_applet_focus (GtkWidget *widget,
{
gboolean ret;
GtkWidget *previous_focus_child;
- PanelApplet *applet;
-
- g_return_val_if_fail (PANEL_IS_APPLET (widget), FALSE);
-
- applet = PANEL_APPLET (widget);
- if (applet->priv->moving_focus_out) {
- /*
- * Applet will retain focus if there is nothing else on the
- * panel to get focus
- */
- applet->priv->moving_focus_out = FALSE;
- return FALSE;
- }
previous_focus_child = gtk_container_get_focus_child (GTK_CONTAINER (widget));
if (!previous_focus_child && !gtk_widget_has_focus (widget)) {
@@ -1260,20 +1243,6 @@ panel_applet_focus (GtkWidget *widget,
}
static void
-panel_applet_move_focus_out_of_applet (PanelApplet *applet,
- GtkDirectionType dir)
-{
- GtkWidget *toplevel;
-
- applet->priv->moving_focus_out = TRUE;
- toplevel = gtk_widget_get_toplevel (GTK_WIDGET (applet));
- g_return_if_fail (toplevel);
-
- gtk_widget_child_focus (toplevel, dir);
- applet->priv->moving_focus_out = FALSE;
-}
-
-static void
panel_applet_get_property (GObject *object,
guint prop_id,
GValue *value,
@@ -1373,19 +1342,6 @@ panel_applet_set_property (GObject *object,
}
static void
-add_tab_bindings (GtkBindingSet *binding_set,
- GdkModifierType modifiers,
- GtkDirectionType direction)
-{
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_Tab, modifiers,
- "move_focus_out_of_applet", 1,
- GTK_TYPE_DIRECTION_TYPE, direction);
- gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Tab, modifiers,
- "move_focus_out_of_applet", 1,
- GTK_TYPE_DIRECTION_TYPE, direction);
-}
-
-static void
panel_applet_setup (PanelApplet *applet)
{
GValue value = {0, };
@@ -1483,15 +1439,12 @@ panel_applet_class_init (PanelAppletClass *klass)
{
GObjectClass *gobject_class = (GObjectClass *) klass;
GtkWidgetClass *widget_class = (GtkWidgetClass *) klass;
- GtkBindingSet *binding_set;
gobject_class->get_property = panel_applet_get_property;
gobject_class->set_property = panel_applet_set_property;
gobject_class->constructed = panel_applet_constructed;
gobject_class->finalize = panel_applet_finalize;
- klass->move_focus_out_of_applet = panel_applet_move_focus_out_of_applet;
-
widget_class->button_press_event = panel_applet_button_press;
widget_class->composited_changed = panel_applet_composited_changed;
widget_class->key_press_event = panel_applet_key_press_event;
@@ -1627,32 +1580,6 @@ panel_applet_class_init (PanelAppletClass *klass)
1,
G_TYPE_UINT);
- /**
- * PanelApplet::move-focus-out-of-applet: (skip)
- * @applet: the #PanelApplet which emitted the signal.
- * @direction: the move direction.
- *
- * Emitted when the focus is moved out of @applet. This is an
- * implementation detail.
- **/
- panel_applet_signals [MOVE_FOCUS_OUT_OF_APPLET] =
- g_signal_new ("move_focus_out_of_applet",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
- G_STRUCT_OFFSET (PanelAppletClass, move_focus_out_of_applet),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__ENUM,
- G_TYPE_NONE,
- 1,
- GTK_TYPE_DIRECTION_TYPE);
-
- binding_set = gtk_binding_set_by_class (gobject_class);
- add_tab_bindings (binding_set, 0, GTK_DIR_TAB_FORWARD);
- add_tab_bindings (binding_set, GDK_SHIFT_MASK, GTK_DIR_TAB_BACKWARD);
- add_tab_bindings (binding_set, GDK_CONTROL_MASK, GTK_DIR_TAB_FORWARD);
- add_tab_bindings (binding_set, GDK_CONTROL_MASK | GDK_SHIFT_MASK, GTK_DIR_TAB_BACKWARD);
-
gtk_widget_class_set_css_name (widget_class, "panel-applet");
}
diff --git a/libpanel-applet/panel-applet.h b/libpanel-applet/panel-applet.h
index 94d61cc..36fbb9f 100644
--- a/libpanel-applet/panel-applet.h
+++ b/libpanel-applet/panel-applet.h
@@ -157,8 +157,6 @@ struct _PanelAppletClass {
void (*change_orient) (PanelApplet *applet,
PanelAppletOrient orient);
- void (*move_focus_out_of_applet) (PanelApplet *frame,
- GtkDirectionType direction);
};
GType panel_applet_get_type (void) G_GNUC_CONST;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]