]> git.sur5r.net Git - i3/i3/commitdiff
Send the child SIGSTOPs and SIGCONTs
authorAxel Wagner <mail@merovius.de>
Wed, 25 Aug 2010 16:31:03 +0000 (18:31 +0200)
committerAxel Wagner <mail@merovius.de>
Wed, 25 Aug 2010 16:31:03 +0000 (18:31 +0200)
i3bar/include/child.h
i3bar/src/child.c
i3bar/src/xcb.c

index 0405816d2b52e6abbf237985923c530fc2fd639e..69cfc5767a6c9b2c051cc19450215f13c6390e2e 100644 (file)
@@ -26,4 +26,16 @@ void start_child(char *command);
  */
 void kill_child();
 
+/*
+ * Sends a SIGSTOP to the child-process (if existent)
+ *
+ */
+void stop_child();
+
+/*
+ * Sends a SIGCONT to the child-process (if existent)
+ *
+ */
+void cont_child();
+
 #endif
index 2b0fb780a77b1a27bd857188ea7846439c659b32..4be5d12d901c369dbac056347dcdc03247c33a9c 100644 (file)
@@ -176,7 +176,7 @@ void start_child(char *command) {
 }
 
 /*
- * kill()s the child-prozess (if existend) and closes and
+ * kill()s the child-process (if existent) and closes and
  * free()s the stdin- and sigchild-watchers
  *
  */
@@ -186,3 +186,23 @@ void kill_child() {
     }
     cleanup();
 }
+
+/*
+ * Sends a SIGSTOP to the child-process (if existent)
+ *
+ */
+void stop_child() {
+    if (child_pid != 0) {
+        kill(child_pid, SIGSTOP);
+    }
+}
+
+/*
+ * Sends a SIGCONT to the child-process (if existent)
+ *
+ */
+void cont_child() {
+    if (child_pid != 0) {
+        kill(child_pid, SIGCONT);
+    }
+}
index 9494b389bd3494980477e01b1a210d458951bdb9..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;