diff options
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/ChangeLog | 12 | ||||
-rw-r--r-- | lisp/frame.el | 3 | ||||
-rw-r--r-- | lisp/frameset.el | 4 | ||||
-rw-r--r-- | lisp/server.el | 12 |
4 files changed, 25 insertions, 6 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index e9f62365f03..b9681d35cf0 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,15 @@ +2015-02-27 Mark Laws <mdl@60hz.org> + + Support daemon mode on MS-Windows (bug#19688) + * server.el (server-process-filter): Force GUI frames on + MS-Windows in daemon mode, even if a TTY frame was requested. + + * frameset.el (frameset-keep-original-display-p): Don't assume + windows-nt cannot be in daemon mode. + + * frame.el (window-system-for-display): Don't assume windows-nt + cannot be in daemon mode. + 2015-02-26 Ivan Shmakov <ivan@siamics.net> * faces.el (face-list-p): Split from face-at-point. diff --git a/lisp/frame.el b/lisp/frame.el index 0096ef9696a..c81ee9bfa61 100644 --- a/lisp/frame.el +++ b/lisp/frame.el @@ -546,7 +546,8 @@ is not considered (see `next-frame')." Return nil if we don't know how to interpret DISPLAY." ;; MS-Windows doesn't know how to create a GUI frame in a -nw session. (if (and (eq system-type 'windows-nt) - (null (window-system))) + (null (window-system)) + (not (daemonp))) nil (cl-loop for descriptor in display-format-alist for pattern = (car descriptor) diff --git a/lisp/frameset.el b/lisp/frameset.el index 4a0637439db..17fe39be844 100644 --- a/lisp/frameset.el +++ b/lisp/frameset.el @@ -1022,8 +1022,8 @@ Internal use only." (defun frameset-keep-original-display-p (force-display) "True if saved frames' displays should be honored. For the meaning of FORCE-DISPLAY, see `frameset-restore'." - (cond ((daemonp) t) - ((eq system-type 'windows-nt) nil) ;; Does ns support more than one display? + (cond ((eq system-type 'windows-nt) nil) ;; Does ns support more than one display? + ((daemonp) t) (t (not force-display)))) (defun frameset-minibufferless-first-p (frame1 _frame2) diff --git a/lisp/server.el b/lisp/server.el index 166cd44bb2e..9585b1755c6 100644 --- a/lisp/server.el +++ b/lisp/server.el @@ -1139,9 +1139,12 @@ The following commands are accepted by the client: ;; frame. If running a GUI server, force the frame ;; type to GUI. (Cygwin is perfectly happy with ;; multi-tty support, so don't override the user's - ;; choice there.) + ;; choice there.) In daemon mode on Windows, we can't + ;; make tty frames, so force the frame type to GUI + ;; there too. (when (and (eq system-type 'windows-nt) - (eq window-system 'w32)) + (or (daemonp) + (eq window-system 'w32))) (push "-window-system" args-left))) ;; -position LINE[:COLUMN]: Set point to the given @@ -1215,7 +1218,10 @@ The following commands are accepted by the client: terminal-frame))))) (setq tty-name nil tty-type nil) (if display (server-select-display display))) - ((eq tty-name 'window-system) + ((or (and (eq system-type 'windows-nt) + (daemonp) + (setq display "w32")) + (eq tty-name 'window-system)) (server-create-window-system-frame display nowait proc parent-id frame-parameters)) |