From c293fd65caff1879a4d27fcc177966fda97ddfe5 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Mon, 22 Jul 2002 04:56:25 +0000 Subject: [PATCH] xinerama support for maximizing windows --- src/Window.cc | 17 +++++++++++++++-- 1 file 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: -- 2.45.2