[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