[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