From efee05461adf85f9d2730a008c757387364deb54 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Thu, 11 Jan 2024 21:25:59 +0100 Subject: 2ms leway --- src/main.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index bd552b2..7763a4b 100644 --- a/src/main.c +++ b/src/main.c @@ -108,7 +108,8 @@ int main(int argc, char **argv) { fatal_if(is_compositor_running(dpy), "another compositor is already running"); const Window root_window = DefaultRootWindow(dpy); - XSelectInput(dpy, root_window, SubstructureNotifyMask); + //XCompositeRedirectSubwindows(dpy, root_window, CompositeRedirectManual); + XSelectInput(dpy, root_window, ExposureMask | StructureNotifyMask | SubstructureNotifyMask | PropertyChangeMask); GLXFBConfig *fb_config; XVisualInfo *xvisual_info; @@ -168,6 +169,8 @@ int main(int argc, char **argv) { for(;;) { while(XPending(dpy)) { XNextEvent(dpy, &xev); + //if(xev.type != 22) + // fprintf(stderr, "event: %d\n", xev.type); switch(xev.type) { case CreateNotify: { // TODO: @@ -187,11 +190,22 @@ int main(int argc, char **argv) { ngxc_compositor_remove_window(&compositor, xev.xunmap.window); break; } + case ReparentNotify: { + if(xev.xreparent.parent == root_window) + ngxc_compositor_add_window(&compositor, xev.xreparent.window); + else + ngxc_compositor_remove_window(&compositor, xev.xreparent.window); + break; + } case ConfigureNotify: { /* TODO: Instead of doing this potentially multiple times at once, only do this for the last configure notify event for each window */ ngxc_compositor_on_configure(&compositor, &xev.xconfigure); break; } + case CirculateNotify: { + fprintf(stderr, "circulate!\n"); + break; + } default: break; } -- cgit v1.2.3