changeset 61642:38e5ee03d4a9

(cua--pre-command-handler): Add more elaborate check for shift modifier on non-window systems.
author Kim F. Storm <storm@cua.dk>
date Mon, 18 Apr 2005 19:50:07 +0000
parents f108d1ce31f8
children 7508a279dc7a
files lisp/emulation/cua-base.el
diffstat 1 files changed, 14 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/emulation/cua-base.el	Mon Apr 18 19:49:40 2005 +0000
+++ b/lisp/emulation/cua-base.el	Mon Apr 18 19:50:07 2005 +0000
@@ -1066,10 +1066,20 @@
 	;; If rectangle is active, expand rectangle in specified direction and ignore the movement.
 	(if movement
 	    (cond
-	     ((memq 'shift (event-modifiers
-			    (aref (if window-system
-				      (this-single-command-raw-keys)
-				    (this-single-command-keys)) 0)))
+	     ((if window-system
+		  (memq 'shift (event-modifiers
+				(aref (this-single-command-raw-keys) 0)))
+		(or
+		 (memq 'shift (event-modifiers
+			       (aref (this-single-command-keys) 0)))
+		 ;; See if raw escape sequence maps to a shifted event, e.g. S-up or C-S-home.
+		 (and (boundp 'function-key-map)
+		      function-key-map
+		      (let ((ev (lookup-key function-key-map
+					   (this-single-command-raw-keys))))
+			(and (vector ev)
+			     (symbolp (setq ev (aref ev 0)))
+			     (string-match "S-" (symbol-name ev)))))))
 	      (unless mark-active
 		(push-mark-command nil t))
 	      (setq cua--last-region-shifted t)