[Xfce4-commits] [xfce/xfce4-panel] 18/24: Fix panel to wrapper signals

noreply at xfce.org noreply at xfce.org
Tue Jul 4 00:03:49 CEST 2017


This is an automated email from the git hooks/post-receive script.

o   c   h   o   s   i       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 xfce/xfce4-panel.

commit 9b75cf62e44674808d1dbeff65cd745707519b77
Author: Ali Abdallah <ali at xfce.org>
Date:   Wed Jun 28 20:41:47 2017 +0200

    Fix panel to wrapper signals
    
    By mistake signals emitted by the panel were bound to the panel name itself,
    thus not reaching the plugin wrappers.
    
    Also fix signal gvariant signatures.
---
 panel/panel-plugin-external-wrapper.c | 17 +++++++++++++++--
 wrapper/main.c                        |  2 +-
 2 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/panel/panel-plugin-external-wrapper.c b/panel/panel-plugin-external-wrapper.c
index 6ef6a2e..6dea564 100644
--- a/panel/panel-plugin-external-wrapper.c
+++ b/panel/panel-plugin-external-wrapper.c
@@ -322,7 +322,7 @@ panel_plugin_external_wrapper_set_properties (PanelPluginExternal *external,
 
   /* send array to the wrapper */
   g_dbus_connection_emit_signal (wrapper->connection,
-                                 "org.xfce.Panel",
+                                 NULL,
                                  g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (wrapper->skeleton)),
                                  "org.xfce.Panel.Wrapper",
                                  "Set",
@@ -339,6 +339,7 @@ panel_plugin_external_wrapper_remote_event (PanelPluginExternal *external,
                                             guint               *handle)
 {
   PanelPluginExternalWrapper  *wrapper;
+  GVariant                    *variant;
   static guint                 handle_counter = 0;
 
   panel_return_val_if_fail (PANEL_IS_PLUGIN_EXTERNAL_WRAPPER (external), TRUE);
@@ -351,13 +352,25 @@ panel_plugin_external_wrapper_remote_event (PanelPluginExternal *external,
     handle_counter = 0;
   *handle = ++handle_counter;
 
+  if (value == NULL)
+    variant = g_variant_new_byte ('\0');
+  else
+    variant = panel_plugin_external_wrapper_gvalue_prop_to_gvariant (value);
+
+  if (G_UNLIKELY (variant == NULL))
+    {
+      g_warning ("Failed to convert gvalue to gvariant for remote event signal");
+      variant = g_variant_new_byte ('\0');
+    }
+
   g_dbus_connection_emit_signal (wrapper->connection,
-                                 "org.xfce.Panel",
+                                 NULL,
                                  g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (wrapper->skeleton)),
                                  "org.xfce.Panel.Wrapper",
                                  "RemoteEvent",
                                  g_variant_new ("(svu)",
                                                 name,
+                                                g_variant_new_variant (variant),
                                                 g_variant_new_byte('\0'),
                                                 *handle),
                                  NULL);
diff --git a/wrapper/main.c b/wrapper/main.c
index d9531e4..1e403d2 100644
--- a/wrapper/main.c
+++ b/wrapper/main.c
@@ -63,7 +63,7 @@ wrapper_gproxy_set (XfcePanelPluginProvider *provider,
   XfcePanelPluginProviderPropType type;
 
   panel_return_if_fail (XFCE_IS_PANEL_PLUGIN_PROVIDER (provider));
-  panel_return_if_fail (g_variant_is_of_type (parameters, G_VARIANT_TYPE ("a(uv)")));
+  panel_return_if_fail (g_variant_is_of_type (parameters, G_VARIANT_TYPE_TUPLE));
 
   g_variant_iter_init (&iter, parameters);
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list