Update timestamp for WM_TAKE_FOCUS ClientMessage
* exwm-input.el (exwm-input--timestamp-window) (exwm-input--timestamp-atom, exwm-input--timestamp-callback): New variables for updating timestamp. (exwm-input--set-focus): Send WM_TAKE_FOCUS ClientMessage with updated timestamp. (exwm-input--update-timestamp): New utility function for fetching timestamp. (exwm-input--on-PropertyNotify): New function for handling PropertyNotify event to extract the timestamp. (exwm-input--init): Create resources for updating timestamp; attach the event listener. (exwm-input--on-ButtonPress, exwm-input--on-KeyPress): * exwm.el (exwm--on-PropertyNotify): No longer update timestamp. * exwm-input.el (exwm-input--set-focus): Avoid setting input focus on already focused X windows, or when the input focus in not on a Emacs frame if globally active model is in use. * exwm-floating.el (exwm-floating--set-floating): * exwm-workspace.el (exwm-workspace-move-window) (exwm-workspace--add-frame-as-workspace, exwm-workspace--init): Set 'exwm-id' frame parameter as the numerical (inner) frame X ID.
This commit is contained in:
parent
767abdf9e6
commit
810b4716a1
4 changed files with 112 additions and 34 deletions
3
exwm.el
3
exwm.el
|
|
@ -315,8 +315,7 @@
|
|||
atom id buffer)
|
||||
(xcb:unmarshal obj data)
|
||||
(setq id (slot-value obj 'window)
|
||||
atom (slot-value obj 'atom)
|
||||
exwm-input--timestamp (slot-value obj 'time))
|
||||
atom (slot-value obj 'atom))
|
||||
(setq buffer (exwm--id->buffer id))
|
||||
(if (not (buffer-live-p buffer))
|
||||
;; Properties of unmanaged X windows.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue