diff options
Diffstat (limited to 'lisp/server.el')
| -rw-r--r-- | lisp/server.el | 63 |
1 files changed, 34 insertions, 29 deletions
diff --git a/lisp/server.el b/lisp/server.el index d45c7c28482..32cecd508b5 100644 --- a/lisp/server.el +++ b/lisp/server.el | |||
| @@ -826,35 +826,40 @@ This handles splitting the command if it would be bigger than | |||
| 826 | 826 | ||
| 827 | (defun server-create-window-system-frame (display nowait proc parent-id | 827 | (defun server-create-window-system-frame (display nowait proc parent-id |
| 828 | &optional parameters) | 828 | &optional parameters) |
| 829 | (add-to-list 'frame-inherited-parameters 'client) | 829 | (let* ((display (or display |
| 830 | (if (not (fboundp 'make-frame-on-display)) | 830 | (frame-parameter nil 'display) |
| 831 | (progn | 831 | (error "Please specify display."))) |
| 832 | ;; This emacs does not support X. | 832 | (w (or (cdr (assq 'window-system parameters)) |
| 833 | (server-log "Window system unsupported" proc) | 833 | (window-system-for-display display)))) |
| 834 | (server-send-string proc "-window-system-unsupported \n") | 834 | |
| 835 | nil) | 835 | (unless (assq w window-system-initialization-alist) |
| 836 | ;; Flag frame as client-created, but use a dummy client. | 836 | (setq w nil)) |
| 837 | ;; This will prevent the frame from being deleted when | 837 | |
| 838 | ;; emacsclient quits while also preventing | 838 | (cond (w |
| 839 | ;; `server-save-buffers-kill-terminal' from unexpectedly | 839 | ;; Flag frame as client-created, but use a dummy client. |
| 840 | ;; killing emacs on that frame. | 840 | ;; This will prevent the frame from being deleted when |
| 841 | (let* ((params `((client . ,(if nowait 'nowait proc)) | 841 | ;; emacsclient quits while also preventing |
| 842 | ;; This is a leftover, see above. | 842 | ;; `server-save-buffers-kill-terminal' from unexpectedly |
| 843 | (environment . ,(process-get proc 'env)) | 843 | ;; killing emacs on that frame. |
| 844 | ,@parameters)) | 844 | (let* ((params `((client . ,(if nowait 'nowait proc)) |
| 845 | (display (or display | 845 | ;; This is a leftover, see above. |
| 846 | (frame-parameter nil 'display) | 846 | (environment . ,(process-get proc 'env)) |
| 847 | (getenv "DISPLAY") | 847 | ,@parameters)) |
| 848 | (error "Please specify display"))) | 848 | frame) |
| 849 | frame) | 849 | (if parent-id |
| 850 | (if parent-id | 850 | (push (cons 'parent-id (string-to-number parent-id)) params)) |
| 851 | (push (cons 'parent-id (string-to-number parent-id)) params)) | 851 | (add-to-list 'frame-inherited-parameters 'client) |
| 852 | (setq frame (make-frame-on-display display params)) | 852 | (setq frame (make-frame-on-display display params)) |
| 853 | (server-log (format "%s created" frame) proc) | 853 | (server-log (format "%s created" frame) proc) |
| 854 | (select-frame frame) | 854 | (select-frame frame) |
| 855 | (process-put proc 'frame frame) | 855 | (process-put proc 'frame frame) |
| 856 | (process-put proc 'terminal (frame-terminal frame)) | 856 | (process-put proc 'terminal (frame-terminal frame)) |
| 857 | frame))) | 857 | frame)) |
| 858 | |||
| 859 | (t | ||
| 860 | (server-log "Window system unsupported" proc) | ||
| 861 | (server-send-string proc "-window-system-unsupported \n") | ||
| 862 | nil)))) | ||
| 858 | 863 | ||
| 859 | (defun server-goto-toplevel (proc) | 864 | (defun server-goto-toplevel (proc) |
| 860 | (condition-case nil | 865 | (condition-case nil |