diff options
author | Chris Feng <chris.w.feng@gmail.com> | 2016-07-14T14·08+0800 |
---|---|---|
committer | Chris Feng <chris.w.feng@gmail.com> | 2016-07-14T14·08+0800 |
commit | 39dc328157a970742aa40d3d9169376d2208fce3 (patch) | |
tree | 9604b941a55dc13328afc72f02859bb004b37ab8 /exwm-systemtray.el | |
parent | 6c8255bf3978a4df3d76ffd6f7d6bbdbba8bba19 (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-systemtray.el')
-rw-r--r-- | exwm-systemtray.el | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/exwm-systemtray.el b/exwm-systemtray.el index d1783debdb15..db0e0455d2dd 100644 --- a/exwm-systemtray.el +++ b/exwm-systemtray.el @@ -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 |