From fb9f6797869281b1eb4f950a9b791b561e27fdd9 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Thu, 11 Jan 2024 22:12:00 +0100 Subject: Circulate window, not perfect yet --- src/main.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index 7763a4b..b1c6609 100644 --- a/src/main.c +++ b/src/main.c @@ -159,7 +159,10 @@ int main(int argc, char **argv) { XQueryTree(dpy, root_window, &root_return, &parent_return, &children, &num_children); for(unsigned int i = 0; i < num_children; ++i) { - ngxc_compositor_add_window(&compositor, children[i]); + Window above_window = None; + if(i > 0) + above_window = children[i - 1]; + ngxc_compositor_add_window(&compositor, children[i], above_window); } if(children) @@ -169,11 +172,11 @@ int main(int argc, char **argv) { for(;;) { while(XPending(dpy)) { XNextEvent(dpy, &xev); - //if(xev.type != 22) - // fprintf(stderr, "event: %d\n", xev.type); + if(xev.type != 22) + fprintf(stderr, "event: %d\n", xev.type); switch(xev.type) { case CreateNotify: { - // TODO: + // TODO: Might be needed to have configure notify work with "above" field //ngxc_compositor_add_window(&compositor, xev.xcreatewindow.window); break; } @@ -183,7 +186,7 @@ int main(int argc, char **argv) { break; } case MapNotify: { - ngxc_compositor_add_window(&compositor, xev.xmap.window); + ngxc_compositor_add_window(&compositor, xev.xmap.window, None); break; } case UnmapNotify: { @@ -192,7 +195,7 @@ int main(int argc, char **argv) { } case ReparentNotify: { if(xev.xreparent.parent == root_window) - ngxc_compositor_add_window(&compositor, xev.xreparent.window); + ngxc_compositor_add_window(&compositor, xev.xreparent.window, None); else ngxc_compositor_remove_window(&compositor, xev.xreparent.window); break; @@ -204,6 +207,7 @@ int main(int argc, char **argv) { } case CirculateNotify: { fprintf(stderr, "circulate!\n"); + ngxc_compositor_on_circulate(&compositor, &xev.xcirculate); break; } default: -- cgit v1.2.3