[Xfce4-commits] [apps/xfdashboard] 11/19: Fix applying correct user-data when connecting signals to stage window in X11 window tracker backend.

noreply at xfce.org noreply at xfce.org
Fri Jun 16 10:56:42 CEST 2017


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

n   o   m   a   d       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 apps/xfdashboard.

commit f581aab0e790a6c89002200699aa4369bac04497
Author: Stephan Haller <nomad at froevel.de>
Date:   Tue Jun 13 17:24:50 2017 +0200

    Fix applying correct user-data when connecting signals to stage window in X11 window tracker backend.
    
    Fix for issue GH #129
---
 libxfdashboard/x11/window-tracker-backend-x11.c | 59 +++++++++++++------------
 1 file changed, 31 insertions(+), 28 deletions(-)

diff --git a/libxfdashboard/x11/window-tracker-backend-x11.c b/libxfdashboard/x11/window-tracker-backend-x11.c
index 77baba3..6843c88 100644
--- a/libxfdashboard/x11/window-tracker-backend-x11.c
+++ b/libxfdashboard/x11/window-tracker-backend-x11.c
@@ -522,40 +522,42 @@ static void _xfdashboard_window_tracker_backend_x11_window_tracker_backend_show_
 	/* Connect signals if not already connected */
 	signalID=g_signal_lookup("state-changed", WNCK_TYPE_WINDOW);
 	handlerID=g_signal_handler_find(stageWnckWindow,
-									G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC,
+									G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA,
 									signalID,
 									0,
 									NULL,
 									G_CALLBACK(_xfdashboard_window_tracker_backend_x11_on_stage_state_changed),
-									NULL);
+									stageWindow);
 	if(!handlerID)
 	{
-		g_signal_connect(stageWnckWindow,
-							"state-changed",
-							G_CALLBACK(_xfdashboard_window_tracker_backend_x11_on_stage_state_changed),
-							stageWindow);
+		handlerID=g_signal_connect(stageWnckWindow,
+									"state-changed",
+									G_CALLBACK(_xfdashboard_window_tracker_backend_x11_on_stage_state_changed),
+									stageWindow);
 		XFDASHBOARD_DEBUG(self, WINDOWS,
-							"Connecting signal to 'state-changed' at window %p (wnck-window=%p)",
+							"Connecting signal handler %lu to 'state-changed' at window %p (wnck-window=%p)",
+							handlerID,
 							stageWindow,
 							stageWnckWindow);
 	}
 
 	signalID=g_signal_lookup("active-window-changed", WNCK_TYPE_SCREEN);
 	handlerID=g_signal_handler_find(screen,
-									G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC,
+									G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA,
 									signalID,
 									0,
 									NULL,
 									G_CALLBACK(_xfdashboard_window_tracker_backend_x11_on_stage_active_window_changed),
-									NULL);
+									stageWindow);
 	if(!handlerID)
 	{
-		g_signal_connect(screen,
-							"active-window-changed",
-							G_CALLBACK(_xfdashboard_window_tracker_backend_x11_on_stage_active_window_changed),
-							self);
+		handlerID=g_signal_connect(screen,
+									"active-window-changed",
+									G_CALLBACK(_xfdashboard_window_tracker_backend_x11_on_stage_active_window_changed),
+									stageWindow);
 		XFDASHBOARD_DEBUG(self, WINDOWS,
-							"Connecting signal to 'active-window-changed' at screen %p of window %p (wnck-window=%p)",
+							"Connecting signal handler %lu to 'active-window-changed' at screen %p of window %p (wnck-window=%p)",
+							handlerID,
 							screen,
 							stageWindow,
 							stageWnckWindow);
@@ -563,20 +565,21 @@ static void _xfdashboard_window_tracker_backend_x11_window_tracker_backend_show_
 
 	signalID=g_signal_lookup("screen-size-changed", XFDASHBOARD_TYPE_WINDOW_TRACKER);
 	handlerID=g_signal_handler_find(priv->windowTracker,
-									G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC,
+									G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA,
 									signalID,
 									0,
 									NULL,
 									G_CALLBACK(_xfdashboard_window_tracker_backend_x11_on_stage_screen_size_changed),
-									NULL);
+									stageWindow);
 	if(!handlerID)
 	{
-		g_signal_connect(priv->windowTracker,
-							"screen-size-changed",
-							G_CALLBACK(_xfdashboard_window_tracker_backend_x11_on_stage_screen_size_changed),
-							self);
+		handlerID=g_signal_connect(priv->windowTracker,
+									"screen-size-changed",
+									G_CALLBACK(_xfdashboard_window_tracker_backend_x11_on_stage_screen_size_changed),
+									stageWindow);
 		XFDASHBOARD_DEBUG(self, WINDOWS,
-							"Connecting signal to 'screen-size-changed' at window %p (wnck-window=%p)",
+							"Connecting signal handler %lu to 'screen-size-changed' at window %p (wnck-window=%p)",
+							handlerID,
 							stageWindow,
 							stageWnckWindow);
 	}
@@ -584,7 +587,7 @@ static void _xfdashboard_window_tracker_backend_x11_window_tracker_backend_show_
 	_xfdashboard_window_tracker_backend_x11_on_stage_screen_size_changed(XFDASHBOARD_WINDOW_TRACKER(priv->windowTracker),
 																			width,
 																			height,
-																			self);
+																			inStageWindow);
 
 	/* Now the window is set up and we can show it */
 	xfdashboard_window_tracker_window_show(inStageWindow);
@@ -626,12 +629,12 @@ static void _xfdashboard_window_tracker_backend_x11_window_tracker_backend_hide_
 	/* Disconnect signals */
 	signalID=g_signal_lookup("state-changed", WNCK_TYPE_WINDOW);
 	handlerID=g_signal_handler_find(stageWnckWindow,
-									G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC,
+									G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA,
 									signalID,
 									0,
 									NULL,
 									G_CALLBACK(_xfdashboard_window_tracker_backend_x11_on_stage_state_changed),
-									NULL);
+									stageWindow);
 	if(handlerID)
 	{
 		g_signal_handler_disconnect(stageWnckWindow, handlerID);
@@ -644,12 +647,12 @@ static void _xfdashboard_window_tracker_backend_x11_window_tracker_backend_hide_
 
 	signalID=g_signal_lookup("active-window-changed", WNCK_TYPE_SCREEN);
 	handlerID=g_signal_handler_find(screen,
-									G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC,
+									G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA,
 									signalID,
 									0,
 									NULL,
 									G_CALLBACK(_xfdashboard_window_tracker_backend_x11_on_stage_active_window_changed),
-									NULL);
+									stageWindow);
 	if(handlerID)
 	{
 		g_signal_handler_disconnect(screen, handlerID);
@@ -663,12 +666,12 @@ static void _xfdashboard_window_tracker_backend_x11_window_tracker_backend_hide_
 
 	signalID=g_signal_lookup("screen-size-changed", XFDASHBOARD_TYPE_WINDOW_TRACKER);
 	handlerID=g_signal_handler_find(priv->windowTracker,
-									G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC,
+									G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA,
 									signalID,
 									0,
 									NULL,
 									G_CALLBACK(_xfdashboard_window_tracker_backend_x11_on_stage_screen_size_changed),
-									NULL);
+									stageWindow);
 	if(handlerID)
 	{
 		g_signal_handler_disconnect(priv->windowTracker, handlerID);

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


More information about the Xfce4-commits mailing list