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

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

[elpa] externals/exwm 37e51e6 1/3: Fix a workspace switch issue


From: Chris Feng
Subject: [elpa] externals/exwm 37e51e6 1/3: Fix a workspace switch issue
Date: Tue, 19 Jul 2016 11:38:28 +0000 (UTC)

branch: externals/exwm
commit 37e51e65ade14ded8d4a45cc725b4b66bab6b879
Author: Chris Feng <address@hidden>
Commit: Chris Feng <address@hidden>

    Fix a workspace switch issue
    
    * exwm-workspace.el (exwm-workspace--switch-map-nth-prefix):
    Add more checking conditions.
---
 exwm-workspace.el |   14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/exwm-workspace.el b/exwm-workspace.el
index 551ccbf..5d4d78f 100644
--- a/exwm-workspace.el
+++ b/exwm-workspace.el
@@ -337,11 +337,17 @@ PREFIX-DIGITS is a list of the digits introduced so far."
                                   (* o x))
                                 prefix-digits)))
          (n (+ pn d))
-         (num-workspaces (exwm-workspace--count)))
-    (if (= (length prefix-digits)
-           (floor (log (1- num-workspaces) 10)))
+         prefix-length index-max index-length)
+    (if (or (= n 0)
+            (> n
+               (setq index-max (1- (exwm-workspace--count))))
+            (>= (setq prefix-length (length prefix-digits))
+                (setq index-length (floor (log index-max 10))))
+            ;; Check if it's still possible to do a match.
+            (> (* n (expt 10 (- index-length prefix-length)))
+               index-max))
         (exwm-workspace--switch-map-select-nth n)
-      ;; go ahead if there are enough digits to select any workspace.
+      ;; Go ahead if there are enough digits to select any workspace.
       (set-transient-map
        (let ((map (make-sparse-keymap))
              (cmd `(lambda ()



reply via email to

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