aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c16
1 files changed, 15 insertions, 1 deletions
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;
}