diff lisp/cmdloop.el @ 290:c9fe270a4101 r21-0b43

Import from CVS: tag r21-0b43
author cvs
date Mon, 13 Aug 2007 10:36:47 +0200
parents 558f606b08ae
children 8626e4521993
line wrap: on
line diff
--- a/lisp/cmdloop.el	Mon Aug 13 10:35:55 2007 +0200
+++ b/lisp/cmdloop.el	Mon Aug 13 10:36:47 2007 +0200
@@ -105,6 +105,17 @@
 	 (delete-other-windows))
 	((string-match "^ \\*" (buffer-name (current-buffer)))
 	 (bury-buffer))))
+
+;; `cancel-mode-internal' is a function of a misc-user event, which is
+;; queued when window system directs XEmacs frame to cancel any modal
+;; behavior it exposes, like mouse pointer grabbing.
+;;
+;; This function does nothing at the top level, but the code which
+;; runs modal event loops, such as selection drag loop in `mouse-track',
+;; check if misc-user function symbol is `cancel-mode-internal', and
+;; takes necessary cleanup actions.
+(defun cancel-mode-internal (object)
+  (setq zmacs-region-stays t))
 
 ;; Someone wrote: "This should really be a ring of last errors."
 ;;