if (!activate) {
/* if the client isn't stealing focus, then hilite it so the user
- knows it is there */
- /* XXX don't do this if we're restoring from a session */
- client_hilite(self, TRUE);
+ knows it is there, but don't do this if we're restoring from a
+ session */
+ if (!client_restore_session_stacking(self))
+ client_hilite(self, TRUE);
}
}
else {
}
/* this function exists to map to the net_active_window message in the ewmh */
-void client_activate(ObClient *self, gboolean here, gboolean raise,
+void client_activate(ObClient *self, gboolean desktop, gboolean raise,
gboolean unshade, gboolean user)
{
- if ((user && (self->desktop == DESKTOP_ALL ||
+ if ((user && (desktop ||
+ self->desktop == DESKTOP_ALL ||
self->desktop == screen_desktop)) ||
client_can_steal_focus(self, event_curtime, CurrentTime))
{
- client_present(self, here, raise, unshade);
+ client_present(self, FALSE, raise, unshade);
}
else
client_hilite(self, TRUE);