about summary refs log tree commit diff
path: root/exwm-input.el
diff options
context:
space:
mode:
authorChris Feng <chris.w.feng@gmail.com>2016-07-14T14·08+0800
committerChris Feng <chris.w.feng@gmail.com>2016-07-14T14·08+0800
commit39dc328157a970742aa40d3d9169376d2208fce3 (patch)
tree9604b941a55dc13328afc72f02859bb004b37ab8 /exwm-input.el
parent6c8255bf3978a4df3d76ffd6f7d6bbdbba8bba19 (diff)
Fix various stability issues
* exwm-input.el (exwm-input--on-KeyPress-line-mode)
(exwm-input--on-KeyPress-char-mode): Append events at the tail.

* exwm-manage.el (exwm-manage--unmanage-window): Remove the
_NET_WM_DESKTOP property when an X window is withdrawn.

* exwm-systemtray.el (exwm-systemtray--init):
* exwm-workspace.el (exwm-workspace--confirm-kill-emacs):
Issue warning rather than error when there's an existing tray running.

* exwm.el (exwm--on-ClientMessage): The buffer window can be on a
floating frame.
Diffstat (limited to 'exwm-input.el')
-rw-r--r--exwm-input.el6
1 files changed, 4 insertions, 2 deletions
diff --git a/exwm-input.el b/exwm-input.el
index 3cb189bb50..8813f762c6 100644
--- a/exwm-input.el
+++ b/exwm-input.el
@@ -313,7 +313,8 @@ It's updated in several occasions, and only used by `exwm-input--set-focus'.")
         (unless minibuffer-window (setq exwm-input--during-key-sequence t))
         ;; Feed this event to command loop.  Also force it to be added to
         ;; `this-command-keys'.
-        (push (cons t event) unread-command-events))
+        (setq unread-command-events
+              (append unread-command-events `((t . ,event)))))
       (xcb:+request exwm--connection
           (make-instance 'xcb:AllowEvents
                          :mode (or mode xcb:Allow:ReplayKeyboard)
@@ -336,7 +337,8 @@ It's updated in several occasions, and only used by `exwm-input--set-focus'.")
           (setq exwm-input--temp-line-mode t
                 exwm-input--during-key-sequence t)
           (exwm-input--grab-keyboard))  ;grab keyboard temporarily
-        (push event unread-command-events))))
+        (setq unread-command-events
+              (append unread-command-events (list event))))))
   (xcb:+request exwm--connection
       (make-instance 'xcb:AllowEvents
                      :mode xcb:Allow:AsyncKeyboard