Index: lisp/gutter-items.el =================================================================== RCS file: /usr/CVSroot/XEmacs/xemacs/lisp/Attic/gutter-items.el,v retrieving revision 1.1.2.38 diff -u -r1.1.2.38 gutter-items.el --- lisp/gutter-items.el 2000/03/24 19:31:53 1.1.2.38 +++ lisp/gutter-items.el 2000/03/28 18:19:33 @@ -465,19 +465,9 @@ (defvar progress-glyph-height 32 "Height of the gutter area for progress messages.") -(defvar progress-display-stop-callback 'progress-display-quit-function - "Function to call to stop the progress operation.") - (defvar progress-display-popup-period 0.5 "The time that the progress gauge should remain up after completion") -(defun progress-display-quit-function () - "Default function to call for the stop button in a progress gauge. -This just removes the progress gauge and calls quit." - (interactive) - (clear-progress-display) - (keyboard-quit)) - ;; private variables (defvar progress-gauge-glyph (make-glyph @@ -504,8 +494,8 @@ (vector 'button :pixel-height (- progress-glyph-height 8) :descriptor " Stop " - :callback - '(funcall progress-display-stop-callback))))))))) + ;; quit is a special callback + :callback 'quit)))))))) (defvar progress-abort-glyph (make-glyph @@ -578,16 +568,6 @@ (setcdr s (cdr (cdr s)))) (setq s (cdr s))))))) -(defun progress-display-dispatch-command-events () - ;; don't allow errors to hose things - (condition-case t - ;; processing command events is error-prone so we won't do it - ;; until we can figure out a better way. -; (when (input-pending-p) -; (dispatch-event (next-command-event))) - nil - nil)) - (defun progress-display-dispatch-non-command-events () ;; don't allow errors to hose things (condition-case t @@ -615,8 +595,7 @@ (raw-append-progress-display message value frame)) (progress-display-dispatch-non-command-events) ;; either get command events or sit waiting for them - (if (not (eq value 100)) - (progress-display-dispatch-command-events) + (when (eq value 100) (sit-for progress-display-popup-period nil) (clear-progress-display label)))) @@ -639,7 +618,7 @@ ;; do some funky display here. (set-extent-begin-glyph ext progress-abort-glyph) ;; fixup the gutter specifiers - (set-gutter-element bottom-gutter 'progress ext frame) + (set-gutter-element bottom-gutter 'progress gutter-string frame) (set-specifier bottom-gutter-border-width 2 frame) (set-image-instance-property (glyph-image-instance progress-text-glyph @@ -653,7 +632,7 @@ (sit-for progress-display-popup-period nil) (clear-progress-display label frame) (set-extent-begin-glyph ext progress-layout-glyph) - (set-gutter-element bottom-gutter 'progress ext frame) + (set-gutter-element bottom-gutter 'progress gutter-string frame) ))))) (defun raw-append-progress-display (message &optional value frame) @@ -684,8 +663,7 @@ ;; checking for user events (progn (redisplay-gutter-area) - (progress-display-dispatch-non-command-events) - (progress-display-dispatch-command-events)) + (progress-display-dispatch-non-command-events)) ;; otherwise make the gutter visible and redraw the frame (set-specifier bottom-gutter-height 'autodetect frame) (set-gutter-element-visible-p bottom-gutter-visible-p Index: src/gui.c =================================================================== RCS file: /usr/CVSroot/XEmacs/xemacs/src/gui.c,v retrieving revision 1.10.2.25 diff -u -r1.10.2.25 gui.c --- src/gui.c 2000/03/25 19:58:33 1.10.2.25 +++ src/gui.c 2000/03/28 18:19:43 @@ -80,8 +80,18 @@ || (CONSP (data) && (EQ (XCAR (data), Qlambda)) && !NILP (Fassq (Qinteractive, Fcdr (Fcdr (data)))))) { - *fn = Qcall_interactively; - *arg = data; + /* Treat 'quit specially and manufacture our own quit. */ + if (EQ (data, Qquit)) + { + *fn = Qeval; + *arg = list3 (Qsignal, list2 (Qquote, Qquit), Qnil); + Vquit_flag = Qt; + } + else + { + *fn = Qcall_interactively; + *arg = data; + } } else if (CONSP (data)) {