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
This commit is contained in:
parent
2dcdad6a58
commit
bca44f9d20
1 changed files with 7 additions and 0 deletions
|
@ -443,6 +443,7 @@ void client_manage(Window window)
|
||||||
client_apply_startup_state(self, placex, placey, placew, placeh);
|
client_apply_startup_state(self, placex, placey, placew, placeh);
|
||||||
|
|
||||||
if (activate) {
|
if (activate) {
|
||||||
|
gboolean raise = FALSE;
|
||||||
guint32 last_time = focus_client ?
|
guint32 last_time = focus_client ?
|
||||||
focus_client->user_time : CurrentTime;
|
focus_client->user_time : CurrentTime;
|
||||||
|
|
||||||
|
@ -454,6 +455,7 @@ void client_manage(Window window)
|
||||||
|
|
||||||
if (menu_frame_visible || moveresize_in_progress) {
|
if (menu_frame_visible || moveresize_in_progress) {
|
||||||
activate = FALSE;
|
activate = FALSE;
|
||||||
|
raise = TRUE;
|
||||||
ob_debug_type(OB_DEBUG_FOCUS,
|
ob_debug_type(OB_DEBUG_FOCUS,
|
||||||
"Not focusing the window because the user is inside "
|
"Not focusing the window because the user is inside "
|
||||||
"an Openbox menu or is move/resizing a window and "
|
"an Openbox menu or is move/resizing a window and "
|
||||||
|
@ -468,6 +470,7 @@ void client_manage(Window window)
|
||||||
!event_time_after(self->user_time, screen_desktop_user_time))
|
!event_time_after(self->user_time, screen_desktop_user_time))
|
||||||
{
|
{
|
||||||
activate = FALSE;
|
activate = FALSE;
|
||||||
|
raise = TRUE;
|
||||||
ob_debug_type(OB_DEBUG_FOCUS,
|
ob_debug_type(OB_DEBUG_FOCUS,
|
||||||
"Not focusing the window because its on another "
|
"Not focusing the window because its on another "
|
||||||
"desktop\n");
|
"desktop\n");
|
||||||
|
@ -512,6 +515,7 @@ void client_manage(Window window)
|
||||||
anyway */
|
anyway */
|
||||||
else if (client_focus_target(self) != self) {
|
else if (client_focus_target(self) != self) {
|
||||||
activate = FALSE;
|
activate = FALSE;
|
||||||
|
raise = TRUE;
|
||||||
ob_debug_type(OB_DEBUG_FOCUS,
|
ob_debug_type(OB_DEBUG_FOCUS,
|
||||||
"Not focusing the window because another window "
|
"Not focusing the window because another window "
|
||||||
"would get the focus anyway\n");
|
"would get the focus anyway\n");
|
||||||
|
@ -526,6 +530,9 @@ void client_manage(Window window)
|
||||||
/* if the client isn't focused, then hilite it so the user
|
/* if the client isn't focused, then hilite it so the user
|
||||||
knows it is there */
|
knows it is there */
|
||||||
client_hilite(self, TRUE);
|
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 {
|
else {
|
||||||
|
|
Loading…
Reference in a new issue