Added visibility handling to desktop routines.
Added visibility handling to desktop routines.

This makes it possible to retain the focus when it is possible, and only
drop the focus when the currently focused window is not visible.

8l/swm,8l/swm,8l/SmallWM,8l/SmallWM