--- ./src/xfdesktop-window-icon-manager.c +++ ./src/xfdesktop-window-icon-manager.c @@ -600,7 +600,14 @@ g_object_weak_ref(G_OBJECT(window), window_destroyed_cb, wmanager); } - workspace_changed_cb(wmanager->priv->wnck_screen, NULL, wmanager); + /* as of libwnck 2.20, the "active-workspace-changed" signal has + * a new prototype with an extra argument. previous versions don't + * have this argument, so we fudge this here (bug 4395). */ + /* we must of course also emulate this behaviour here (stupid bug). */ + if(G_LIKELY(__wnck_has_new_active_workspace_changed_signal)) + workspace_changed_cb(wmanager->priv->wnck_screen, NULL, wmanager); + else + workspace_changed_cb(wmanager->priv->wnck_screen, wmanager, NULL); wmanager->priv->inited = TRUE;