use the snap offset as the margin for placing windows instead of a fixed value of 1

This commit is contained in:
Dana Jansens 2002-08-23 23:13:21 +00:00
parent 8dc38853ef
commit cbf4bb3d62
2 changed files with 9 additions and 7 deletions

View file

@ -530,9 +530,8 @@ void Workspace::setName(const string& new_name) {
/*
* 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 @@ static rectList calcSpace(const Rect &win, const rectList &spaces) {
// 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);
}

View file

@ -65,6 +65,9 @@ private:
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);