some smarter rules for focusing new window when focus_new is not set
Dana Jansens danakj@orodu.net
1 files changed,
19 insertions(+),
2 deletions(-)
jump to
M
openbox/client.c
→
openbox/client.c
@@ -238,8 +238,25 @@ client_showhide(self);
dispatch_client(Event_Client_Mapped, self, 0, 0); - if (ob_state != State_Starting && config_focus_new) - client_focus(self); + /* focus the new window? */ + if (ob_state != State_Starting) { + if (config_focus_new) + client_focus(self); + else if (self->transient_for) { + if (self->transient_for != TRAN_GROUP) {/* transient of a window */ + if (focus_client == self->transient_for) + client_focus(self); + } else { /* transient of a group */ + GSList *it; + + for (it = self->group->members; it; it = it->next) + if (focus_client == it->data) { + client_focus(self); + break; + } + } + } + } /* update the list hints */ client_set_list();