all repos — openbox @ 1e19ccc2cbeca4770f55320a67babf2d469a8ab0

openbox fork - make it a bit more like ryudo

snapping better to the xinerama regions
Dana Jansens danakj@orodu.net
commit

1e19ccc2cbeca4770f55320a67babf2d469a8ab0

parent

a0f9b93d5bb2b34c03c3ccc027e64604a8a19b40

1 files changed, 16 insertions(+), 8 deletions(-)

jump to
M src/Window.ccsrc/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) {