diff options
author | markt <markt> | 2007-08-20 14:31:43 (GMT) |
---|---|---|
committer | markt <markt> | 2007-08-20 14:31:43 (GMT) |
commit | 270782c8a57cd16658d4891ab2cc310bc9ad1aad (patch) | |
tree | f9be33207ad0bd3258485917c66752494a947b61 /src/FocusControl.cc | |
parent | 6f2c707eef68d212ccb5b6b82da337dff2ac956e (diff) | |
download | fluxbox-270782c8a57cd16658d4891ab2cc310bc9ad1aad.zip fluxbox-270782c8a57cd16658d4891ab2cc310bc9ad1aad.tar.bz2 |
fix problems with focus order when changing workspaces
Diffstat (limited to 'src/FocusControl.cc')
-rw-r--r-- | src/FocusControl.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/FocusControl.cc b/src/FocusControl.cc index 7b2fecd..d4cb410 100644 --- a/src/FocusControl.cc +++ b/src/FocusControl.cc | |||
@@ -421,11 +421,13 @@ void FocusControl::revertFocus(BScreen &screen) { | |||
421 | if (s_reverting) | 421 | if (s_reverting) |
422 | return; | 422 | return; |
423 | 423 | ||
424 | FocusControl::s_reverting = true; | ||
425 | |||
426 | WinClient *next_focus = | 424 | WinClient *next_focus = |
427 | screen.focusControl().lastFocusedWindow(screen.currentWorkspaceID()); | 425 | screen.focusControl().lastFocusedWindow(screen.currentWorkspaceID()); |
428 | 426 | ||
427 | if (next_focus && next_focus->fbwindow() && | ||
428 | next_focus->fbwindow()->isStuck()) | ||
429 | FocusControl::s_reverting = true; | ||
430 | |||
429 | // if setting focus fails, or isn't possible, fallback correctly | 431 | // if setting focus fails, or isn't possible, fallback correctly |
430 | if (!(next_focus && next_focus->focus())) { | 432 | if (!(next_focus && next_focus->focus())) { |
431 | setFocusedWindow(0); // so we don't get dangling m_focused_window pointer | 433 | setFocusedWindow(0); // so we don't get dangling m_focused_window pointer |