From d225f191a908346535cf4525a4c6c56d93a84b31 Mon Sep 17 00:00:00 2001 From: Chris Feng Date: Sat, 30 Jul 2016 10:17:57 +0800 Subject: [PATCH] Fit the *Completions* buffer * exwm-workspace.el (exwm-workspace--on-minibuffer-setup): Work around the *Completions* buffer not getting fitted problem. * exwm.el (exwm-enable): Enable `window-resize-pixelwise'. --- exwm-workspace.el | 12 +++++++++++- exwm.el | 3 ++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/exwm-workspace.el b/exwm-workspace.el index b2a0cab..b425f92 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 7de2297..4c156dc 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)