doom-dashboard: improve margin resetting

This commit is contained in:
Henrik Lissner 2017-09-13 20:15:46 +02:00
parent f7e737c1f1
commit 4f7ce35424
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -12,7 +12,7 @@
(defvar +doom-dashboard-widgets '(banner shortmenu loaded) (defvar +doom-dashboard-widgets '(banner shortmenu loaded)
"List of widgets to display in a blank scratch buffer.") "List of widgets to display in a blank scratch buffer.")
(defvar +doom-dashboard--width 0) (defvar +doom-dashboard--width 80)
(defvar +doom-dashboard--height 0) (defvar +doom-dashboard--height 0)
(defvar +doom-dashboard--old-fringe-indicator fringe-indicator-alist) (defvar +doom-dashboard--old-fringe-indicator fringe-indicator-alist)
(defvar +doom-dashboard--old-modeline nil) (defvar +doom-dashboard--old-modeline nil)
@ -96,35 +96,35 @@ whose dimensions may not be fully initialized by the time this is run."
(defun +doom-dashboard-reload (&optional dir) (defun +doom-dashboard-reload (&optional dir)
"Update the DOOM scratch buffer (or create it, if it doesn't exist)." "Update the DOOM scratch buffer (or create it, if it doesn't exist)."
(when (and (not +doom-dashboard-inhibit-refresh) (when (get-buffer-window (doom-fallback-buffer))
(not (window-minibuffer-p (frame-selected-window))) (unless (or +doom-dashboard-inhibit-refresh
(get-buffer-window (doom-fallback-buffer))) (window-minibuffer-p (frame-selected-window)))
(unless +doom-dashboard-modeline (unless +doom-dashboard-modeline
(setq +doom-dashboard--old-modeline mode-line-format (setq +doom-dashboard--old-modeline mode-line-format
+doom-dashboard-modeline +doom-dashboard-modeline
(or (and (featurep! :ui doom-modeline) (or (and (featurep! :ui doom-modeline)
(doom-modeline 'project)) (doom-modeline 'project))
mode-line-format))) mode-line-format)))
(let ((+doom-dashboard--width 80) (let ((old-pwd (or dir default-directory))
(old-pwd (or dir default-directory)) (fallback-buffer (doom-fallback-buffer)))
(fallback-buffer (doom-fallback-buffer))) (with-current-buffer fallback-buffer
(dolist (win (get-buffer-window-list fallback-buffer nil t)) (with-silent-modifications
(set-window-fringes win 0 0) (unless (eq major-mode '+doom-dashboard-mode)
(set-window-margins (+doom-dashboard-mode))
win (max 0 (/ (- (window-total-width win) +doom-dashboard--width) 2)))) (erase-buffer)
(with-current-buffer fallback-buffer (setq default-directory old-pwd)
(with-silent-modifications (let ((+doom-dashboard--height (window-height (get-buffer-window fallback-buffer))))
(unless (eq major-mode '+doom-dashboard-mode) (insert (make-string (max 0 (- (truncate (/ +doom-dashboard--height 2)) 16)) ?\n))
(+doom-dashboard-mode)) (dolist (widget-name +doom-dashboard-widgets)
(erase-buffer) (funcall (intern (format "doom-dashboard-widget--%s" widget-name)))
(setq default-directory old-pwd) (insert "\n")))
(let ((+doom-dashboard--height (window-height))) (unless (button-at (point))
(insert (make-string (max 0 (- (truncate (/ +doom-dashboard--height 2)) 16)) ?\n)) (goto-char (next-button (point-min))))))))
(dolist (widget-name +doom-dashboard-widgets) ;; Update all dashboard windows
(funcall (intern (format "doom-dashboard-widget--%s" widget-name))) (dolist (win (get-buffer-window-list (doom-fallback-buffer) nil t))
(insert "\n"))) (set-window-fringes win 0 0)
(unless (button-at (point)) (set-window-margins
(goto-char (next-button (point-min)))))))) win (max 0 (/ (- (window-total-width win) +doom-dashboard--width) 2)))))
t) t)
;; widgets ;; widgets