Fix focus jumps with minibuffer-only frames
* exwm-input.el (exwm-input--update-focus): Focus the minibuffer's frame, which is different than that of the `minibuffer-selected-window' on minibuffer-only frames. (exwm-input--on-minibuffer-setup, exwm-input--init) (exwm-input-exit): Remove unneeded function.
This commit is contained in:
parent
472f7cb82b
commit
c9984ca216
1 changed files with 1 additions and 11 deletions
|
@ -351,17 +351,10 @@ ARGS are additional arguments to CALLBACK."
|
||||||
(x-focus-frame (window-frame window))
|
(x-focus-frame (window-frame window))
|
||||||
;; X input focus should be set on the previously selected
|
;; X input focus should be set on the previously selected
|
||||||
;; frame.
|
;; frame.
|
||||||
(x-focus-frame (window-frame (minibuffer-selected-window))))
|
(x-focus-frame (window-frame (minibuffer-window))))
|
||||||
(exwm-input--set-active-window)
|
(exwm-input--set-active-window)
|
||||||
(xcb:flush exwm--connection)))))))
|
(xcb:flush exwm--connection)))))))
|
||||||
|
|
||||||
(defun exwm-input--on-minibuffer-setup ()
|
|
||||||
"Run in `minibuffer-setup-hook' to set input focus."
|
|
||||||
(exwm--log)
|
|
||||||
(unless (exwm-workspace--client-p)
|
|
||||||
;; Set input focus on the Emacs frame
|
|
||||||
(x-focus-frame (window-frame (minibuffer-selected-window)))))
|
|
||||||
|
|
||||||
(defun exwm-input--set-active-window (&optional id)
|
(defun exwm-input--set-active-window (&optional id)
|
||||||
"Set _NET_ACTIVE_WINDOW."
|
"Set _NET_ACTIVE_WINDOW."
|
||||||
(exwm--log)
|
(exwm--log)
|
||||||
|
@ -1004,8 +997,6 @@ where both ORIGINAL-KEY and SIMULATED-KEY are key sequences."
|
||||||
(when mouse-autoselect-window
|
(when mouse-autoselect-window
|
||||||
(xcb:+event exwm--connection 'xcb:EnterNotify
|
(xcb:+event exwm--connection 'xcb:EnterNotify
|
||||||
#'exwm-input--on-EnterNotify))
|
#'exwm-input--on-EnterNotify))
|
||||||
;; The input focus should be set on the frame when minibuffer is active.
|
|
||||||
(add-hook 'minibuffer-setup-hook #'exwm-input--on-minibuffer-setup)
|
|
||||||
;; Control `exwm-input--during-command'
|
;; Control `exwm-input--during-command'
|
||||||
(add-hook 'pre-command-hook #'exwm-input--on-pre-command)
|
(add-hook 'pre-command-hook #'exwm-input--on-pre-command)
|
||||||
(add-hook 'post-command-hook #'exwm-input--on-post-command)
|
(add-hook 'post-command-hook #'exwm-input--on-post-command)
|
||||||
|
@ -1019,7 +1010,6 @@ where both ORIGINAL-KEY and SIMULATED-KEY are key sequences."
|
||||||
(defun exwm-input--exit ()
|
(defun exwm-input--exit ()
|
||||||
"Exit the input module."
|
"Exit the input module."
|
||||||
(exwm-input--unset-simulation-keys)
|
(exwm-input--unset-simulation-keys)
|
||||||
(remove-hook 'minibuffer-setup-hook #'exwm-input--on-minibuffer-setup)
|
|
||||||
(remove-hook 'pre-command-hook #'exwm-input--on-pre-command)
|
(remove-hook 'pre-command-hook #'exwm-input--on-pre-command)
|
||||||
(remove-hook 'post-command-hook #'exwm-input--on-post-command)
|
(remove-hook 'post-command-hook #'exwm-input--on-post-command)
|
||||||
(remove-hook 'buffer-list-update-hook #'exwm-input--on-buffer-list-update)
|
(remove-hook 'buffer-list-update-hook #'exwm-input--on-buffer-list-update)
|
||||||
|
|
Loading…
Reference in a new issue