all repos — fluxbox @ 6f2a566206faa0e6e8eff34f96888f6910644f56

custom fork of the fluxbox windowmanager

more focus issues with linear cycling and tabbed windows
markt markt
commit

6f2a566206faa0e6e8eff34f96888f6910644f56

parent

c5c316e09b27cda8b4b9a2d9a78d458402585a1b

4 files changed, 7 insertions(+), 5 deletions(-)

jump to
M ChangeLogChangeLog

@@ -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:
M src/FocusControl.ccsrc/FocusControl.cc

@@ -87,9 +87,9 @@

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();
M src/Screen.ccsrc/Screen.cc

@@ -1361,7 +1361,6 @@ FluxboxWindow *win;

if ((win = findGroupLeft(*winclient)) != 0) { win->attachClient(*winclient); Fluxbox::instance()->attachSignals(*winclient); - focusControl().addFocusBack(*winclient); } else { Fluxbox::instance()->attachSignals(*winclient);

@@ -1382,9 +1381,9 @@

// 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.
M src/Window.ccsrc/Window.cc

@@ -1068,6 +1068,7 @@ // make sure it's in our list

if (client.fbwindow() != this) return false; + m_screen.focusControl().setScreenFocusedWindow(client); m_client = &client; m_client->raise(); m_client->focusSig().notify();