diff options
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 16 |
1 files changed, 15 insertions, 1 deletions
@@ -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; } |