[Xfce4-commits] [apps/xfdashboard] 01/01: Fix trying not to eat up CPU ... again!
noreply at xfce.org
noreply at xfce.org
Fri May 8 21:43:28 CEST 2015
This is an automated email from the git hooks/post-receive script.
nomad pushed a commit to branch master
in repository apps/xfdashboard.
commit dd9039ad352df3e2d77b0550d5e2577b1287871d
Author: Stephan Haller <nomad at froevel.de>
Date: Fri May 8 21:42:32 2015 +0200
Fix trying not to eat up CPU ... again!
Do not connect a new signal handler for 'geometry-changed' for each window when application resume but unblock existing signal handler.
---
xfdashboard/window-tracker.c | 16 +++++++---------
1 file changed, 7 insertions(+), 9 deletions(-)
diff --git a/xfdashboard/window-tracker.c b/xfdashboard/window-tracker.c
index 0232df0..281b662 100644
--- a/xfdashboard/window-tracker.c
+++ b/xfdashboard/window-tracker.c
@@ -391,11 +391,12 @@ static void _xfdashboard_window_tracker_on_window_opened(XfdashboardWindowTracke
g_signal_connect_swapped(inWindow, "icon-changed", G_CALLBACK(_xfdashboard_window_tracker_on_window_icon_changed), self);
g_signal_connect_swapped(inWindow, "name-changed", G_CALLBACK(_xfdashboard_window_tracker_on_window_name_changed), self);
g_signal_connect_swapped(inWindow, "workspace-changed", G_CALLBACK(_xfdashboard_window_tracker_on_window_workspace_changed), self);
+ g_signal_connect_swapped(inWindow, "geometry-changed", G_CALLBACK(_xfdashboard_window_tracker_on_window_geometry_changed), self);
- /* Connect to 'geometry-changed' at window only if application is not suspended */
- if(!priv->isAppSuspended)
+ /* Block signal handler for 'geometry-changed' at window if application is suspended */
+ if(priv->isAppSuspended)
{
- g_signal_connect_swapped(inWindow, "geometry-changed", G_CALLBACK(_xfdashboard_window_tracker_on_window_geometry_changed), self);
+ g_signal_handlers_block_by_func(inWindow, _xfdashboard_window_tracker_on_window_geometry_changed, self);
}
/* Emit signal */
@@ -757,17 +758,14 @@ static void _xfdashboard_window_tracker_on_application_suspended_changed(Xfdashb
{
g_signal_handlers_block_by_func(window, _xfdashboard_window_tracker_on_window_geometry_changed, self);
}
- /* ... otherwise if application was resumed connect signals handlers
+ /* ... otherwise if application was resumed reconnect signals handlers
* and emit 'geometry-changed' signal to reflect latest changes of
* position and size of window.
*/
else
{
- /* Connect signal handler */
- g_signal_connect_swapped(window,
- "geometry-changed",
- G_CALLBACK(_xfdashboard_window_tracker_on_window_geometry_changed),
- self);
+ /* Reconnect signal handler */
+ g_signal_handlers_unblock_by_func(window, _xfdashboard_window_tracker_on_window_geometry_changed, self);
/* Call signal handler to reflect latest changes */
_xfdashboard_window_tracker_on_window_geometry_changed(self, window);
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list