From ba0ddb71ee4d8b2f233994bc550ed98c84c2a519 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 22 Mar 2021 15:42:38 -0400 Subject: [PATCH] Reload pdfs when pdf-view-midnight-colors changes Co-authored-by: tecosaur --- modules/tools/pdf/config.el | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/modules/tools/pdf/config.el b/modules/tools/pdf/config.el index f32bc01a9..0d0ff9987 100644 --- a/modules/tools/pdf/config.el +++ b/modules/tools/pdf/config.el @@ -81,6 +81,29 @@ ;; HACK Fix #1107: flickering pdfs when evil-mode is enabled (setq-hook! 'pdf-view-mode-hook evil-normal-state-cursor (list nil)) + ;; HACK Refresh FG/BG for pdfs when `pdf-view-midnight-colors' is changed by a + ;; theme or with `setq!'. + ;; TODO PR this upstream? + (defun +pdf-reload-midnight-minor-mode-h () + (when pdf-view-midnight-minor-mode + (pdf-info-setoptions + :render/foreground (car pdf-view-midnight-colors) + :render/background (cdr pdf-view-midnight-colors) + :render/usecolors t) + (pdf-cache-clear-images) + (pdf-view-redisplay t))) + (put 'pdf-view-midnight-colors 'custom-set + (lambda (sym value) + (set-default sym value) + (dolist (buffer (doom-buffers-in-mode 'pdf-view-mode)) + (with-current-buffer buffer + (if (get-buffer-window buffer) + (+pdf-reload-midnight-minor-mode-h) + ;; Defer refresh for buffers that aren't visible, to avoid + ;; blocking Emacs for too long while changing themes. + (add-hook 'doom-switch-buffer-hook #'+pdf-reload-midnight-minor-mode-h + nil 'local)))))) + ;; Add retina support for MacOS users (eval-when! IS-MAC (defvar +pdf--scaled-p nil)