Fix issue with managed tray icons

* exwm-input.el (exwm-input--on-ButtonPress): Replay button events
destined for managed tray icons.
This commit is contained in:
Chris Feng 2019-01-20 00:00:00 +00:00
parent 404c94568d
commit 4f854e9fff

View file

@ -382,6 +382,7 @@ ARGS are additional arguments to CALLBACK."
buffer (exwm--id->buffer event)
window (get-buffer-window buffer t))
(cond ((and (eq button-event exwm-input-move-event)
buffer
;; Either an undecorated or a floating X window.
(with-current-buffer buffer
(or (not (derived-mode-p 'exwm-mode))
@ -390,12 +391,13 @@ ARGS are additional arguments to CALLBACK."
(exwm-floating--start-moveresize
event xcb:ewmh:_NET_WM_MOVERESIZE_MOVE))
((and (eq button-event exwm-input-resize-event)
buffer
(with-current-buffer buffer
(or (not (derived-mode-p 'exwm-mode))
exwm--floating-frame)))
;; Resize
(exwm-floating--start-moveresize event))
(t
(buffer
;; Click to focus
(unless (eq window (selected-window))
(setq frame (window-frame window))
@ -414,13 +416,18 @@ ARGS are additional arguments to CALLBACK."
(select-window window)
(setq window (get-buffer-window buffer t))
(when window (select-window window))))
;; Also process keybindings.
(with-current-buffer buffer
(when (derived-mode-p 'exwm-mode)
(cl-case exwm--input-mode
(line-mode
(setq mode (exwm-input--on-ButtonPress-line-mode buffer button-event)))
(setq mode (exwm-input--on-ButtonPress-line-mode
buffer button-event)))
(char-mode
(setq mode (exwm-input--on-ButtonPress-char-mode)))))))))
(setq mode (exwm-input--on-ButtonPress-char-mode)))))))
(t
;; Replay this event by default.
(setq mode xcb:Allow:ReplayPointer))))
(xcb:+request exwm--connection
(make-instance 'xcb:AllowEvents :mode mode :time xcb:Time:CurrentTime))
(xcb:flush exwm--connection)))