Hi. This patch makes smart window placement a little smarter, it doesn't fallback to cascade, it just makes sure it doesn't cover last few windows. It's more like an ugly hack than a real patch (which should probably use iterators backwards, new placement option...). Domen --- fluxbox-0.9.11/src/Workspace.cc 2004-11-22 14:18:50.000000000 +0100 +++ fluxbox-0.9.11-dev/src/Workspace.cc 2004-12-09 19:49:53.000000000 +0100 @@ -477,6 +477,9 @@ void Workspace::placeWindow(FluxboxWindo bool top_bot = screen().getColPlacementDirection() == BScreen::TOPBOTTOM; bool left_right = screen().getRowPlacementDirection() == BScreen::LEFTRIGHT; + int max_skip = -1; + while (!placed && ++max_skip <= m_windowlist.size()) { + if (top_bot) test_y = head_top; else @@ -510,6 +513,8 @@ void Workspace::placeWindow(FluxboxWindo Windows::iterator win_it = m_windowlist.begin(); const Windows::iterator win_it_end = m_windowlist.end(); + int skip = max_skip; + while (skip--) win_it++; for (; win_it != win_it_end && placed; ++win_it) { FluxboxWindow &window = **win_it; @@ -561,6 +566,8 @@ void Workspace::placeWindow(FluxboxWindo test_y = next_y; } // end while + } // end another while + break; } // end case ROWSMARTPLACEMENT