[Xfce4-commits] [panel-plugins/xfce4-xkb-plugin] 06/06: Move group policy management to XkbKeyboard
noreply at xfce.org
noreply at xfce.org
Thu Jun 22 09:54:44 CEST 2017
This is an automated email from the git hooks/post-receive script.
n i n e t l s p u s h e d a c o m m i t t o b r a n c h m a s t e r
in repository panel-plugins/xfce4-xkb-plugin.
commit 187e5a994300166f3db9ee20de052ae237f59a04
Author: Viktor Odintsev <zakhams at gmail.com>
Date: Thu Jun 22 10:50:21 2017 +0300
Move group policy management to XkbKeyboard
---
panel-plugin/xkb-keyboard.c | 31 ++++++++++++++++++++++---------
panel-plugin/xkb-keyboard.h | 7 ++++---
panel-plugin/xkb-plugin.c | 16 +---------------
3 files changed, 27 insertions(+), 27 deletions(-)
diff --git a/panel-plugin/xkb-keyboard.c b/panel-plugin/xkb-keyboard.c
index 26f2338..127ef2b 100644
--- a/panel-plugin/xkb-keyboard.c
+++ b/panel-plugin/xkb-keyboard.c
@@ -55,6 +55,7 @@ struct _XkbKeyboard
XklEngine *engine;
XklConfigRec *last_config_rec;
+ XkbXfconf *config;
WnckScreen *wnck_screen;
guint config_timeout_id;
@@ -77,6 +78,8 @@ struct _XkbKeyboard
gulong window_closed_handler_id;
};
+static void xkb_keyboard_group_policy_changed (XkbKeyboard *keyboard);
+
static void xkb_keyboard_active_window_changed (WnckScreen *screen,
WnckWindow *previously_active_window,
XkbKeyboard *keyboard);
@@ -143,6 +146,9 @@ xkb_keyboard_init (XkbKeyboard *keyboard)
keyboard->engine = NULL;
keyboard->last_config_rec = NULL;
+ keyboard->config = NULL;
+ keyboard->wnck_screen = NULL;
+
keyboard->config_timeout_id = 0;
keyboard->group_data = NULL;
@@ -165,18 +171,26 @@ xkb_keyboard_init (XkbKeyboard *keyboard)
XkbKeyboard *
-xkb_keyboard_new (XkbGroupPolicy group_policy)
+xkb_keyboard_new (XkbXfconf *config)
{
XkbKeyboard *keyboard;
keyboard = g_object_new (TYPE_XKB_KEYBOARD, NULL);
- keyboard->group_policy = group_policy;
+ keyboard->group_policy = xkb_xfconf_get_group_policy (config);
- keyboard->engine = xkl_engine_get_instance (gdk_x11_get_default_xdisplay ());
+ g_signal_connect_swapped (G_OBJECT (config),
+ "notify::" GROUP_POLICY,
+ G_CALLBACK (xkb_keyboard_group_policy_changed),
+ keyboard);
+
+ g_object_ref (config);
+ keyboard->config = config;
keyboard->wnck_screen = wnck_screen_get_default ();
+ keyboard->engine = xkl_engine_get_instance (gdk_x11_get_default_xdisplay ());
+
if (keyboard->engine)
{
xkb_keyboard_update_from_xkl (keyboard);
@@ -443,6 +457,8 @@ xkb_keyboard_finalize (GObject *object)
if (keyboard->window_closed_handler_id > 0)
g_signal_handler_disconnect (keyboard->wnck_screen, keyboard->window_closed_handler_id);
+ g_object_unref (keyboard->config);
+
G_OBJECT_CLASS (xkb_keyboard_parent_class)->finalize (object);
}
@@ -495,13 +511,10 @@ xkb_keyboard_prev_group (XkbKeyboard *keyboard)
-void
-xkb_keyboard_set_group_policy (XkbKeyboard *keyboard,
- XkbGroupPolicy group_policy)
+static void
+xkb_keyboard_group_policy_changed (XkbKeyboard *keyboard)
{
- g_return_if_fail (IS_XKB_KEYBOARD (keyboard));
-
- keyboard->group_policy = group_policy;
+ keyboard->group_policy = xkb_xfconf_get_group_policy (keyboard->config);
}
diff --git a/panel-plugin/xkb-keyboard.h b/panel-plugin/xkb-keyboard.h
index 3b960f7..8fd2f59 100644
--- a/panel-plugin/xkb-keyboard.h
+++ b/panel-plugin/xkb-keyboard.h
@@ -28,6 +28,7 @@
#include <gdk/gdk.h>
+#include "xkb-xfconf.h"
#include "xkb-properties.h"
G_BEGIN_DECLS
@@ -44,11 +45,10 @@ typedef struct _XkbKeyboard XkbKeyboard;
GType xkb_keyboard_get_type (void) G_GNUC_CONST;
-XkbKeyboard *xkb_keyboard_new (XkbGroupPolicy group_policy);
+XkbKeyboard *xkb_keyboard_new (XkbXfconf *config);
gboolean xkb_keyboard_get_initialized (XkbKeyboard *keyboard);
-void xkb_keyboard_set_group_policy (XkbKeyboard *keyboard,
- XkbGroupPolicy group_policy);
+
gint xkb_keyboard_get_group_count (XkbKeyboard *keyboard);
guint xkb_keyboard_get_max_group_count (XkbKeyboard *keyboard);
const gchar* xkb_keyboard_get_group_name (XkbKeyboard *keyboard,
@@ -57,6 +57,7 @@ const gchar* xkb_keyboard_get_group_name (XkbKeyboard *ke
gint xkb_keyboard_get_variant_index (XkbKeyboard *keyboard,
XkbDisplayName display_name,
gint group);
+
gboolean xkb_keyboard_set_group (XkbKeyboard *keyboard,
gint group);
gboolean xkb_keyboard_next_group (XkbKeyboard *keyboard);
diff --git a/panel-plugin/xkb-plugin.c b/panel-plugin/xkb-plugin.c
index ccf3e3e..d0f3368 100644
--- a/panel-plugin/xkb-plugin.c
+++ b/panel-plugin/xkb-plugin.c
@@ -122,7 +122,6 @@ static gboolean xkb_plugin_layout_image_draw (GtkWidget *widge
static void xkb_plugin_display_type_changed (XkbPlugin *plugin);
static void xkb_plugin_display_name_changed (XkbPlugin *plugin);
static void xkb_plugin_display_scale_changed (XkbPlugin *plugin);
-static void xkb_plugin_group_policy_changed (XkbPlugin *plugin);
/* ================================================================== *
* Implementation *
@@ -186,10 +185,6 @@ xkb_plugin_construct (XfcePanelPlugin *plugin)
"notify::" DISPLAY_SCALE,
G_CALLBACK (xkb_plugin_display_scale_changed),
xkb_plugin);
- g_signal_connect_swapped (G_OBJECT (xkb_plugin->config),
- "notify::" GROUP_POLICY,
- G_CALLBACK (xkb_plugin_group_policy_changed),
- xkb_plugin);
xkb_plugin->button = gtk_button_new ();
gtk_button_set_relief (GTK_BUTTON (xkb_plugin->button), GTK_RELIEF_NONE);
@@ -232,7 +227,7 @@ xkb_plugin_construct (XfcePanelPlugin *plugin)
xkb_plugin);
gtk_widget_show (GTK_WIDGET (xkb_plugin->layout_image));
- xkb_plugin->keyboard = xkb_keyboard_new (xkb_xfconf_get_group_policy (xkb_plugin->config));
+ xkb_plugin->keyboard = xkb_keyboard_new (xkb_plugin->config);
g_signal_connect_swapped (G_OBJECT (xkb_plugin->keyboard),
"state-changed",
@@ -733,12 +728,3 @@ xkb_plugin_display_scale_changed (XkbPlugin *plugin)
{
xkb_plugin_refresh_gui (plugin);
}
-
-
-
-static void
-xkb_plugin_group_policy_changed (XkbPlugin *plugin)
-{
- xkb_keyboard_set_group_policy (plugin->keyboard,
- xkb_xfconf_get_group_policy (plugin->config));
-}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list