emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/emulation/cua-base.el


From: Kim F . Storm
Subject: [Emacs-diffs] Changes to emacs/lisp/emulation/cua-base.el
Date: Thu, 14 Jul 2005 04:27:31 -0400

Index: emacs/lisp/emulation/cua-base.el
diff -c emacs/lisp/emulation/cua-base.el:1.56 
emacs/lisp/emulation/cua-base.el:1.57
*** emacs/lisp/emulation/cua-base.el:1.56       Mon Jul  4 17:29:03 2005
--- emacs/lisp/emulation/cua-base.el    Thu Jul 14 08:27:30 2005
***************
*** 1060,1170 ****
  
  ;;; Pre-command hook
  
! (defun cua--pre-command-handler ()
!   (condition-case nil
!       (let ((movement (eq (get this-command 'CUA) 'move)))
  
!       ;; Cancel prefix key timeout if user enters another key.
!       (when cua--prefix-override-timer
!         (if (timerp cua--prefix-override-timer)
!             (cancel-timer cua--prefix-override-timer))
!         (setq cua--prefix-override-timer nil))
! 
!       ;; Handle shifted cursor keys and other movement commands.
!       ;; If region is not active, region is activated if key is shifted.
!       ;; If region is active, region is cancelled if key is unshifted (and 
region not started with C-SPC).
!       ;; If rectangle is active, expand rectangle in specified direction and 
ignore the movement.
!       (if movement
!           (cond
!            ((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)
!             (setq cua--explicit-region-start nil))
!            ((or cua--explicit-region-start cua--rectangle)
!             (unless mark-active
!               (push-mark-command nil nil)))
!            (t
!             ;; If we set mark-active to nil here, the region highlight will 
not be
!             ;; removed by the direct_output_ commands.
!             (setq deactivate-mark t)))
! 
!         ;; Handle delete-selection property on other commands
!         (if (and mark-active (not deactivate-mark))
!             (let* ((ds (or (get this-command 'delete-selection)
!                            (get this-command 'pending-delete)))
!                    (nc (cond
!                         ((not ds) nil)
!                         ((eq ds 'yank)
!                          'cua-paste)
!                         ((eq ds 'kill)
!                          (if cua--rectangle
!                              'cua-copy-rectangle
!                            'cua-copy-region))
!                         ((eq ds 'supersede)
!                          (if cua--rectangle
!                              'cua-delete-rectangle
!                            'cua-delete-region))
!                         (t
!                          (if cua--rectangle
!                              'cua-delete-rectangle ;; replace?
!                            'cua-replace-region)))))
!               (if nc
!                   (setq this-original-command this-command
!                         this-command nc)))))
! 
!       ;; Detect extension of rectangles by mouse or other movement
!       (setq cua--buffer-and-point-before-command
!             (if cua--rectangle (cons (current-buffer) (point))))
!       )
!     (error nil)))
  
  ;;; Post-command hook
  
! (defun cua--post-command-handler ()
!   (condition-case nil
!       (progn
!       (when cua--global-mark-active
!         (cua--global-mark-post-command))
!       (when (fboundp 'cua--rectangle-post-command)
!         (cua--rectangle-post-command))
!       (setq cua--buffer-and-point-before-command nil)
!       (if (or (not mark-active) deactivate-mark)
!           (setq cua--explicit-region-start nil))
! 
!       ;; Debugging
!       (if cua--debug
!           (cond
!            (cua--rectangle (cua--rectangle-assert))
!            (mark-active (message "Mark=%d Point=%d Expl=%s"
!                                  (mark t) (point) 
cua--explicit-region-start))))
! 
!       ;; Disable transient-mark-mode if rectangle active in current buffer.
!       (if (not (window-minibuffer-p (selected-window)))
!           (setq transient-mark-mode (and (not cua--rectangle)
!                                          (if cua-highlight-region-shift-only
!                                              (not cua--explicit-region-start)
!                                            t))))
!       (if cua-enable-cursor-indications
!           (cua--update-indications))
  
!       (cua--select-keymaps)
!       )
  
!     (error nil)))
  
  
  ;;; Keymaps
--- 1060,1174 ----
  
  ;;; Pre-command hook
  
! (defun cua--pre-command-handler-1 ()
!   (let ((movement (eq (get this-command 'CUA) 'move)))
! 
!     ;; Cancel prefix key timeout if user enters another key.
!     (when cua--prefix-override-timer
!       (if (timerp cua--prefix-override-timer)
!         (cancel-timer cua--prefix-override-timer))
!       (setq cua--prefix-override-timer nil))
! 
!     ;; Handle shifted cursor keys and other movement commands.
!     ;; If region is not active, region is activated if key is shifted.
!     ;; If region is active, region is cancelled if key is unshifted (and 
region not started with C-SPC).
!     ;; If rectangle is active, expand rectangle in specified direction and 
ignore the movement.
!     (if movement
!       (cond
!        ((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)
!         (setq cua--explicit-region-start nil))
!        ((or cua--explicit-region-start cua--rectangle)
!         (unless mark-active
!           (push-mark-command nil nil)))
!        (t
!         ;; If we set mark-active to nil here, the region highlight will not be
!         ;; removed by the direct_output_ commands.
!         (setq deactivate-mark t)))
! 
!       ;; Handle delete-selection property on other commands
!       (if (and mark-active (not deactivate-mark))
!         (let* ((ds (or (get this-command 'delete-selection)
!                        (get this-command 'pending-delete)))
!                (nc (cond
!                     ((not ds) nil)
!                     ((eq ds 'yank)
!                      'cua-paste)
!                     ((eq ds 'kill)
!                      (if cua--rectangle
!                          'cua-copy-rectangle
!                        'cua-copy-region))
!                     ((eq ds 'supersede)
!                      (if cua--rectangle
!                          'cua-delete-rectangle
!                        'cua-delete-region))
!                     (t
!                      (if cua--rectangle
!                          'cua-delete-rectangle ;; replace?
!                        'cua-replace-region)))))
!           (if nc
!               (setq this-original-command this-command
!                     this-command nc)))))
! 
!     ;; Detect extension of rectangles by mouse or other movement
!     (setq cua--buffer-and-point-before-command
!         (if cua--rectangle (cons (current-buffer) (point))))))
  
! (defun cua--pre-command-handler ()
!   (when cua-mode
!     (condition-case nil
!       (cua--pre-command-handler-1)
!     (error nil))))
  
  ;;; Post-command hook
  
! (defun cua--post-command-handler-1 ()
!   (when cua--global-mark-active
!     (cua--global-mark-post-command))
!   (when (fboundp 'cua--rectangle-post-command)
!     (cua--rectangle-post-command))
!   (setq cua--buffer-and-point-before-command nil)
!   (if (or (not mark-active) deactivate-mark)
!       (setq cua--explicit-region-start nil))
! 
!   ;; Debugging
!   (if cua--debug
!       (cond
!        (cua--rectangle (cua--rectangle-assert))
!        (mark-active (message "Mark=%d Point=%d Expl=%s"
!                            (mark t) (point) cua--explicit-region-start))))
! 
!   ;; Disable transient-mark-mode if rectangle active in current buffer.
!   (if (not (window-minibuffer-p (selected-window)))
!       (setq transient-mark-mode (and (not cua--rectangle)
!                                    (if cua-highlight-region-shift-only
!                                        (not cua--explicit-region-start)
!                                      t))))
!   (if cua-enable-cursor-indications
!       (cua--update-indications))
  
!   (cua--select-keymaps))
  
! (defun cua--post-command-handler ()
!   (when cua-mode
!     (condition-case nil
!       (cua--post-command-handler-1)
!       (error nil))))
  
  
  ;;; Keymaps
***************
*** 1392,1397 ****
--- 1396,1410 ----
                 (if (nth 2 cua--saved-state) " PC-Selection" "")
                 (if (or (nth 1 cua--saved-state) (nth 2 cua--saved-state)) " 
enabled" "")))
      (setq cua--saved-state nil))))
+ 
+ 
+ ;;;###autoload
+ (defun cua-selection-mode (arg)
+   "Enable CUA selection mode without the C-z/C-x/C-c/C-v bindings."
+   (interactive "P")
+   (setq-default cua-enable-cua-keys nil)
+   (cua-mode arg))
+ 
  
  (defun cua-debug ()
    "Toggle CUA debugging."




reply via email to

[Prev in Thread] Current Thread [Next in Thread]