[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[STUMP] [PATCH] Add variable to confirm killing StumpWM
From: |
Diogo F. S. Ramos |
Subject: |
[STUMP] [PATCH] Add variable to confirm killing StumpWM |
Date: |
Tue, 13 Jan 2015 00:01:03 -0200 |
When quitting StumpWM using the command `quit', the variable
`*confirm-kill-stumpwm*' can hold a predicate which evaluates to t to
quit StumpWM.
The function `windows-query-on-exit' is a predicate that evaluates to
t if no window exist or the user answers "yes" to the query.
`*confirm-kill-stumpwm*' can hold any predicate but
`windows-query-on-exit' is provided so the user do not accidentally
quit StumpWM while windows exist.
`*confirm-kill-stumpwm*' is nil by default so there is no change on
the current behavior.
---
user.lisp | 23 ++++++++++++++++++++---
1 file changed, 20 insertions(+), 3 deletions(-)
diff --git a/user.lisp b/user.lisp
index 5f358de..04e4030 100644
--- a/user.lisp
+++ b/user.lisp
@@ -31,7 +31,10 @@
run-or-raise
run-or-pull
run-shell-command
- window-send-string))
+ window-send-string
+ *confirm-kill-stumpwm*
+ windows-query-on-exit
+ ))
(defun restarts-menu (err)
"Display a menu with the active restarts and let the user pick
@@ -222,10 +225,24 @@ such a case, kill the shell command to resume StumpWM."
(defcommand-alias abort keyboard-quit)
+(defun windows-query-on-exit ()
+ "t if no window exist or the user wants to exit anyway."
+ (or (null (all-windows))
+ (yes-or-no-p "Active windows exist; kill them and exit anyway? ")))
+
+(defvar *confirm-kill-stumpwm* nil
+ "If non-nil, predicate function to confirm killing StumpWM.
+
+Nil means to not ask.")
(defcommand quit () ()
-"Quit StumpWM."
- (throw :top-level :quit))
+ "Quit StumpWM.
+
+Use the variable `*confirm-kill-stumpwm*' to hold a predicate. This
+predicate evaluates to t when you want to quit."
+ (when (or (null *confirm-kill-stumpwm*)
+ (funcall *confirm-kill-stumpwm*))
+ (throw :top-level :quit)))
(defcommand restart-soft () ()
"Soft Restart StumpWM. The lisp process isn't restarted. Instead,
--
1.7.10.4
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [STUMP] [PATCH] Add variable to confirm killing StumpWM,
Diogo F. S. Ramos <=