Currently wnck-applet gets woken up for every keypress when workspace-switcher is running. This means we're taking 6 context switches per keypress, and (at least) 3 tasks are being woken up. That's bad.
The problem here is that a) libwnck listens for property changes on all toplevel windows, to catch icon changes, name changes, etc b) GTK+ updates _NET_WM_USER_TIME property for every user interaction for focus stealing stuff
about the only fix I can see would be to add an indirection to the user time property, by not storing it on the toplevel, but on a separate, dedicated window, and only put the id of that window in a property on the toplevel.
This also affects metacity, btw
...and Owen pointed this problem out back in May 2003: http://mail.gnome.org/archives/wm-spec-list/2003-May/msg00047.html
I proposed an EWMH change to fix this issue: http://mail.gnome.org/archives/wm-spec-list/2006-September/msg00000.html
To fix this we need to add a patch to metacity to support the new spec. This will cause gtk+ to put the updates on a separate window, which libwnck then won't listen to. Moving to metacity and putting on f7 target.
The EWMH addition is in the spec now, the metacity/gtk+ patches are being developed here: http://bugzilla.gnome.org/show_bug.cgi?id=354213
No need to keep this bug open; the gtk and metacity changes have been committed upstream and will find its way into F8 with gnome 2.20