changeset 33236:d20d5b9045de

(fancy-splash-delay): Set to 10 seconds. (fancy-splash-max-time): New user-option. (fancy-splash-stop-time): New variable. (fancy-splash-screens): Set it. Catch `stop-splashing'. (fancy-splash-screens-1): Throw `stop-splashing' when current time is greater than fancy-splash-stop-time.
author Gerd Moellmann <gerd@gnu.org>
date Mon, 06 Nov 2000 11:43:59 +0000
parents 332e8deb8bea
children a5f4fa084c24
files lisp/startup.el
diffstat 1 files changed, 32 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/startup.el	Mon Nov 06 11:37:39 2000 +0000
+++ b/lisp/startup.el	Mon Nov 06 11:43:59 2000 +0000
@@ -985,12 +985,19 @@
   :group 'initialization)
 
 
-(defcustom fancy-splash-delay 5
+(defcustom fancy-splash-delay 10
   "*Delay in seconds between splash screens."
   :group 'fancy-splash-screen
   :type 'integer)
 
 
+(defcustom fancy-splash-max-time 60
+  "*Show splash screens for at most this number of seconds.
+Values less than 60 seconds are ignored."
+  :group 'fancy-splash-screen
+  :type 'integer)
+
+
 (defcustom fancy-splash-image nil
   "*The image to show in the splash screens, or nil for defaults."
   :group 'fancy-splash-screen
@@ -1002,6 +1009,7 @@
 
 (defvar fancy-current-text nil)
 (defvar fancy-splash-help-echo nil)
+(defvar fancy-splash-stop-time nil)
 
 
 (defun fancy-splash-insert (&rest args)
@@ -1076,6 +1084,8 @@
 
 (defun fancy-splash-screens-1 (buffer)
   "Timer function displaying a splash screen."
+  (when (> (float-time) fancy-splash-stop-time)
+    (throw 'stop-splashing nil))
   (unless fancy-current-text
     (setq fancy-current-text fancy-splash-text))
   (let ((text (car fancy-current-text)))
@@ -1107,24 +1117,27 @@
   (let ((old-busy-cursor display-busy-cursor)
 	(splash-buffer (current-buffer))
 	timer)
-    (unwind-protect
-	(let ((map (make-sparse-keymap))
-	      (show-help-function nil))
-	  (use-local-map map)
-	  (define-key map [t] 'fancy-splash-default-action)
-	  (define-key map [mouse-movement] 'ignore)
-	  (setq cursor-type nil
-		display-busy-cursor nil
-		buffer-undo-list t
-		mode-line-format
-		(propertize "---- %b %-" 'face '(:weight bold))
-		timer (run-with-timer 0 fancy-splash-delay
-				      #'fancy-splash-screens-1
-				      splash-buffer))
-	  (recursive-edit))
-      (cancel-timer timer)
-      (setq display-busy-cursor old-busy-cursor)
-      (kill-buffer splash-buffer))))
+    (catch 'stop-splashing
+      (unwind-protect
+	  (let ((map (make-sparse-keymap))
+		(show-help-function nil))
+	    (use-local-map map)
+	    (define-key map [t] 'fancy-splash-default-action)
+	    (define-key map [mouse-movement] 'ignore)
+	    (setq cursor-type nil
+		  display-busy-cursor nil
+		  buffer-undo-list t
+		  mode-line-format
+		  (propertize "---- %b %-" 'face '(:weight bold))
+		  fancy-splash-stop-time (+ (float-time)
+					    (max 60 fancy-splash-max-time))
+		  timer (run-with-timer 0 fancy-splash-delay
+					#'fancy-splash-screens-1
+					splash-buffer))
+	    (recursive-edit))
+	  (cancel-timer timer)
+	  (setq display-busy-cursor old-busy-cursor)
+	  (kill-buffer splash-buffer)))))
 
 
 (defun startup-echo-area-message ()