changeset 68035:a9b674b9cf4c

(mac-ae-parameter): Don't coerce data if it is already of desired type. (mac-ae-list): Coerce parameter to "list" type. (mac-dispatch-apple-event): Replace cadr part of event with a dummy position so that event-start returns it.
author YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
date Thu, 05 Jan 2006 08:13:11 +0000
parents f56c67d929af
children ad2c54d4bf05
files lisp/term/mac-win.el
diffstat 1 files changed, 6 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/term/mac-win.el	Thu Jan 05 08:07:05 2006 +0000
+++ b/lisp/term/mac-win.el	Thu Jan 05 08:13:11 2006 +0000
@@ -1381,7 +1381,7 @@
 (put 'core-event     'mac-apple-event-class "aevt") ; kCoreEventClass
 (put 'internet-event 'mac-apple-event-class "GURL") ; kAEInternetEventClass
 
-;;; Event IDs 
+;;; Event IDs
 ;; kCoreEventClass
 (put 'open-application   'mac-apple-event-id "oapp") ; kAEOpenApplication
 (put 'reopen-application 'mac-apple-event-id "rapp") ; kAEReopenApplication
@@ -1409,14 +1409,14 @@
       (error "Not an Apple event: %S" ae)
     (let ((type-data (cdr (assoc keyword (cdr ae))))
 	  data)
-      (when (and type type-data)
+      (when (and type type-data (not (equal type (car type-data))))
 	(setq data (mac-coerce-ae-data (car type-data) (cdr type-data) type))
 	(setq type-data (if data (cons type data) nil)))
       type-data)))
 
 (defun mac-ae-list (ae &optional keyword type)
   (or keyword (setq keyword "----")) ;; Direct object.
-  (let ((desc (mac-ae-parameter ae keyword)))
+  (let ((desc (mac-ae-parameter ae keyword "list")))
     (cond ((null desc)
 	   nil)
 	  ((not (equal (car desc) "list"))
@@ -1588,6 +1588,9 @@
       (setq service-message
 	    (intern (decode-coding-string service-message 'utf-8)))
       (setq binding (lookup-key binding (vector service-message))))
+    ;; Replace (cadr event) with a dummy position so that event-start
+    ;; returns it.
+    (setcar (cdr event) (list (selected-window) (point) '(0 . 0) 0))
     (call-interactively binding)))
 
 (global-set-key [mac-apple-event] 'mac-dispatch-apple-event)