[Xfce4-commits] <xfce4-panel:devel> Don't crash if skip-tasklist state changes.
Nick Schermer
noreply at xfce.org
Tue Feb 16 12:14:02 CET 2010
Updating branch refs/heads/devel
to 33950b35eca1a5b06273c790e75612b7289f9a21 (commit)
from 2e277479f420f2e9c4177c19dc5682dfdc8c58a6 (commit)
commit 33950b35eca1a5b06273c790e75612b7289f9a21
Author: Nick Schermer <nick at xfce.org>
Date: Tue Feb 16 12:11:44 2010 +0100
Don't crash if skip-tasklist state changes.
We destroy the child, so avoid using invalid memory and
hold the pointer to the tasklist.
plugins/tasklist/tasklist-widget.c | 12 +++++++++---
1 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/plugins/tasklist/tasklist-widget.c b/plugins/tasklist/tasklist-widget.c
index 88782d4..ce82364 100644
--- a/plugins/tasklist/tasklist-widget.c
+++ b/plugins/tasklist/tasklist-widget.c
@@ -1768,8 +1768,9 @@ xfce_tasklist_button_state_changed (WnckWindow *window,
WnckWindowState new_state,
XfceTasklistChild *child)
{
- gboolean blink;
- WnckScreen *screen;
+ gboolean blink;
+ WnckScreen *screen;
+ XfceTasklist *tasklist;
panel_return_if_fail (WNCK_IS_WINDOW (window));
panel_return_if_fail (child->window == window);
@@ -1779,8 +1780,13 @@ xfce_tasklist_button_state_changed (WnckWindow *window,
if (PANEL_HAS_FLAG (changed_state, WNCK_WINDOW_STATE_SKIP_TASKLIST))
{
screen = wnck_window_get_screen (window);
+ tasklist = child->tasklist;
+
+ /* remove button from tasklist */
xfce_tasklist_window_removed (screen, window, child->tasklist);
- xfce_tasklist_window_added (screen, window, child->tasklist);
+
+ /* add the window to the skipped_windows list */
+ xfce_tasklist_window_added (screen, window, tasklist);
return;
}
More information about the Xfce4-commits
mailing list