diff options
author | markt <markt> | 2006-06-28 19:17:38 (GMT) |
---|---|---|
committer | markt <markt> | 2006-06-28 19:17:38 (GMT) |
commit | 6f2a566206faa0e6e8eff34f96888f6910644f56 (patch) | |
tree | 4e71fe5642b60d3f0934dbc6c6cf2bfd73355fc1 | |
parent | c5c316e09b27cda8b4b9a2d9a78d458402585a1b (diff) | |
download | fluxbox-6f2a566206faa0e6e8eff34f96888f6910644f56.zip fluxbox-6f2a566206faa0e6e8eff34f96888f6910644f56.tar.bz2 |
more focus issues with linear cycling and tabbed windows
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | src/FocusControl.cc | 4 | ||||
-rw-r--r-- | src/Screen.cc | 5 | ||||
-rw-r--r-- | src/Window.cc | 1 |
4 files changed, 7 insertions, 5 deletions
@@ -1,6 +1,8 @@ | |||
1 | (Format: Year/Month/Day) | 1 | (Format: Year/Month/Day) |
2 | Changes for 1.0rc2: | 2 | Changes for 1.0rc2: |
3 | *06/06/28: | 3 | *06/06/28: |
4 | * Fixed more focus issues with linear cycling and tabbed windows (Mark) | ||
5 | Window.cc FocusControl.cc Screen.cc | ||
4 | * Fixed some focus issues on detach and restart (Mark) | 6 | * Fixed some focus issues on detach and restart (Mark) |
5 | Window.cc FocusControl.cc/hh Screen.cc | 7 | Window.cc FocusControl.cc/hh Screen.cc |
6 | *06/06/27: | 8 | *06/06/27: |
diff --git a/src/FocusControl.cc b/src/FocusControl.cc index 19d0bf8..f469521 100644 --- a/src/FocusControl.cc +++ b/src/FocusControl.cc | |||
@@ -87,9 +87,9 @@ void FocusControl::cycleFocus(int opts, bool cycle_reverse) { | |||
87 | FocusedWindows *window_list = (opts & CYCLELINEAR) ? &m_creation_order_list : &m_focused_list; | 87 | FocusedWindows *window_list = (opts & CYCLELINEAR) ? &m_creation_order_list : &m_focused_list; |
88 | if (!m_cycling_focus) { | 88 | if (!m_cycling_focus) { |
89 | m_cycling_focus = true; | 89 | m_cycling_focus = true; |
90 | if ((opts & CYCLELINEAR) && m_cycling_window != m_focused_list.end()) { | 90 | if (opts & CYCLELINEAR) { |
91 | m_cycling_creation_order = true; | 91 | m_cycling_creation_order = true; |
92 | m_cycling_window = find(window_list->begin(),window_list->end(),*m_cycling_window); | 92 | m_cycling_window = find(window_list->begin(),window_list->end(),s_focused_window); |
93 | } else { | 93 | } else { |
94 | m_cycling_creation_order = (opts & CYCLELINEAR); | 94 | m_cycling_creation_order = (opts & CYCLELINEAR); |
95 | m_cycling_window = window_list->begin(); | 95 | m_cycling_window = window_list->begin(); |
diff --git a/src/Screen.cc b/src/Screen.cc index 222f1fc..71e4c54 100644 --- a/src/Screen.cc +++ b/src/Screen.cc | |||
@@ -1361,7 +1361,6 @@ FluxboxWindow *BScreen::createWindow(Window client) { | |||
1361 | if ((win = findGroupLeft(*winclient)) != 0) { | 1361 | if ((win = findGroupLeft(*winclient)) != 0) { |
1362 | win->attachClient(*winclient); | 1362 | win->attachClient(*winclient); |
1363 | Fluxbox::instance()->attachSignals(*winclient); | 1363 | Fluxbox::instance()->attachSignals(*winclient); |
1364 | focusControl().addFocusBack(*winclient); | ||
1365 | } else { | 1364 | } else { |
1366 | 1365 | ||
1367 | Fluxbox::instance()->attachSignals(*winclient); | 1366 | Fluxbox::instance()->attachSignals(*winclient); |
@@ -1382,9 +1381,9 @@ FluxboxWindow *BScreen::createWindow(Window client) { | |||
1382 | // always put on end of focused list, if it gets focused it'll get pushed up | 1381 | // always put on end of focused list, if it gets focused it'll get pushed up |
1383 | // there is only the one win client at this stage | 1382 | // there is only the one win client at this stage |
1384 | if (focusControl().focusNew()) | 1383 | if (focusControl().focusNew()) |
1385 | focusControl().addFocusFront(win->winClient()); | 1384 | focusControl().addFocusFront(*winclient); |
1386 | else | 1385 | else |
1387 | focusControl().addFocusBack(win->winClient()); | 1386 | focusControl().addFocusBack(*winclient); |
1388 | 1387 | ||
1389 | // we also need to check if another window expects this window to the left | 1388 | // we also need to check if another window expects this window to the left |
1390 | // and if so, then join it. | 1389 | // and if so, then join it. |
diff --git a/src/Window.cc b/src/Window.cc index 91b57e0..608ceb1 100644 --- a/src/Window.cc +++ b/src/Window.cc | |||
@@ -1068,6 +1068,7 @@ bool FluxboxWindow::setCurrentClient(WinClient &client, bool setinput) { | |||
1068 | if (client.fbwindow() != this) | 1068 | if (client.fbwindow() != this) |
1069 | return false; | 1069 | return false; |
1070 | 1070 | ||
1071 | m_screen.focusControl().setScreenFocusedWindow(client); | ||
1071 | m_client = &client; | 1072 | m_client = &client; |
1072 | m_client->raise(); | 1073 | m_client->raise(); |
1073 | m_client->focusSig().notify(); | 1074 | m_client->focusSig().notify(); |