If a window that is iconified attempts to "show itself" (eg, through invocation of "purple-send-async PurpleBlistSetVisible int32:1" to de-iconify Pidgin), this causes a NET_ACTIVE_WINDOW message to be generated.
PekWM currently does a workspace change "if needed" before raising and giving input focus to the window. However, there is no need to switch the workspace if the window is in sticky state!
Fix: In function Frame::handleClientMessage (Frame.cc:~2101) add the isSticky() check:
// If we aren't mapped we check if we make sure we're on the right // workspace and then map the window. if (! _mapped) { if (_workspace != Workspaces::instance()->getActive() && !isSticky()) { Workspaces::instance()->setWorkspace(_workspace, false); } mapWindow(); }
Strange, I meant the comment from #252 to appear here. Well, anyway, good catch and thanks. :-)