all repos — openbox @ bca44f9d204500c4caf220141a638e0340915be6

openbox fork - make it a bit more like ryudo

raise new windows when they aren't getting activated in a couple cases

1. when we're not activating it because the user has a menu open or is moving/resizing a window
2. when we're not activating it because it's opening on another desktop
Dana Jansens danakj@orodu.net
commit

bca44f9d204500c4caf220141a638e0340915be6

parent

2dcdad6a58bd01d0e94c6ff7ff1916bdde9c5c55

1 files changed, 7 insertions(+), 0 deletions(-)

jump to
M openbox/client.copenbox/client.c

@@ -443,6 +443,7 @@ */

client_apply_startup_state(self, placex, placey, placew, placeh); if (activate) { + gboolean raise = FALSE; guint32 last_time = focus_client ? focus_client->user_time : CurrentTime;

@@ -454,6 +455,7 @@ self->window, self->user_time, last_time);

if (menu_frame_visible || moveresize_in_progress) { activate = FALSE; + raise = TRUE; ob_debug_type(OB_DEBUG_FOCUS, "Not focusing the window because the user is inside " "an Openbox menu or is move/resizing a window and "

@@ -468,6 +470,7 @@ self->user_time && screen_desktop_user_time &&

!event_time_after(self->user_time, screen_desktop_user_time)) { activate = FALSE; + raise = TRUE; ob_debug_type(OB_DEBUG_FOCUS, "Not focusing the window because its on another " "desktop\n");

@@ -512,6 +515,7 @@ /* Don't move focus if it's not going to go to this window

anyway */ else if (client_focus_target(self) != self) { activate = FALSE; + raise = TRUE; ob_debug_type(OB_DEBUG_FOCUS, "Not focusing the window because another window " "would get the focus anyway\n");

@@ -526,6 +530,9 @@ self->title, self->user_time, last_time);

/* if the client isn't focused, then hilite it so the user knows it is there */ client_hilite(self, TRUE); + /* we may want to raise it even tho we're not activating it */ + if (raise && !client_restore_session_stacking(self)) + stacking_raise(CLIENT_AS_WINDOW(self)); } } else {