diff lisp/term/mac-win.el @ 59189:60ffced08532

* term/mac-win.el: Require x-dnd. (mac-drag-n-drop): Sync with W32 version. Use x-dnd.el functions. * macfns.c (install_window_handler): Modify extern to return OSErr value. (mac_window): Handle return value of install_window_handler. * macterm.c (reflect_byte): Remove function. (mac_create_bitmap_from_bitmap_data): Don't call it. Lookup table instead. (mac_do_font_lists): Simplify calculation of the longest nonspecial string. [TARGET_API_MAC_CARBON] (init_mac_drag_n_drop): Remove function and declaration. (mac_initialize) [TARGET_API_MAC_CARBON]: Don't call it. [TARGET_API_MAC_CARBON] (mac_do_track_drag): New function and declaration. (install_window_handler): Return OSErr value. (install_window_handler) [TARGET_API_MAC_CARBON]: Register handlers for tracking/receiving drag-and-drop items. (do_ae_open_documents): Generate unibyte strings for filenames. [TARGET_API_MAC_CARBON] (mac_do_receive_drag): Likewise. Reject only non-filename items. Set event modifiers. Set return value.
author Steven Tamm <steventamm@mac.com>
date Wed, 29 Dec 2004 17:25:02 +0000
parents 8d9ea622c741
children d6563f85d9e5
line wrap: on
line diff
--- a/lisp/term/mac-win.el	Wed Dec 29 16:01:49 2004 +0000
+++ b/lisp/term/mac-win.el	Wed Dec 29 17:25:02 2004 +0000
@@ -76,7 +76,7 @@
 ;;(require 'select)
 (require 'menu-bar)
 (require 'fontset)
-;;(require 'x-dnd)
+(require 'x-dnd)
 
 (defvar x-invocation-args)
 
@@ -1564,7 +1564,7 @@
 (mouse-wheel-mode 1)
 
 (defun mac-drag-n-drop (event)
-  "Edit the files listed in the drag-n-drop event.\n\
+  "Edit the files listed in the drag-n-drop EVENT.
 Switch to a buffer editing the last file dropped."
   (interactive "e")
   (save-excursion
@@ -1577,16 +1577,11 @@
 	   (y (cdr coords)))
       (if (and (> x 0) (> y 0))
 	  (set-frame-selected-window nil window))
-      (mapcar
-       '(lambda (file)
-	  (find-file
-	   (decode-coding-string
-	    file
-	    (or file-name-coding-system
-		default-file-name-coding-system))))
-       (car (cdr (cdr event)))))
-  (raise-frame)
-  (recenter)))
+      (mapcar (lambda (file-name) 
+		(x-dnd-handle-one-url window 'private 
+				      (concat "file:" file-name)))
+	      (car (cdr (cdr event)))))
+    (raise-frame)))
 
 (global-set-key [drag-n-drop] 'mac-drag-n-drop)