From: YAMAMOTO Mitsuharu Date: Fri, 10 Aug 2007 10:13:44 +0000 (+0000) Subject: (mac-ae-reopen-application): New function. X-Git-Tag: emacs-pretest-23.0.90~11532 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=b16f162d31dec941cdfcee16a189c07f3688dc6a;p=emacs.git (mac-ae-reopen-application): New function. (mac-apple-event-map): Bind "reopen application" Apple event to it. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 35f5480f480..44a4ff3a88e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2007-08-10 YAMAMOTO Mitsuharu + + * 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 * textmodes/tex-mode.el (tex-font-lock-unfontify-region): Fix to diff --git a/lisp/term/mac-win.el b/lisp/term/mac-win.el index 3fb07dd004a..44f8f70a252 100644 --- a/lisp/term/mac-win.el +++ b/lisp/term/mac-win.el @@ -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)