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
1 files changed,
7 insertions(+),
0 deletions(-)
jump to
M
openbox/client.c
→
openbox/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 {