diff options
author | Mark Tiefenbruck <mark@fluxbox.org> | 2008-08-23 13:34:06 (GMT) |
---|---|---|
committer | Mark Tiefenbruck <mark@fluxbox.org> | 2008-08-23 13:34:06 (GMT) |
commit | 10f769f7fc1766a647a063f4204d7c5b0b0e45ba (patch) | |
tree | 61982ee470d2c4f2c4277eb173f99c3e65251f07 /src/FocusControl.cc | |
parent | 6875a611dca24054ef4a116a51bd70eb98bcf0b8 (diff) | |
download | fluxbox_lack-10f769f7fc1766a647a063f4204d7c5b0b0e45ba.zip fluxbox_lack-10f769f7fc1766a647a063f4204d7c5b0b0e45ba.tar.bz2 |
when a transient dies, revert focus to its parent
Diffstat (limited to 'src/FocusControl.cc')
-rw-r--r-- | src/FocusControl.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/FocusControl.cc b/src/FocusControl.cc index cdc46cf..60615a4 100644 --- a/src/FocusControl.cc +++ b/src/FocusControl.cc | |||
@@ -505,13 +505,13 @@ void FocusControl::unfocusWindow(WinClient &client, | |||
505 | 505 | ||
506 | BScreen &screen = fbwin->screen(); | 506 | BScreen &screen = fbwin->screen(); |
507 | 507 | ||
508 | if (client.isTransient() && client.transientFor()->focus()) | ||
509 | return; | ||
510 | |||
508 | if (!unfocus_frame) { | 511 | if (!unfocus_frame) { |
509 | WinClient *last_focus = screen.focusControl().lastFocusedWindow(*fbwin, &client); | 512 | WinClient *last_focus = screen.focusControl().lastFocusedWindow(*fbwin, &client); |
510 | if (last_focus != 0 && | 513 | if (last_focus && last_focus->focus()) |
511 | fbwin->setCurrentClient(*last_focus, | ||
512 | s_focused_window == &client)) { | ||
513 | return; | 514 | return; |
514 | } | ||
515 | } | 515 | } |
516 | 516 | ||
517 | if (full_revert && s_focused_window == &client) | 517 | if (full_revert && s_focused_window == &client) |