diff options
author | Chris Feng <chris.w.feng@gmail.com> | 2016-03-25T05·57+0800 |
---|---|---|
committer | Chris Feng <chris.w.feng@gmail.com> | 2016-03-25T05·57+0800 |
commit | fa204e136718e106a87414dd145d16748d5b7262 (patch) | |
tree | e156dda1ea4607b1f97f6e4b3298776bb6cd6e8c | |
parent | 44d05d2dd3e8214ef8815f7433758e9e155db3c9 (diff) |
Fix emacsclient issues
* exwm-layout.el (exwm-layout--on-minibuffer-setup) (exwm-layout--on-echo-area-change): * exwm-workspace.el (exwm-workspace--on-minibuffer-setup) (exwm-workspace--on-minibuffer-exit, exwm-workspace--on-echo-area-dirty) (exwm-workspace--on-echo-area-clear): Exclude non-graphical frames. * exwm.el (exwm--server-eval-at): Avoid using `x-dispaly-name'.
-rw-r--r-- | exwm-layout.el | 15 | ||||
-rw-r--r-- | exwm-workspace.el | 21 | ||||
-rw-r--r-- | exwm.el | 2 |
3 files changed, 24 insertions, 14 deletions
diff --git a/exwm-layout.el b/exwm-layout.el index 095e4611b107..c392ff972446 100644 --- a/exwm-layout.el +++ b/exwm-layout.el @@ -353,16 +353,19 @@ selected by `other-buffer'." (defun exwm-layout--on-minibuffer-setup () "Refresh layout when minibuffer grows." - (run-with-idle-timer 0.01 nil ;FIXME - (lambda () - (when (< 1 (window-height (minibuffer-window))) - (exwm-layout--refresh)))) - ;; Set input focus on the Emacs frame - (x-focus-frame (window-frame (minibuffer-selected-window)))) + (when (frame-parameter nil 'exwm-outer-id) + (run-with-idle-timer 0.01 nil ;FIXME + (lambda () + (when (< 1 (window-height (minibuffer-window))) + (exwm-layout--refresh)))) + ;; Set input focus on the Emacs frame + (x-focus-frame (window-frame (minibuffer-selected-window))))) (defun exwm-layout--on-echo-area-change (&optional dirty) "Run when message arrives or in `echo-area-clear-hook' to refresh layout." (when (and (current-message) + ;; Exclude non-graphical frames. + (frame-parameter nil 'exwm-outer-id) (or (cl-position ?\n (current-message)) (> (length (current-message)) (frame-width exwm-workspace--current)))) diff --git a/exwm-workspace.el b/exwm-workspace.el index d8e84f3f87b3..8dd6284d1dec 100644 --- a/exwm-workspace.el +++ b/exwm-workspace.el @@ -531,7 +531,9 @@ The optional FORCE option is for internal use only." (defun exwm-workspace--on-minibuffer-setup () "Run in minibuffer-setup-hook to show the minibuffer and its container." - (unless (> -1 (minibuffer-depth)) + (when (and (= 1 (minibuffer-depth)) + ;; Exclude non-graphical frames. + (frame-parameter nil 'exwm-outer-id)) (add-hook 'post-command-hook #'exwm-workspace--update-minibuffer) (exwm-workspace--show-minibuffer) ;; Set input focus on the Emacs frame @@ -539,7 +541,9 @@ The optional FORCE option is for internal use only." (defun exwm-workspace--on-minibuffer-exit () "Run in minibuffer-exit-hook to hide the minibuffer container." - (unless (> -1 (minibuffer-depth)) + (when (and (= 1 (minibuffer-depth)) + ;; Exclude non-graphical frames. + (frame-parameter nil 'exwm-outer-id)) (remove-hook 'post-command-hook #'exwm-workspace--update-minibuffer) (exwm-workspace--hide-minibuffer))) @@ -548,6 +552,8 @@ The optional FORCE option is for internal use only." (defun exwm-workspace--on-echo-area-dirty () "Run when new message arrives to show the echo area and its container." (when (and (not (active-minibuffer-window)) + ;; Exclude non-graphical frames. + (frame-parameter nil 'exwm-outer-id) (or (current-message) cursor-in-echo-area)) (exwm-workspace--update-minibuffer t) @@ -561,11 +567,12 @@ The optional FORCE option is for internal use only." (defun exwm-workspace--on-echo-area-clear () "Run in echo-area-clear-hook to hide echo area container." - (unless (active-minibuffer-window) - (exwm-workspace--hide-minibuffer)) - (when exwm-workspace--display-echo-area-timer - (cancel-timer exwm-workspace--display-echo-area-timer) - (setq exwm-workspace--display-echo-area-timer nil))) + (when (frame-parameter nil 'exwm-outer-id) ;Exclude non-graphical frames. + (unless (active-minibuffer-window) + (exwm-workspace--hide-minibuffer)) + (when exwm-workspace--display-echo-area-timer + (cancel-timer exwm-workspace--display-echo-area-timer) + (setq exwm-workspace--display-echo-area-timer nil)))) (declare-function exwm-manage--unmanage-window "exwm-manage.el") diff --git a/exwm.el b/exwm.el index e60b341bc3a5..ac10247f523f 100644 --- a/exwm.el +++ b/exwm.el @@ -557,7 +557,7 @@ (start-process exwm--server-name nil (car command-line-args) ;The executable file - "-d" x-display-name + "-d" (frame-parameter nil 'display) "-Q" (concat "--daemon=" exwm--server-name) "--eval" |