emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/exwm 2de2d42 09/19: Factor out prompt for workspace


From: Chris Feng
Subject: [elpa] externals/exwm 2de2d42 09/19: Factor out prompt for workspace
Date: Tue, 19 Jul 2016 03:07:08 +0000 (UTC)

branch: externals/exwm
commit 2de2d42586a0a8866e7f5447d490a0c345c7ce10
Author: Adrián Medraño Calvo <address@hidden>
Commit: Adrián Medraño Calvo <address@hidden>

    Factor out prompt for workspace
    
        * exwm-workspace.el (exwm-workspace--prompt-for-workspace): New
        function to interactively ask the user for a workspace.
        (exwm-workspace-switch, exwm-workspace-move-window): Use it.
---
 exwm-workspace.el |   35 ++++++++++++++---------------------
 1 file changed, 14 insertions(+), 21 deletions(-)

diff --git a/exwm-workspace.el b/exwm-workspace.el
index 346e898..21a415e 100644
--- a/exwm-workspace.el
+++ b/exwm-workspace.el
@@ -92,6 +92,18 @@ NIL if FRAME is not a workspace"
 (defvar exwm-workspace--switch-history-outdated nil
   "Non-nil to indicate `exwm-workspace--switch-history' is outdated.")
 
+(defun exwm-workspace--prompt-for-workspace ()
+  "Prompt for a workspace, returning the workspace frame."
+  (exwm-workspace--update-switch-history)
+  (let* ((current-idx (exwm-workspace--position exwm-workspace--current))
+         (history-add-new-input nil)  ;prevent modifying history
+         (history-idx (read-from-minibuffer
+                       "Workspace: " (elt exwm-workspace--switch-history 
current-idx)
+                       exwm-workspace--switch-map nil
+                       `(exwm-workspace--switch-history . ,(1+ current-idx))))
+         (workspace-idx (cl-position history-idx 
exwm-workspace--switch-history :test #'equal)))
+    (elt exwm-workspace--list workspace-idx)))
+
 (defun exwm-workspace--update-switch-history ()
   "Update the history for switching workspace to reflect the latest status."
   (when exwm-workspace--switch-history-outdated
@@ -317,15 +329,7 @@ The optional FORCE option is for internal use only."
   (interactive
    (list
     (unless (and (eq major-mode 'exwm-mode) exwm--fullscreen) ;it's invisible
-      (exwm-workspace--update-switch-history)
-      (let* ((current-idx (exwm-workspace--position exwm-workspace--current))
-             (history-add-new-input nil)  ;prevent modifying history
-             (history-idx (read-from-minibuffer
-                           "Workspace: " (elt exwm-workspace--switch-history 
current-idx)
-                           exwm-workspace--switch-map nil
-                           `(exwm-workspace--switch-history . ,(1+ 
current-idx))))
-             (workspace-idx (cl-position history-idx 
exwm-workspace--switch-history :test #'equal)))
-        (elt exwm-workspace--list workspace-idx)))))
+      (exwm-workspace--prompt-for-workspace))))
   (let* ((frame (exwm-workspace--workspace-from-frame-or-index frame-or-index))
          (index (exwm-workspace--position frame))
          (workspace (frame-parameter frame 'exwm-workspace))
@@ -419,18 +423,7 @@ The optional FORCE option is for internal use only."
 ;;;###autoload
 (defun exwm-workspace-move-window (frame-or-index &optional id)
   "Move window ID to workspace FRAME-OR-INDEX."
-  (interactive
-   (list
-    (progn
-      (exwm-workspace--update-switch-history)
-      (let* ((current-idx (exwm-workspace--position exwm-workspace--current))
-             (history-add-new-input nil)  ;prevent modifying history
-             (history-idx (read-from-minibuffer
-                           "Workspace: " (elt exwm-workspace--switch-history 
current-idx)
-                           exwm-workspace--switch-map nil
-                           `(exwm-workspace--switch-history . ,(1+ 
current-idx))))
-             (workspace-idx (cl-position history-idx 
exwm-workspace--switch-history :test #'equal)))
-        (elt exwm-workspace--list workspace-idx)))))
+  (interactive (list (exwm-workspace--prompt-for-workspace)))
   (let ((frame (exwm-workspace--workspace-from-frame-or-index frame-or-index)))
     (unless id (setq id (exwm--buffer->id (window-buffer))))
     (with-current-buffer (exwm--id->buffer id)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]