]> git.eshelyaron.com Git - emacs.git/commitdiff
(mac-ae-reopen-application): New function.
authorYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Fri, 10 Aug 2007 10:13:44 +0000 (10:13 +0000)
committerYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Fri, 10 Aug 2007 10:13:44 +0000 (10:13 +0000)
(mac-apple-event-map): Bind "reopen application" Apple event to it.

lisp/ChangeLog
lisp/term/mac-win.el

index 35f5480f480a25d531b43d9b8ef0bead01dbfc88..44a4ff3a88e62075c45d2f5cfc6f1f0510235b0a 100644 (file)
@@ -1,3 +1,8 @@
+2007-08-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * term/mac-win.el (mac-ae-reopen-application): New function.
+       (mac-apple-event-map): Bind "reopen application" Apple event to it.
+
 2007-08-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * textmodes/tex-mode.el (tex-font-lock-unfontify-region): Fix to
index 3fb07dd004a5b04b30b953824794c549f6e124ea..44f8f70a252b4cc4e80f1a7022466d4a1d27130c 100644 (file)
@@ -1710,6 +1710,19 @@ in `selection-converter-alist', which see."
              (setq modifiers (cons (car modifier-mask) modifiers)))))
     modifiers))
 
+(defun mac-ae-reopen-application (event)
+  "Show some frame in response to the Apple event EVENT.
+The frame to be shown is chosen from visible or iconified frames
+if possible.  If there's no such frame, a new frame is created."
+  (interactive "e")
+  (unless (frame-visible-p (selected-frame))
+    (let ((frame (or (car (visible-frame-list))
+                    (car (filtered-frame-list 'frame-visible-p)))))
+      (if frame
+         (select-frame frame)
+       (switch-to-buffer-other-frame "*scratch*"))))
+  (select-frame-set-input-focus (selected-frame)))
+
 (defun mac-ae-open-documents (event)
   "Open the documents specified by the Apple event EVENT."
   (interactive "e")
@@ -1766,9 +1779,9 @@ Currently the `mailto' scheme is supported."
 (define-key mac-apple-event-map [core-event open-application] 0)
 
 ;; Received when a dock or application icon is clicked and Emacs is
-;; already running.  Simply ignored.  Another idea is to make a new
-;; frame if all frames are invisible.
-(define-key mac-apple-event-map [core-event reopen-application] 'ignore)
+;; already running.
+(define-key mac-apple-event-map [core-event reopen-application]
+  'mac-ae-reopen-application)
 
 (define-key mac-apple-event-map [core-event open-documents]
   'mac-ae-open-documents)