snapping better to the xinerama regions
Dana Jansens danakj@orodu.net
1 files changed,
16 insertions(+),
8 deletions(-)
jump to
M
src/Window.cc
→
src/Window.cc
@@ -1810,7 +1810,7 @@ it = availableAreas.begin(); // so just default to the first one
frame.changing = *it; } else -#endif +#endif // XINERAMA frame.changing = screen->availableArea(); switch(button) {@@ -3044,17 +3044,25 @@ RectList snaplist; // the list of rects we will try to snap to
// snap to the strut (and screen boundaries for xinerama) #ifdef XINERAMA - if (screen->isXineramaActive() && blackbox->doXineramaSnapping()) + if (screen->isXineramaActive() && blackbox->doXineramaSnapping()) { + if (! screen->doFullMax()) + snaplist.insert(snaplist.begin(), + screen->allAvailableAreas().begin(), + screen->allAvailableAreas().end()); + + // always snap to the screen edges snaplist.insert(snaplist.begin(), - screen->allAvailableAreas().begin(), - screen->allAvailableAreas().end()); - else + screen->getXineramaAreas().begin(), + screen->getXineramaAreas().end()); + } else #endif // XINERAMA + { if (! screen->doFullMax()) snaplist.push_back(screen->availableArea()); - - // always snap to the screen edges - snaplist.push_back(screen->getRect()); + + // always snap to the screen edges + snaplist.push_back(screen->getRect()); + } RectList::const_iterator it, end = snaplist.end(); for (it = snaplist.begin(); it != end; ++it) {