- if (!(self->desktop == screen_desktop ||
- self->desktop == DESKTOP_ALL) &&
- (!allow_other_desktop ||
- (request_from_user && screen_desktop_user_time &&
- !event_time_after(launch_time, screen_desktop_user_time))))
- {
- steal = FALSE;
- ob_debug("Not focusing the window because its on another desktop\n");
+ if (!screen_compare_desktops(screen_desktop, self->desktop)) {
+ /* must be allowed */
+ if (!allow_other_desktop) {
+ steal = FALSE;
+ ob_debug("Not focusing the window because its on another desktop");
+ }
+ /* if we don't know when the desktop changed, but request is from an
+ application, don't let it change desktop on you */
+ else if (!request_from_user) {
+ steal = FALSE;
+ ob_debug("Not focusing the window because non-user request");
+ }