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.
This commit is contained in:
Chris Feng 2016-07-14 22:08:27 +08:00
parent 6c8255bf39
commit 39dc328157
5 changed files with 22 additions and 8 deletions

View file

@ -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