]> git.sur5r.net Git - i3/i3/commitdiff
Add forgetful restart to sighandler
authorAxel Wagner <mail@merovius.de>
Thu, 30 Dec 2010 20:43:34 +0000 (21:43 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Fri, 31 Dec 2010 18:36:35 +0000 (19:36 +0100)
include/util.h
src/cmdparse.y
src/sighandler.c
src/util.c

index 46a156558973685b363a4ae1e64ce73d6a6944eb..91b533a1bcae9ce8be8441320847212dd9519792 100644 (file)
@@ -122,6 +122,6 @@ bool path_exists(const char *path);
  * appends -a to argument list to disable autostart
  *
  */
-void i3_restart();
+void i3_restart(bool forget_layout);
 
 #endif
index 28cff60c8ef6c88fd7697fe8533f835a2a34c42a..988191830d7bcb49cfaaedd50916987c7c8783ad 100644 (file)
@@ -340,7 +340,7 @@ restart:
     TOK_RESTART
     {
         printf("restarting i3\n");
-        i3_restart();
+        i3_restart(false);
     }
     ;
 
index 1cc4548d90d2be215e98c148a890cb6b46f73e9c..ea2bf9fe6022f2cf474deb1485fc5bd6fc012211 100644 (file)
@@ -40,11 +40,12 @@ static int raised_signal;
 static char *crash_text[] = {
     "i3 just crashed.",
     "To debug this problem, either attach gdb now",
-    "or press 'e' to exit and get a core-dump.",
-    "If you want to keep your session,",
-    "press 'r' to restart i3 in-place."
+    "or press",
+    "- 'e' to exit and get a core-dump,",
+    "- 'r' to restart i3 in-place or",
+    "- 'f' to forget the current layout and restart"
 };
-static int crash_text_longest = 1;
+static int crash_text_longest = 5;
 
 /*
  * Draw the window containing the info text
@@ -99,7 +100,10 @@ static int sig_handle_key_press(void *ignored, xcb_connection_t *conn, xcb_key_p
     }
 
     if (sym == 'r')
-        i3_restart();
+        i3_restart(false);
+
+    if (sym == 'f')
+        i3_restart(true);
 
     return 1;
 }
index b8c314c79cc66f4b7d00bd32c3466850bea3e198..1ecce922e4c4d9f1b5b5dcbf5319a217b1b9e164 100644 (file)
@@ -321,8 +321,9 @@ char *store_restart_layout() {
  * appends -a to argument list to disable autostart
  *
  */
-void i3_restart() {
-    char *restart_filename = store_restart_layout();
+void i3_restart(bool forget_layout) {
+    char *restart_filename = forget_layout ? NULL : store_restart_layout();
+
     restore_geometry();
 
     ipc_shutdown();