if (client.transient_for != (BlackboxWindow *) ~0ul) {
client.transient_for->client.transientList.remove(this);
}
- client.transient_for = (BlackboxWindow*) 0;
+ // we save our transient_for though because the workspace will use it
+ // when determining the next window to get focus
}
+ if (blackbox_attrib.workspace != BSENTINEL &&
+ window_number != BSENTINEL)
+ screen->getWorkspace(blackbox_attrib.workspace)->removeWindow(this);
+ else if (flags.iconic)
+ screen->removeIcon(this);
+
+ client.transient_for = (BlackboxWindow*) 0;
+
if (client.transientList.size() > 0) {
// reset transient_for for all transients
BlackboxWindowList::iterator it, end = client.transientList.end();
frame.changing = *it;
} else
-#endif
+#endif // XINERAMA
frame.changing = screen->availableArea();
switch(button) {
// 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) {