Author: sasugaanija
Date: Sat Jun 23 02:15:52 2007
New Revision: 4607
Modified:
trunk/emacs/uim-key.el
trunk/emacs/uim-var.el
trunk/emacs/uim.el
Log:
* emacs/uim.el
* emacs/uim-key.el
* emacs/uim-var.el
- Support shifted-motion-keys-select-region feature of XEmacs
Modified: trunk/emacs/uim-key.el
==============================================================================
--- trunk/emacs/uim-key.el (original)
+++ trunk/emacs/uim-key.el Sat Jun 23 02:15:52 2007
@@ -249,8 +249,16 @@
(uim-debug (format "this-command is %s" this-command))
(setq last-command-char (aref keyvec 0))
+ (if uim-xemacs
+ (progn
+ (setq last-input-event uim-original-input-event)
+ (handle-pre-motion-command)))
+
(run-hooks 'pre-command-hook)
(command-execute this-command)
+
+ (if uim-xemacs
+ (handle-post-motion-command))
(uim-flush-concat-undo)
)
Modified: trunk/emacs/uim-var.el
==============================================================================
--- trunk/emacs/uim-var.el (original)
+++ trunk/emacs/uim-var.el Sat Jun 23 02:15:52 2007
@@ -270,6 +270,10 @@
(defvar uim-retry-keys nil)
+;; keep original last-input-event to process the event correctly after
+;; removing Shift modifier
+(defvar uim-original-input-event nil)
+
(defvar uim-local-var '())
;; Macro for setting up buffer-local variable
Modified: trunk/emacs/uim.el
==============================================================================
--- trunk/emacs/uim.el (original)
+++ trunk/emacs/uim.el Sat Jun 23 02:15:52 2007
@@ -880,6 +880,8 @@
(if uim-prefix-arg
(uim-debug (format "uim-prefix-arg %s" uim-prefix-arg)))
+ (if (and uim-xemacs (not uim-retry-keys))
+ (setq uim-original-input-event (copy-event last-input-event)))
(let ((keyvec (uim-this-command-keys current-prefix-arg))
sendkey newvec bypass count mouse)