emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r107766: * lisp/server.el (server--on


From: Stefan Monnier
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r107766: * lisp/server.el (server--on-display-p): New function.
Date: Wed, 04 Apr 2012 13:13:00 -0400
User-agent: Bazaar (2.3.1)

------------------------------------------------------------
revno: 107766
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Wed 2012-04-04 13:13:00 -0400
message:
  * lisp/server.el (server--on-display-p): New function.
  (server--on-display-p): Use it.
modified:
  lisp/ChangeLog
  lisp/server.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2012-04-04 16:22:09 +0000
+++ b/lisp/ChangeLog    2012-04-04 17:13:00 +0000
@@ -1,3 +1,8 @@
+2012-04-04  Stefan Monnier  <address@hidden>
+
+       * server.el (server--on-display-p): New function.
+       (server--on-display-p): Use it.
+
 2012-04-04  Gabor Vida  <address@hidden>  (tiny change)
 
        * ido.el (ido-wide-find-dirs-or-files): Use file-name-absolute-p

=== modified file 'lisp/server.el'
--- a/lisp/server.el    2012-03-11 17:54:16 +0000
+++ b/lisp/server.el    2012-04-04 17:13:00 +0000
@@ -367,18 +367,27 @@
   (server-log (format "Status changed to %s: %s" (process-status proc) msg) 
proc)
   (server-delete-client proc))
 
+(defun server--on-display-p (frame display)
+  (and (equal (frame-parameter frame 'display) display)
+       ;; Note: TTY frames still get a `display' parameter set to the value of
+       ;; $DISPLAY.  This is useful when running from that tty frame
+       ;; sub-processes that want to connect to the X server, but that means we
+       ;; have to be careful here not to be tricked into thinking those frames
+       ;; are on `display'.
+       (not (eq (framep frame) t))))
+
 (defun server-select-display (display)
   ;; If the current frame is on `display' we're all set.
   ;; Similarly if we are unable to open frames on other displays, there's
   ;; nothing more we can do.
   (unless (or (not (fboundp 'make-frame-on-display))
-              (equal (frame-parameter (selected-frame) 'display) display))
+              (server--on-display-p (selected-frame) display))
     ;; Otherwise, look for an existing frame there and select it.
     (dolist (frame (frame-list))
-      (when (equal (frame-parameter frame 'display) display)
+      (when (server--on-display-p frame display)
        (select-frame frame)))
     ;; If there's no frame on that display yet, create and select one.
-    (unless (equal (frame-parameter (selected-frame) 'display) display)
+    (unless (server--on-display-p (selected-frame) display)
       (let* ((buffer (generate-new-buffer " *server-dummy*"))
              (frame (make-frame-on-display
                      display


reply via email to

[Prev in Thread] Current Thread [Next in Thread]