more focus issues with linear cycling and tabbed windows
This commit is contained in:
parent
c5c316e09b
commit
6f2a566206
4 changed files with 7 additions and 5 deletions
|
@ -1,6 +1,8 @@
|
|||
(Format: Year/Month/Day)
|
||||
Changes for 1.0rc2:
|
||||
*06/06/28:
|
||||
* Fixed more focus issues with linear cycling and tabbed windows (Mark)
|
||||
Window.cc FocusControl.cc Screen.cc
|
||||
* Fixed some focus issues on detach and restart (Mark)
|
||||
Window.cc FocusControl.cc/hh Screen.cc
|
||||
*06/06/27:
|
||||
|
|
|
@ -87,9 +87,9 @@ void FocusControl::cycleFocus(int opts, bool cycle_reverse) {
|
|||
FocusedWindows *window_list = (opts & CYCLELINEAR) ? &m_creation_order_list : &m_focused_list;
|
||||
if (!m_cycling_focus) {
|
||||
m_cycling_focus = true;
|
||||
if ((opts & CYCLELINEAR) && m_cycling_window != m_focused_list.end()) {
|
||||
if (opts & CYCLELINEAR) {
|
||||
m_cycling_creation_order = true;
|
||||
m_cycling_window = find(window_list->begin(),window_list->end(),*m_cycling_window);
|
||||
m_cycling_window = find(window_list->begin(),window_list->end(),s_focused_window);
|
||||
} else {
|
||||
m_cycling_creation_order = (opts & CYCLELINEAR);
|
||||
m_cycling_window = window_list->begin();
|
||||
|
|
|
@ -1361,7 +1361,6 @@ FluxboxWindow *BScreen::createWindow(Window client) {
|
|||
if ((win = findGroupLeft(*winclient)) != 0) {
|
||||
win->attachClient(*winclient);
|
||||
Fluxbox::instance()->attachSignals(*winclient);
|
||||
focusControl().addFocusBack(*winclient);
|
||||
} else {
|
||||
|
||||
Fluxbox::instance()->attachSignals(*winclient);
|
||||
|
@ -1382,9 +1381,9 @@ FluxboxWindow *BScreen::createWindow(Window client) {
|
|||
// always put on end of focused list, if it gets focused it'll get pushed up
|
||||
// there is only the one win client at this stage
|
||||
if (focusControl().focusNew())
|
||||
focusControl().addFocusFront(win->winClient());
|
||||
focusControl().addFocusFront(*winclient);
|
||||
else
|
||||
focusControl().addFocusBack(win->winClient());
|
||||
focusControl().addFocusBack(*winclient);
|
||||
|
||||
// we also need to check if another window expects this window to the left
|
||||
// and if so, then join it.
|
||||
|
|
|
@ -1068,6 +1068,7 @@ bool FluxboxWindow::setCurrentClient(WinClient &client, bool setinput) {
|
|||
if (client.fbwindow() != this)
|
||||
return false;
|
||||
|
||||
m_screen.focusControl().setScreenFocusedWindow(client);
|
||||
m_client = &client;
|
||||
m_client->raise();
|
||||
m_client->focusSig().notify();
|
||||
|
|
Loading…
Reference in a new issue