all repos — openbox @ cbf4bb3d62df50045fd71920256865becae21990

openbox fork - make it a bit more like ryudo

use the snap offset as the margin for placing windows instead of a fixed value of 1
Dana Jansens danakj@orodu.net
commit

cbf4bb3d62df50045fd71920256865becae21990

parent

8dc38853ef1c55de644948ddb390a363e59c25bf

2 files changed, 9 insertions(+), 7 deletions(-)

jump to
M src/Workspace.ccsrc/Workspace.cc

@@ -530,9 +530,8 @@

/* * Calculate free space available for window placement. */ -typedef std::vector<Rect> rectList; - -static rectList calcSpace(const Rect &win, const rectList &spaces) { +Workspace::rectList Workspace::calcSpace(const Rect &win, + const rectList &spaces) const { Rect isect, extra; rectList result; rectList::const_iterator siter, end = spaces.end();

@@ -553,21 +552,21 @@ isect = curr & win;

// left extra.setCoords(curr.left(), curr.top(), - isect.left() - 1, curr.bottom()); + isect.left() - screen->getSnapOffset(), curr.bottom()); if (extra.valid()) result.push_back(extra); // top extra.setCoords(curr.left(), curr.top(), - curr.right(), isect.top() - 1); + curr.right(), isect.top() - screen->getSnapOffset()); if (extra.valid()) result.push_back(extra); // right - extra.setCoords(isect.right() + 1, curr.top(), + extra.setCoords(isect.right() + screen->getSnapOffset(), curr.top(), curr.right(), curr.bottom()); if (extra.valid()) result.push_back(extra); // bottom - extra.setCoords(curr.left(), isect.bottom() + 1, + extra.setCoords(curr.left(), isect.bottom() + screen->getSnapOffset(), curr.right(), curr.bottom()); if (extra.valid()) result.push_back(extra); }
M src/Workspace.hhsrc/Workspace.hh

@@ -65,6 +65,9 @@ StackVector::iterator &stack);

void lowerTransients(const BlackboxWindow * const win, StackVector::iterator &stack); + typedef std::vector<Rect> rectList; + rectList calcSpace(const Rect &win, const rectList &spaces) const; + void placeWindow(BlackboxWindow *win); bool cascadePlacement(Rect& win, const int offset); bool smartPlacement(Rect& win);