瀏覽代碼

edit-server-new-frame: clean-up and re-factor (ref pull #97)

A pull request to fix up focusing of the new frame on MacOS lead me to
re-factor this code so all the frame raising logic is common for the
new-frame and re-use frame options. Also:

* Clean up tabs
* Clean up doc string
Alex Bennée 10 年之前
父節點
當前提交
de43744c71
共有 1 個文件被更改,包括 20 次插入21 次删除
  1. 20 21
      edit-server.el

+ 20 - 21
edit-server.el

@@ -467,30 +467,29 @@ The new frame will have a specific frame parameter of
      'edit-server-forground-frame 't)))
 
 (defun edit-server-show-edit-buffer (buffer)
-  "Show edit buffer by creating a frame or raising the selected
-frame."
-  (if edit-server-new-frame
-      (let ((new-frame
-	     (if (memq window-system '(ns mac))
-		 ;; Aquamacs, Emacs NS, Emacs (experimental) Mac port
-		 (make-frame edit-server-new-frame-alist)
-	       (make-frame-on-display (getenv "DISPLAY")
-				      edit-server-new-frame-alist))))
-	(unless edit-server-new-frame-mode-line
-	  (setq mode-line-format nil))
-	(select-frame new-frame)
-	(when (and (eq window-system 'x)
-		   (fboundp 'x-send-client-message))
-	  (x-send-client-message nil 0 nil
-				 "_NET_ACTIVE_WINDOW" 32
-				 '(1 0 0)))
-	(raise-frame new-frame)
-	(set-window-buffer (frame-selected-window new-frame) buffer)
-	new-frame)
+  "Show edit `BUFFER' by creating a frame or raising the selected
+frame. If a frame was created it returns `FRAME'."
+  (let ((edit-frame nil))
+    (when edit-server-new-frame
+      (setq edit-frame
+            (if (memq window-system '(ns mac))
+                ;; Aquamacs, Emacs NS, Emacs (experimental) Mac port
+                (make-frame edit-server-new-frame-alist)
+              (make-frame-on-display (getenv "DISPLAY")
+                                     edit-server-new-frame-alist)))
+      (unless edit-server-new-frame-mode-line
+        (setq mode-line-format nil))
+      (select-frame edit-frame)
+      (when (and (eq window-system 'x)
+                 (fboundp 'x-send-client-message))
+        (x-send-client-message nil 0 nil
+                               "_NET_ACTIVE_WINDOW" 32
+                               '(1 0 0))))
+    (raise-frame edit-frame)
     (select-frame-set-input-focus (window-frame (selected-window)))
     (pop-to-buffer buffer)
     (raise-frame)
-    nil))
+    edit-frame))
 
 (defun edit-server-choose-major-mode ()
   "Use `edit-server-url-major-mode-alist' to choose a major mode