diff --git a/exwm-workspace.el b/exwm-workspace.el index b2a0cab15..b425f9249 100644 --- a/exwm-workspace.el +++ b/exwm-workspace.el @@ -986,7 +986,17 @@ Please check `exwm-workspace--minibuffer-own-frame-p' first." ;; Exclude non-graphical frames. (frame-parameter nil 'exwm-outer-id)) (add-hook 'post-command-hook #'exwm-workspace--update-minibuffer-height) - (exwm-workspace--show-minibuffer))) + (exwm-workspace--show-minibuffer)) + ;; FIXME: This is a temporary fix for the *Completions* buffer not + ;; being correctly fitted by its displaying window. As with + ;; `exwm-workspace--display-buffer', the problem is caused by + ;; the fact that the minibuffer (rather than the workspace) + ;; frame is the 'selected frame'. `get-buffer-window' will + ;; fail to retrieve the correct window. It's likely there are + ;; other related issues. + (let ((window (get-buffer-window "*Completions*" exwm-workspace--current))) + (when window + (fit-window-to-buffer window nil nil nil nil t)))) (defun exwm-workspace--on-minibuffer-exit () "Run in minibuffer-exit-hook to hide the minibuffer container." diff --git a/exwm.el b/exwm.el index 7de22972f..4c156dcd2 100644 --- a/exwm.el +++ b/exwm.el @@ -679,7 +679,8 @@ This hook is only run when EXWM is started with emacsclient.") (dolist (i exwm-blocking-subrs) (advice-remove i #'exwm--server-eval-at))) (_ ;enable EXWM - (setq frame-resize-pixelwise t) ;mandatory; before init + (setq frame-resize-pixelwise t ;mandatory; before init + window-resize-pixelwise t) (add-hook 'window-setup-hook #'exwm-init t) ;for Emacs (add-hook 'after-make-frame-functions #'exwm-init t) ;for Emacs Client (add-hook 'kill-emacs-hook #'exwm--server-stop)