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:
parent
6c8255bf39
commit
39dc328157
5 changed files with 22 additions and 8 deletions
|
|
@ -296,7 +296,7 @@ You shall use the default value if using auto-hide minibuffer.")
|
|||
(defvar xcb:Atom:_NET_SYSTEM_TRAY_S0)
|
||||
(defvar exwm-workspace--minibuffer)
|
||||
|
||||
(defun exwm-systemtray--init ()
|
||||
(cl-defun exwm-systemtray--init ()
|
||||
"Initialize system tray module."
|
||||
(cl-assert (not exwm-systemtray--connection))
|
||||
(cl-assert (not exwm-systemtray--list))
|
||||
|
|
@ -319,7 +319,9 @@ You shall use the default value if using auto-hide minibuffer.")
|
|||
(make-instance 'xcb:GetSelectionOwner
|
||||
:selection xcb:Atom:_NET_SYSTEM_TRAY_S0))
|
||||
(when (/= owner xcb:Window:None)
|
||||
(error "[EXWM] Other system tray detected")))
|
||||
(xcb:disconnect exwm-systemtray--connection)
|
||||
(warn "[EXWM] Other system tray detected")
|
||||
(cl-return-from exwm-systemtray--init)))
|
||||
(let ((id (xcb:generate-id exwm-systemtray--connection)))
|
||||
(setq exwm-systemtray--selection-owner-window id)
|
||||
(xcb:+request exwm-systemtray--connection
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue