diff --git a/src/event.c b/src/event.c index 17dc978..cbf12ba 100644 --- a/src/event.c +++ b/src/event.c @@ -1932,10 +1932,20 @@ handleEvent (CompDisplay *d, moveResizeWindow (w, &xwc, event->xconfigurerequest.value_mask, 0); + printf("ConfigureRequest for %d (%s), mask %x, coords %d %d %d %d, sibling %d, detail %d\n", + w->id, w->resName, event->xconfigurerequest.value_mask, xwc.x, xwc.y, xwc.width, + xwc.height, event->xconfigurerequest.above, event->xconfigurerequest.detail); + if (event->xconfigurerequest.value_mask & CWStackMode) { - Window above = event->xconfigure.above; - CompWindow *sibling = findWindowAtDisplay (d, above); + Window above = None; + CompWindow *sibling = NULL; + + if (event->xconfigurerequest.value_mask & CWSibling) + { + above = event->xconfigurerequest.above; + sibling = findTopLevelWindowAtDisplay (d, above); + } switch (event->xconfigurerequest.detail) { case Above: diff --git a/src/window.c b/src/window.c index bbcdbeb..96a1297 100644 --- a/src/window.c +++ b/src/window.c @@ -3166,6 +3166,7 @@ findLowestSiblingBelow (CompWindow *w) switch (type) { case CompWindowTypeDesktopMask: /* desktop window layer */ + return NULL; break; case CompWindowTypeFullscreenMask: case CompWindowTypeDockMask: