summaryrefslogtreecommitdiff
path: root/openbox/client.c
diff options
context:
space:
mode:
Diffstat (limited to 'openbox/client.c')
-rw-r--r--openbox/client.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/openbox/client.c b/openbox/client.c
index 8098b3dc..2ca9b518 100644
--- a/openbox/client.c
+++ b/openbox/client.c
@@ -385,10 +385,18 @@ void client_manage(Window window)
ob_debug("Want to focus new window 0x%x with time %u (last time %u)\n",
self->window, self->user_time, last_time);
+ /* if it's on another desktop */
+ if (!(self->desktop == screen_desktop || self->desktop == DESKTOP_ALL)
+ && /* the timestamp is from before you changed desktops */
+ self->user_time && screen_desktop_user_time &&
+ !event_time_after(self->user_time, screen_desktop_user_time))
+ {
+ activate = FALSE;
+ }
/* If nothing is focused, or a parent was focused, then focus this
always
*/
- if (!focus_client || client_search_focus_parent(self) != NULL)
+ else if (!focus_client || client_search_focus_parent(self) != NULL)
activate = TRUE;
else
{