]> git.sur5r.net Git - i3/i3/blobdiff - i3bar/src/xcb.c
Send the child SIGSTOPs and SIGCONTs
[i3/i3] / i3bar / src / xcb.c
index 45ed79cc51c7428b96e2d147c811d92c6a9c1f73..f5a5068622e5e8ce29c3f0acca025705db5271c8 100644 (file)
@@ -76,6 +76,7 @@ void hide_bars() {
     SLIST_FOREACH(walk, outputs, slist) {
         xcb_unmap_window(xcb_connection, walk->bar);
     }
+    stop_child();
 }
 
 /*
@@ -89,6 +90,8 @@ void unhide_bars() {
     uint32_t            mask;
     uint32_t            values[4];
 
+    cont_child();
+
     SLIST_FOREACH(walk, outputs, slist) {
         if (walk->bar == XCB_NONE) {
             continue;
@@ -484,11 +487,13 @@ void reconfig_windows() {
             printf("Creating Window for output %s\n", walk->name);
 
             walk->bar = xcb_generate_id(xcb_connection);
-            mask = XCB_CW_BACK_PIXEL | XCB_CW_EVENT_MASK;
+            mask = XCB_CW_BACK_PIXEL | XCB_CW_OVERRIDE_REDIRECT | XCB_CW_EVENT_MASK;
             /* Black background */
             values[0] = xcb_screens->black_pixel;
+            /* i3 is not supposed to manage our bar-windows */
+            values[1] = 1;
             /* The events we want to receive */
-            values[1] = XCB_EVENT_MASK_EXPOSURE |
+            values[2] = XCB_EVENT_MASK_EXPOSURE |
                         XCB_EVENT_MASK_BUTTON_PRESS;
             cookie = xcb_create_window_checked(xcb_connection,
                                                xcb_screens->root_depth,