diff options
| author | Dana Jansens <danakj@orodu.net> | 2002-07-22 21:09:30 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2002-07-22 21:09:30 +0000 |
| commit | 1e19ccc2cbeca4770f55320a67babf2d469a8ab0 (patch) | |
| tree | caa49a6597dec2f3e2926945aedcb905d3e0af27 | |
| parent | a0f9b93d5bb2b34c03c3ccc027e64604a8a19b40 (diff) | |
snapping better to the xinerama regions
| -rw-r--r-- | src/Window.cc | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/Window.cc b/src/Window.cc index 226ac023..bd2f0c06 100644 --- a/src/Window.cc +++ b/src/Window.cc @@ -1810,7 +1810,7 @@ void BlackboxWindow::maximize(unsigned int button) { frame.changing = *it; } else -#endif +#endif // XINERAMA frame.changing = screen->availableArea(); switch(button) { @@ -3044,17 +3044,25 @@ void BlackboxWindow::doMove(int x_root, int y_root) { // 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) { |
