summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2002-07-22 21:09:30 +0000
committerDana Jansens <danakj@orodu.net>2002-07-22 21:09:30 +0000
commit1e19ccc2cbeca4770f55320a67babf2d469a8ab0 (patch)
treecaa49a6597dec2f3e2926945aedcb905d3e0af27 /src
parenta0f9b93d5bb2b34c03c3ccc027e64604a8a19b40 (diff)
snapping better to the xinerama regions
Diffstat (limited to 'src')
-rw-r--r--src/Window.cc24
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) {