diff options
| author | Dana Jansens <danakj@orodu.net> | 2002-07-22 04:56:25 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2002-07-22 04:56:25 +0000 |
| commit | c293fd65caff1879a4d27fcc177966fda97ddfe5 (patch) | |
| tree | 1b30344f6f4611663245b40ab2fbad0bfecaef88 /src/Window.cc | |
| parent | b7ab0001ce99e430ffe984ea9e6e1eb688ed1dad (diff) | |
xinerama support for maximizing windows
Diffstat (limited to 'src/Window.cc')
| -rw-r--r-- | src/Window.cc | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/Window.cc b/src/Window.cc index 316bbf1a..85144ffd 100644 --- a/src/Window.cc +++ b/src/Window.cc @@ -1792,8 +1792,21 @@ void BlackboxWindow::maximize(unsigned int button) { blackbox_attrib.premax_h = client.rect.height() + frame.margin.top + frame.margin.bottom; - const Rect &screen_area = screen->availableArea(); - frame.changing = screen_area; +#ifdef XINERAMA + if (screen->isXineramaActive() && blackbox->doXineramaMaximizing()) { + // find the area to use + RectList availableAreas = screen->allAvailableAreas(); + RectList::iterator it, end = availableAreas.end(); + + for (it = availableAreas.begin(); it != end; ++it) + if (it->intersects(frame.rect)) break; + if (it == end) // the window isn't inside an area + it = availableAreas.begin(); // so just default to the first one + + frame.changing = *it; + } else +#endif + frame.changing = screen->availableArea(); switch(button) { case 1: |
