Subject: bug#61816: 30.0.50; [PATCH] New user option 'doc-view-svg-honor-theme'

From: Manuel Giraud <[email-masked]>
Date: Thu, 02 Mar 2023 19:20:30 +0100

Eli Zaretskii <[email-masked]> writes:

[...]

> Fine by me, that's what I proposed.

Wow, it is cleaner and works even better (no need to change page to
update colors).  Thanks.
>From 0f3ff5af9610fbf173f07218d652c1be3477dc14 Mon Sep 17 00:00:00 2001
From: Manuel Giraud <[email-masked]>
Date: Thu, 2 Mar 2023 19:16:19 +0100
Subject: [PATCH] Use a face for DocView SVG

* lisp/doc-view.el (doc-view-svg-face): New face for SVG images.
(doc-view-insert-image): Use it.
---
 etc/NEWS         |  6 ++++++
 lisp/doc-view.el | 19 ++++++++-----------
 2 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/etc/NEWS b/etc/NEWS
index 116b60d8b11..88c3f2f0ef4 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -208,6 +208,12 @@ bound to 'C-c C-d' in 'go-ts-mode'.
 When this is non-nil, call the 'man' program synchronously rather than
 asynchronously (which is the default behavior).
 
+** DocView
+
+---
+*** New face 'doc-view-svg-face'.
+This replaces 'doc-view-svg-foreground' and 'doc-view-svg-background'.
+
 
 * New Modes and Packages in Emacs 30.1
 
diff --git a/lisp/doc-view.el b/lisp/doc-view.el
index 0303fec67a6..b14655fb274 100644
--- a/lisp/doc-view.el
+++ b/lisp/doc-view.el
@@ -236,17 +236,14 @@ doc-view-imenu-flatten
   :type 'boolean
   :version "29.1")
 
-(defcustom doc-view-svg-background "white"
-  "Background color for svg images.
+(defface doc-view-svg-face '((t :inherit default))
+  "Face used for SVG images.  Only background and foreground colors
+are used.
 See `doc-view-mupdf-use-svg'."
-  :type 'color
-  :version "29.1")
+  :version "30.1")
 
-(defcustom doc-view-svg-foreground "black"
-  "Foreground color for svg images.
-See `doc-view-mupdf-use-svg'."
-  :type 'color
-  :version "29.1")
+(make-obsolete 'doc-view-svg-background 'doc-view-svg-face "30.1")
+(make-obsolete 'doc-view-svg-foreground 'doc-view-svg-face "30.1")
 
 (defcustom doc-view-ghostscript-options
   '("-dSAFER" ;; Avoid security problems when rendering files from untrusted
@@ -1602,8 +1599,8 @@ doc-view-insert-image
                           (unless (member :transform-smoothing args)
                             (setq args `(,@args :transform-smoothing t)))
                           (when (eq doc-view--image-type 'svg)
-                            (setq args `(,@args :background ,doc-view-svg-background
-                                               :foreground ,doc-view-svg-foreground)))
+                            (setq args `(,@args :background ,(face-background 'doc-view-svg-face)
+                                                :foreground ,(face-foreground 'doc-view-svg-face))))
 			  (apply #'create-image file doc-view--image-type nil args))))
 	     (slice (doc-view-current-slice))
 	     (img-width (and image (car (image-size image))))
-- 
2.39.1

-- 
Manuel Giraud