Updating branch refs/heads/devel
to 33950b35eca1a5b06273c790e75612b7289f9a21 (commit)
from 2e277479f420f2e9c4177c19dc5682dfdc8c58a6 (commit)
commit 33950b35eca1a5b06273c790e75612b7289f9a21
Author: Nick Schermer <[email protected]>
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;
}
_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits