about summary refs log tree commit diff
diff options
context:
space:
mode:
authorChris Feng <chris.w.feng@gmail.com>2016-07-22T04·26+0800
committerChris Feng <chris.w.feng@gmail.com>2016-07-22T04·26+0800
commitd86db3edd675d4c9fc00b4c3677507a9fd453c54 (patch)
tree26ec4d6f2c8a8cce3098de8d19e8a564cc65aaea
parent86777c54f341e3a0921c0970a4ed3fb99753e66d (diff)
Add minibuffer toggle command
* exwm-workspace.el (exwm-workspace-toggle-minibuffer): Add minibuffer
toggle command.

* exwm-core.el (exwm-mode-menu, exwm-mode-map): Substitute minibuffer
attach/detach commands with minibuffer toggle command.

* exwm-workspace.el (exwm-workspace-toggle-minibuffer): Insert various
auto load cookies.
-rw-r--r--exwm-core.el7
-rw-r--r--exwm-workspace.el12
2 files changed, 13 insertions, 6 deletions
diff --git a/exwm-core.el b/exwm-core.el
index 09e16582be6a..7606a9e9416b 100644
--- a/exwm-core.el
+++ b/exwm-core.el
@@ -199,12 +199,7 @@
     ["Swap workspaces" exwm-workspace-swap]
     ["Move X window to" exwm-workspace-move-window :keys "C-c C-m"]
     ["Move X window from" exwm-workspace-switch-to-buffer]
-    ["Attach minibuffer" exwm-workspace-attach-minibuffer
-     (and (exwm-workspace--minibuffer-own-frame-p)
-          (not (exwm-workspace--minibuffer-attached-p)))]
-    ["Detach minibuffer" exwm-workspace-detach-minibuffer
-     (and (exwm-workspace--minibuffer-own-frame-p)
-          (exwm-workspace--minibuffer-attached-p))]
+    ["Toggle minibuffer" exwm-workspace-toggle-minibuffer]
     ["Switch workspace" exwm-workspace-switch]
     ;; Place this entry at bottom to avoid selecting others by accident.
     ("Switch to" :filter
diff --git a/exwm-workspace.el b/exwm-workspace.el
index b3c2390936c3..e58c55411416 100644
--- a/exwm-workspace.el
+++ b/exwm-workspace.el
@@ -500,6 +500,7 @@ The optional FORCE option is for internal use only."
   "Number of workspaces `exwm-workspace-switch-create' allowed to create
 each time.")
 
+;;;###autoload
 (defun exwm-workspace-switch-create (frame-or-index)
   "Switch to workspace FRAME-OR-INDEX, creating it if it does not exist yet."
   (interactive)
@@ -835,6 +836,7 @@ Please check `exwm-workspace--minibuffer-own-frame-p' first."
   (assq (frame-parameter exwm-workspace--minibuffer 'exwm-container)
         exwm-workspace--id-struts-alist))
 
+;;;###autoload
 (defun exwm-workspace-attach-minibuffer ()
   "Attach the minibuffer so that it always shows."
   (interactive)
@@ -858,6 +860,7 @@ Please check `exwm-workspace--minibuffer-own-frame-p' first."
         (exwm-workspace--set-fullscreen f))
       (exwm-workspace--show-minibuffer))))
 
+;;;###autoload
 (defun exwm-workspace-detach-minibuffer ()
   "Detach the minibuffer so that it automatically hides."
   (interactive)
@@ -874,6 +877,15 @@ Please check `exwm-workspace--minibuffer-own-frame-p' first."
         (exwm-workspace--set-fullscreen f))
       (exwm-workspace--hide-minibuffer))))
 
+;;;###autoload
+(defun exwm-workspace-toggle-minibuffer ()
+  "Attach the minibuffer if it's detached, or detach it if it's attached."
+  (interactive)
+  (when (exwm-workspace--minibuffer-own-frame-p)
+    (if (exwm-workspace--minibuffer-attached-p)
+        (exwm-workspace-detach-minibuffer)
+      (exwm-workspace-attach-minibuffer))))
+
 (defun exwm-workspace--update-minibuffer-height (&optional echo-area)
   "Update the minibuffer frame height."
   (let ((height