about summary refs log tree commit diff
diff options
context:
space:
mode:
authorChris Feng <chris.w.feng@gmail.com>2016-03-25T05·57+0800
committerChris Feng <chris.w.feng@gmail.com>2016-03-25T05·57+0800
commitfa204e136718e106a87414dd145d16748d5b7262 (patch)
treee156dda1ea4607b1f97f6e4b3298776bb6cd6e8c
parent44d05d2dd3e8214ef8815f7433758e9e155db3c9 (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.el15
-rw-r--r--exwm-workspace.el21
-rw-r--r--exwm.el2
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"