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

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

[elpa] externals/exwm 3fc0cb2 10/64: Various fixes


From: Chris Feng
Subject: [elpa] externals/exwm 3fc0cb2 10/64: Various fixes
Date: Thu, 17 Sep 2015 23:17:52 +0000

branch: externals/exwm
commit 3fc0cb2bf7e97a525862e95052aaffca70b2089e
Author: Chris Feng <address@hidden>
Commit: Chris Feng <address@hidden>

    Various fixes
    
    * Prevent marking the end of a key sequence with a single `C-u'.
    * Enable `C-u' prefix for key simulation since it's not possible for users 
to
      define simulation keys starting with `C-u'.
    * Make Emacs idle only after the visual parts are updated to prevent from
      disturbing users.
    * Should use '?\s' instead of '? '.
---
 exwm-input.el     |   21 ++++++++++++---------
 exwm-workspace.el |    4 ++--
 2 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/exwm-input.el b/exwm-input.el
index e185b1a..6d72cc2 100644
--- a/exwm-input.el
+++ b/exwm-input.el
@@ -108,10 +108,12 @@ It's updated in several occasions, and only used by 
`exwm-input--set-focus'.")
 
 (defun exwm-input--finish-key-sequence ()
   "Mark the end of a key sequence (with the aid of `pre-command-hook')."
-  (setq exwm-input--during-key-sequence nil)
-  (when exwm-input--temp-line-mode
-    (setq exwm-input--temp-line-mode nil)
-    (exwm-input--release-keyboard)))
+  (when (and exwm-input--during-key-sequence
+             (not (equal [?\C-u] (this-single-command-keys))))
+    (setq exwm-input--during-key-sequence nil)
+    (when exwm-input--temp-line-mode
+      (setq exwm-input--temp-line-mode nil)
+      (exwm-input--release-keyboard))))
 
 (defun exwm-input--on-MappingNotify (data synthetic)
   "Handle MappingNotify event."
@@ -403,18 +405,19 @@ SIMULATION-KEYS is a list of alist (key-sequence1 . 
key-sequence2)."
     (cl-pushnew `(,(vconcat (car i)) . ,(cdr i)) exwm-input--simulation-keys))
   (exwm-input--update-simulation-prefix-keys))
 
-(defun exwm-input-send-simulation-key ()
+(defun exwm-input-send-simulation-key (times)
   "Fake a key event according to last input key sequence."
-  (interactive)
-  (let ((pair (assoc (this-command-keys-vector) ;FIXME: pefix
+  (interactive "p")
+  (let ((pair (assoc (this-single-command-keys)
                      exwm-input--simulation-keys))
         key)
     (when pair
       (setq pair (cdr pair))
       (unless (listp pair)
         (setq pair (list pair)))
-      (dolist (i pair)
-        (exwm-input--fake-key i)))))
+      (dotimes (i times)
+        (dolist (j pair)
+          (exwm-input--fake-key j))))))
 
 (defun exwm-input--init ()
   "Initialize the keyboard module."
diff --git a/exwm-workspace.el b/exwm-workspace.el
index 160055f..3add212 100644
--- a/exwm-workspace.el
+++ b/exwm-workspace.el
@@ -115,7 +115,6 @@ The optional FORCE option is for internal use only."
         (setq exwm-workspace--current frame
               exwm-workspace-current-index index)
         (select-frame-set-input-focus frame)
-        (exwm--make-emacs-idle-for 0.1) ;FIXME
         ;; Move mouse when necessary
         (let ((position (mouse-pixel-position))
               x y w h)
@@ -140,6 +139,7 @@ The optional FORCE option is for internal use only."
         (set-frame-parameter frame 'exwm--urgency nil)
         ;; Update switch workspace history
         (exwm-workspace--update-switch-history)
+        (exwm--make-emacs-idle-for 0.1) ;FIXME
         ;; Update _NET_CURRENT_DESKTOP
         (xcb:+request exwm--connection
             (make-instance 'xcb:ewmh:set-_NET_CURRENT_DESKTOP
@@ -196,7 +196,7 @@ The optional FORCE option is for internal use only."
 
 (defun exwm-workspace-rename-buffer (newname)
   "Rename a buffer."
-  (if (/= ?  (aref newname 0))
+  (if (/= ?\s (aref newname 0))
       (rename-buffer newname t)
     ;; If a buffer name is prefixed with a space, Emacs append a random
     ;; number before renaming it. This is not desired behavior.



reply via email to

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