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 <no...@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. _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits