* bug#61816: 30.0.50; [PATCH] New user option 'doc-view-svg-honor-theme'
@ 2023-02-26 15:33 Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-03-02 12:39 ` Eli Zaretskii
0 siblings, 1 reply; 13+ messages in thread
From: Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-02-26 15:33 UTC (permalink / raw)
To: 61816
[-- Attachment #1: Type: text/plain, Size: 100 bytes --]
Hi,
Here is a new user option to make DocView, with SVG backend, honor the
current theme colors.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-New-user-option-doc-view-svg-honor-theme.patch --]
[-- Type: text/x-patch, Size: 3100 bytes --]
From c8bf763dc0392ef9059044ff724aca825cd450be Mon Sep 17 00:00:00 2001
From: Manuel Giraud <manuel@ledu-giraud.fr>
Date: Sun, 26 Feb 2023 16:25:17 +0100
Subject: [PATCH] New user option 'doc-view-svg-honor-theme'
* lisp/doc-view.el (doc-view-svg-honor-theme): New user option
that makes SVG in DocView to follow the current theme.
(doc-view-insert-image): Use it.
---
etc/NEWS | 8 ++++++++
lisp/doc-view.el | 19 +++++++++++++++----
2 files changed, 23 insertions(+), 4 deletions(-)
diff --git a/etc/NEWS b/etc/NEWS
index 4b0e4e6bd46..ea8297f932e 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -192,6 +192,14 @@ This command adds a docstring comment to the current defun. If a
comment already exists, point is only moved to the comment. It is
bound to 'C-c C-d' in 'go-ts-mode'.
+** DocView
+
+---
+*** New user option 'doc-view-svg-honor-theme'
+When set to non-nil, this option tells DocView to follow the current
+theme background and foreground colors instead of
+'doc-view-svg-background' and 'doc-view-svg-foreground'.
+
\f
* New Modes and Packages in Emacs 30.1
diff --git a/lisp/doc-view.el b/lisp/doc-view.el
index 0303fec67a6..5d2348a023f 100644
--- a/lisp/doc-view.el
+++ b/lisp/doc-view.el
@@ -237,17 +237,25 @@ doc-view-imenu-flatten
:version "29.1")
(defcustom doc-view-svg-background "white"
- "Background color for svg images.
+ "Background color for svg images. This is bypassed if
+`doc-view-svg-honor-theme' is non-nil.
See `doc-view-mupdf-use-svg'."
:type 'color
:version "29.1")
(defcustom doc-view-svg-foreground "black"
- "Foreground color for svg images.
+ "Foreground color for svg images. This is bypassed if
+`doc-view-svg-honor-theme' is non-nil.
See `doc-view-mupdf-use-svg'."
:type 'color
:version "29.1")
+(defcustom doc-view-svg-honor-theme nil
+ "Does SVG foreground and background color honor the current
+theme."
+ :type 'boolean
+ :version "30.1")
+
(defcustom doc-view-ghostscript-options
'("-dSAFER" ;; Avoid security problems when rendering files from untrusted
;; sources.
@@ -1602,8 +1610,11 @@ 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)))
+ (if doc-view-svg-honor-theme
+ (setq args `(,@args :background ,(face-background 'default)
+ :foreground ,(face-foreground 'default)))
+ (setq args `(,@args :background ,doc-view-svg-background
+ :foreground ,doc-view-svg-foreground))))
(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
[-- Attachment #3: Type: text/plain, Size: 8715 bytes --]
In GNU Emacs 30.0.50 (build 1, x86_64-unknown-openbsd7.2, cairo version
1.17.8) of 2023-02-25 built on computer
Repository revision: 50b55656b9c5ce0d7940bec245f2d9725378d0a0
Repository branch: mgi/image-dired-sha1-content
Windowing system distributor 'The X.Org Foundation', version 11.0.12101006
System Description: OpenBSD computer 7.2 GENERIC.MP#1052 amd64
Configured using:
'configure --prefix=/home/manuel/emacs --bindir=/home/manuel/bin
--with-x-toolkit=no --without-sound --without-compress-install
CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib'
Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
LCMS2 LIBOTF LIBXML2 MODULES NOTIFY KQUEUE OLDXMENU PDUMPER PNG RSVG
SQLITE3 THREADS TIFF TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM ZLIB
Important settings:
value of $LC_ALL: en_US.UTF-8
locale-coding-system: utf-8-unix
Major mode: Dired by name
Minor modes in effect:
global-git-commit-mode: t
magit-auto-revert-mode: t
gnus-dired-mode: t
display-time-mode: t
display-battery-mode: t
server-mode: t
shell-dirtrack-mode: t
repeat-mode: t
desktop-save-mode: t
global-eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
buffer-read-only: t
line-number-mode: t
indent-tabs-mode: t
transient-mark-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
Load-path shadows:
/home/manuel/.emacs.d/elpa/ef-themes-0.10.0/theme-loaddefs hides /home/manuel/emacs/share/emacs/30.0.50/lisp/theme-loaddefs
/home/manuel/.emacs.d/elpa/transient-0.3.7/transient hides /home/manuel/emacs/share/emacs/30.0.50/lisp/transient
Features:
(shadow emacsbug ef-dark-theme ffap gnus-dup display-line-numbers
debbugs-gnu debbugs-compat debbugs soap-client warnings rng-xsd
xsd-regexp doctor ef-summer-theme ef-themes descr-text two-column
completion dos-w32 find-cmd find-dired vc-annotate ox-odt rng-loc
rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns
nxml-enc xmltok nxml-util ox-latex ox-icalendar org-agenda ox-html table
ox-ascii ox-publish ox w3m-cookie w3m-form w3m-symbol w3m-filter
w3m-search w3m-bookmark w3m-tabmenu w3m-session shortdoc ibuf-ext
ibuffer ibuffer-loaddefs mailalias smtpmail ispell whitespace
magit-patch pulse flow-fill gnus-fun sort shr-color mail-extr textsec
uni-scripts idna-mapping ucs-normalize uni-confusable textsec-check
gnus-async gnus-bcklg qp gnus-ml gnus-topic mm-archive url-http url-gw
url-cache url-auth utf-7 imap rfc2104 nndoc nndraft nnmh network-stream
nsm nnfolder nnml gnus-agent gnus-srvr gnus-score score-mode nnvirtual
nntp gnus-cache nnrss w3m w3m-hist bookmark-w3m w3m-ems w3m-favicon
w3m-image w3m-fb tab-line w3m-proc w3m-util cl-print magit-extras
face-remap magit-submodule magit-obsolete magit-blame magit-stash
magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone
magit-remote magit-commit magit-sequence magit-notes magit-worktree
magit-tag magit-merge magit-branch magit-reset magit-files magit-refs
magit-status magit magit-repos magit-apply magit-wip magit-log
which-func magit-diff smerge-mode diff git-commit log-edit add-log
magit-core magit-autorevert magit-margin magit-transient magit-process
with-editor magit-mode transient magit-git magit-section magit-utils
dash misearch multi-isearch dabbrev image-dired-dired tabify cus-start
image-file image-converter image-dired image-dired-tags
image-dired-external image-dired-util help-fns radix-tree gnus-cite
org-indent vc-dir ewoc reveal sh-script executable texinfo
texinfo-loaddefs org-element org-persist org-id org-refile avl-tree
oc-basic ol-eww ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect
ol-docview ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi doc-view
jka-compr vc-hg conf-mode css-mode treesit smie sgml-mode facemenu imenu
eww xdg url-queue mm-url vc-cvs vc-rcs log-view pcvs-util make-mode
image-mode exif vc gnus-dired bug-reference paredit edmacro autorevert
filenotify vc-git diff-mode emacs-news-mode time battery exwm-randr
xcb-randr exwm-config ido exwm exwm-input xcb-keysyms xcb-xkb
exwm-manage exwm-floating xcb-cursor xcb-render exwm-layout
exwm-workspace exwm-core xcb-ewmh xcb-icccm xcb xcb-xproto xcb-types
xcb-debug kmacro server modus-operandi-theme modus-themes ytdious mingus
libmpdee reporter edebug debug backtrace transmission color calc-bin
calc-ext calc calc-loaddefs rect calc-macs w3m-load supercite regi
ebdb-message ebdb-gnus gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime
smime gnutls dig gnus-sum shr pixel-fill kinsoku url-file svg dom
gnus-group gnus-undo gnus-start gnus-dbus gnus-cloud nnimap nnmail
mail-source utf7 nnoo gnus-spec gnus-int gnus-range message sendmail
yank-media puny rfc822 mml mml-sec epa epg rfc6068 epg-config mm-decode
mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums
gmm-utils mailheader gnus-win gnus nnheader gnus-util mail-utils range
mm-util mail-prsvr ebdb-mua ebdb-com crm ebdb-format ebdb mailabbrev
eieio-opt cl-extra help-mode speedbar ezimage dframe eieio-base pcase
timezone org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro
org-src ob-comint org-pcomplete org-list org-footnote org-faces
org-entities ob-emacs-lisp ob-core ob-eval org-cycle org-table ol
org-fold org-fold-core org-keys oc org-loaddefs find-func org-version
org-compat org-macs visual-basic-mode cl web-mode derived disp-table
erlang-start smart-tabs-mode skeleton cc-mode cc-fonts cc-guess cc-menus
cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs slime-asdf grep
slime-tramp tramp rx tramp-loaddefs trampver tramp-integration cus-edit
cus-load wid-edit files-x tramp-compat shell pcomplete parse-time
iso8601 time-date ls-lisp format-spec slime-fancy slime-indentation
slime-cl-indent cl-indent slime-trace-dialog slime-fontifying-fu
slime-package-fu slime-references slime-compiler-notes-tree advice
slime-scratch slime-presentations bridge slime-macrostep macrostep
slime-mdot-fu slime-enclosing-context slime-fuzzy slime-fancy-trace
slime-fancy-inspector slime-c-p-c slime-editing-commands slime-autodoc
slime-repl slime-parse slime apropos compile text-property-search etags
fileloop generator xref project arc-mode archive-mode noutline outline
icons pp comint ansi-osc ansi-color ring hyperspec thingatpt
slime-autoloads view mule-util cal-china lunar solar cal-dst cal-bahai
cal-islam cal-hebrew holidays holiday-loaddefs vc-dispatcher vc-svn appt
diary-lib diary-loaddefs cal-menu calendar cal-loaddefs dired-aux
dired-x dired dired-loaddefs notifications dbus xml repeat easy-mmode
desktop frameset osm-autoloads rust-mode-autoloads compat-autoloads
ebdb-autoloads magit-autoloads debbugs-autoloads git-commit-autoloads
magit-section-autoloads ef-themes-autoloads with-editor-autoloads
paredit-autoloads dash-autoloads ytdious-autoloads
transmission-autoloads transient-autoloads exwm-autoloads
hyperbole-autoloads detached-autoloads info package browse-url url
url-proxy url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x
map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc
iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode lisp-mode prog-mode register
page tab-bar menu-bar rfn-eshadow isearch easymenu timer select
scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
frame minibuffer nadvice seq simple cl-generic indonesian philippine
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp
files window text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget keymap hashtable-print-readable backquote
threads dbusbind kqueue lcms2 dynamic-setting system-font-setting
font-render-setting cairo xinput2 x multi-tty make-network-process
emacs)
Memory information:
((conses 16 1512155 229321)
(symbols 48 82894 34)
(strings 32 400421 16188)
(string-bytes 1 11938432)
(vectors 16 205097)
(vector-slots 8 3788745 177059)
(floats 8 1337 1048)
(intervals 56 78970 13761)
(buffers 984 173))
--
Manuel Giraud
^ permalink raw reply related [flat|nested] 13+ messages in thread
* bug#61816: 30.0.50; [PATCH] New user option 'doc-view-svg-honor-theme'
2023-02-26 15:33 bug#61816: 30.0.50; [PATCH] New user option 'doc-view-svg-honor-theme' Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-03-02 12:39 ` Eli Zaretskii
2023-03-02 13:12 ` Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 13+ messages in thread
From: Eli Zaretskii @ 2023-03-02 12:39 UTC (permalink / raw)
To: Manuel Giraud; +Cc: 61816
> Date: Sun, 26 Feb 2023 16:33:02 +0100
> From: Manuel Giraud via "Bug reports for GNU Emacs,
> the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
>
> Here is a new user option to make DocView, with SVG backend, honor the
> current theme colors.
I have nothing against the feature, but wouldn't it be better to
modify DocView to use faces for this, and then themes could override
those faces?
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#61816: 30.0.50; [PATCH] New user option 'doc-view-svg-honor-theme'
2023-03-02 12:39 ` Eli Zaretskii
@ 2023-03-02 13:12 ` Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-03-02 13:56 ` Eli Zaretskii
0 siblings, 1 reply; 13+ messages in thread
From: Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-03-02 13:12 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 61816
Eli Zaretskii <eliz@gnu.org> writes:
>> Date: Sun, 26 Feb 2023 16:33:02 +0100
>> From: Manuel Giraud via "Bug reports for GNU Emacs,
>> the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
>>
>> Here is a new user option to make DocView, with SVG backend, honor the
>> current theme colors.
>
> I have nothing against the feature, but wouldn't it be better to
> modify DocView to use faces for this, and then themes could override
> those faces?
Why not but I have two issues with this:
- we had to set those new faces in every Emacs' themes and also wait
for any theme maker to use them
- those are really just two colors not real faces as the rendering
is controlled by an external tool anyway
--
Manuel Giraud
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#61816: 30.0.50; [PATCH] New user option 'doc-view-svg-honor-theme'
2023-03-02 13:12 ` Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-03-02 13:56 ` Eli Zaretskii
2023-03-02 15:40 ` Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 13+ messages in thread
From: Eli Zaretskii @ 2023-03-02 13:56 UTC (permalink / raw)
To: Manuel Giraud; +Cc: 61816
> From: Manuel Giraud <manuel@ledu-giraud.fr>
> Cc: 61816@debbugs.gnu.org
> Date: Thu, 02 Mar 2023 14:12:43 +0100
>
> Eli Zaretskii <eliz@gnu.org> writes:
>
> >> Date: Sun, 26 Feb 2023 16:33:02 +0100
> >> From: Manuel Giraud via "Bug reports for GNU Emacs,
> >> the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
> >>
> >> Here is a new user option to make DocView, with SVG backend, honor the
> >> current theme colors.
> >
> > I have nothing against the feature, but wouldn't it be better to
> > modify DocView to use faces for this, and then themes could override
> > those faces?
>
> Why not but I have two issues with this:
>
> - we had to set those new faces in every Emacs' themes and also wait
> for any theme maker to use them
>
> - those are really just two colors not real faces as the rendering
> is controlled by an external tool anyway
You are right, of course. It just feels strange to need to cater to
themes in a core package, when the way themes are supposed to
customize Emacs exists and can be used in this case as well.
Alternatively, maybe themes should have settings for features such as
this one?
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#61816: 30.0.50; [PATCH] New user option 'doc-view-svg-honor-theme'
2023-03-02 13:56 ` Eli Zaretskii
@ 2023-03-02 15:40 ` Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-03-02 15:51 ` Eli Zaretskii
2023-03-02 15:51 ` Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 2 replies; 13+ messages in thread
From: Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-03-02 15:40 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 61816
Eli Zaretskii <eliz@gnu.org> writes:
[...]
> You are right, of course. It just feels strange to need to cater to
> themes in a core package, when the way themes are supposed to
> customize Emacs exists and can be used in this case as well.
>
> Alternatively, maybe themes should have settings for features such as
> this one?
Maybe, we could customize doc-view-svg-\(fore\|back\)ground in the
official Emacs themes for a start, WDYT?
--
Manuel Giraud
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#61816: 30.0.50; [PATCH] New user option 'doc-view-svg-honor-theme'
2023-03-02 15:40 ` Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-03-02 15:51 ` Eli Zaretskii
2023-03-02 15:57 ` Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-03-02 15:51 ` Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors
1 sibling, 1 reply; 13+ messages in thread
From: Eli Zaretskii @ 2023-03-02 15:51 UTC (permalink / raw)
To: Manuel Giraud; +Cc: 61816
> From: Manuel Giraud <manuel@ledu-giraud.fr>
> Cc: 61816@debbugs.gnu.org
> Date: Thu, 02 Mar 2023 16:40:53 +0100
>
> Eli Zaretskii <eliz@gnu.org> writes:
>
> [...]
>
> > You are right, of course. It just feels strange to need to cater to
> > themes in a core package, when the way themes are supposed to
> > customize Emacs exists and can be used in this case as well.
> >
> > Alternatively, maybe themes should have settings for features such as
> > this one?
>
> Maybe, we could customize doc-view-svg-\(fore\|back\)ground in the
> official Emacs themes for a start, WDYT?
Isn't that what your original patch does?
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#61816: 30.0.50; [PATCH] New user option 'doc-view-svg-honor-theme'
2023-03-02 15:51 ` Eli Zaretskii
@ 2023-03-02 15:57 ` Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 0 replies; 13+ messages in thread
From: Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-03-02 15:57 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 61816
Eli Zaretskii <eliz@gnu.org> writes:
>> Maybe, we could customize doc-view-svg-\(fore\|back\)ground in the
>> official Emacs themes for a start, WDYT?
>
> Isn't that what your original patch does?
No my original patch just bypasses doc-view-svg-\(fore\|back\)ground and
retrieves the default face colors.
See my other message: I think that it is the way to go.
--
Manuel Giraud
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#61816: 30.0.50; [PATCH] New user option 'doc-view-svg-honor-theme'
2023-03-02 15:40 ` Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-03-02 15:51 ` Eli Zaretskii
@ 2023-03-02 15:51 ` Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-03-02 16:32 ` Eli Zaretskii
2023-03-03 2:28 ` Visuwesh
1 sibling, 2 replies; 13+ messages in thread
From: Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-03-02 15:51 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 61816
Manuel Giraud <manuel@ledu-giraud.fr> writes:
> Eli Zaretskii <eliz@gnu.org> writes:
>
> [...]
>
>> You are right, of course. It just feels strange to need to cater to
>> themes in a core package, when the way themes are supposed to
>> customize Emacs exists and can be used in this case as well.
>>
>> Alternatively, maybe themes should have settings for features such as
>> this one?
>
> Maybe, we could customize doc-view-svg-\(fore\|back\)ground in the
> official Emacs themes for a start, WDYT?
... and in order to be able to use 'custom-theme-set-faces', we could
have a 'doc-view-svg-face' (used only for its foreground and
background). I'm caching you up slowly 😅
--
Manuel Giraud
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#61816: 30.0.50; [PATCH] New user option 'doc-view-svg-honor-theme'
2023-03-02 15:51 ` Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-03-02 16:32 ` Eli Zaretskii
2023-03-02 18:20 ` Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-03-03 2:28 ` Visuwesh
1 sibling, 1 reply; 13+ messages in thread
From: Eli Zaretskii @ 2023-03-02 16:32 UTC (permalink / raw)
To: Manuel Giraud; +Cc: 61816
> From: Manuel Giraud <manuel@ledu-giraud.fr>
> Cc: 61816@debbugs.gnu.org
> Date: Thu, 02 Mar 2023 16:51:59 +0100
>
> Manuel Giraud <manuel@ledu-giraud.fr> writes:
>
> > Eli Zaretskii <eliz@gnu.org> writes:
> >
> > [...]
> >
> >> You are right, of course. It just feels strange to need to cater to
> >> themes in a core package, when the way themes are supposed to
> >> customize Emacs exists and can be used in this case as well.
> >>
> >> Alternatively, maybe themes should have settings for features such as
> >> this one?
> >
> > Maybe, we could customize doc-view-svg-\(fore\|back\)ground in the
> > official Emacs themes for a start, WDYT?
>
> ... and in order to be able to use 'custom-theme-set-faces', we could
> have a 'doc-view-svg-face' (used only for its foreground and
> background). I'm caching you up slowly 😅
Fine by me, that's what I proposed.
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#61816: 30.0.50; [PATCH] New user option 'doc-view-svg-honor-theme'
2023-03-02 16:32 ` Eli Zaretskii
@ 2023-03-02 18:20 ` Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-03-09 10:06 ` Eli Zaretskii
0 siblings, 1 reply; 13+ messages in thread
From: Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-03-02 18:20 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 61816
[-- Attachment #1: Type: text/plain, Size: 177 bytes --]
Eli Zaretskii <eliz@gnu.org> 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.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Use-a-face-for-DocView-SVG.patch --]
[-- Type: text/x-patch, Size: 2609 bytes --]
From 0f3ff5af9610fbf173f07218d652c1be3477dc14 Mon Sep 17 00:00:00 2001
From: Manuel Giraud <manuel@ledu-giraud.fr>
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'.
+
\f
* 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
[-- Attachment #3: Type: text/plain, Size: 18 bytes --]
--
Manuel Giraud
^ permalink raw reply related [flat|nested] 13+ messages in thread
* bug#61816: 30.0.50; [PATCH] New user option 'doc-view-svg-honor-theme'
2023-03-02 15:51 ` Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-03-02 16:32 ` Eli Zaretskii
@ 2023-03-03 2:28 ` Visuwesh
2023-03-03 7:31 ` Eli Zaretskii
1 sibling, 1 reply; 13+ messages in thread
From: Visuwesh @ 2023-03-03 2:28 UTC (permalink / raw)
To: Manuel Giraud; +Cc: Eli Zaretskii, 61816
[வியாழன் மார்ச் 02, 2023] Manuel Giraud via "Bug reports for GNU Emacs, the Swiss army knife of text editors" wrote:
> Manuel Giraud <manuel@ledu-giraud.fr> writes:
>
>> Eli Zaretskii <eliz@gnu.org> writes:
>>
>> [...]
>>
>>> You are right, of course. It just feels strange to need to cater to
>>> themes in a core package, when the way themes are supposed to
>>> customize Emacs exists and can be used in this case as well.
>>>
>>> Alternatively, maybe themes should have settings for features such as
>>> this one?
>>
>> Maybe, we could customize doc-view-svg-\(fore\|back\)ground in the
>> official Emacs themes for a start, WDYT?
>
> ... and in order to be able to use 'custom-theme-set-faces', we could
> have a 'doc-view-svg-face' (used only for its foreground and
> background). I'm caching you up slowly 😅
Themes can also use `custom-theme-set-variables' so I did not see a need
to introduce a face when I made the patch back then.
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#61816: 30.0.50; [PATCH] New user option 'doc-view-svg-honor-theme'
2023-03-03 2:28 ` Visuwesh
@ 2023-03-03 7:31 ` Eli Zaretskii
0 siblings, 0 replies; 13+ messages in thread
From: Eli Zaretskii @ 2023-03-03 7:31 UTC (permalink / raw)
To: Visuwesh; +Cc: manuel, 61816
> From: Visuwesh <visuweshm@gmail.com>
> Cc: Eli Zaretskii <eliz@gnu.org>, 61816@debbugs.gnu.org
> Date: Fri, 03 Mar 2023 07:58:07 +0530
>
> [வியாழன் மார்ச் 02, 2023] Manuel Giraud via "Bug reports for GNU Emacs, the Swiss army knife of text editors" wrote:
>
> > Manuel Giraud <manuel@ledu-giraud.fr> writes:
> >
> >> Eli Zaretskii <eliz@gnu.org> writes:
> >>
> >> [...]
> >>
> >>> You are right, of course. It just feels strange to need to cater to
> >>> themes in a core package, when the way themes are supposed to
> >>> customize Emacs exists and can be used in this case as well.
> >>>
> >>> Alternatively, maybe themes should have settings for features such as
> >>> this one?
> >>
> >> Maybe, we could customize doc-view-svg-\(fore\|back\)ground in the
> >> official Emacs themes for a start, WDYT?
> >
> > ... and in order to be able to use 'custom-theme-set-faces', we could
> > have a 'doc-view-svg-face' (used only for its foreground and
> > background). I'm caching you up slowly 😅
>
> Themes can also use `custom-theme-set-variables' so I did not see a need
> to introduce a face when I made the patch back then.
The problem with custom-theme-set-variables is that themes have no
clue which variables to customize: there are too many of them, and
those that themes should customize don't stand out in any way, do
they?
Faces are better because themes always pay attention to them.
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2023-03-09 10:06 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-02-26 15:33 bug#61816: 30.0.50; [PATCH] New user option 'doc-view-svg-honor-theme' Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-03-02 12:39 ` Eli Zaretskii
2023-03-02 13:12 ` Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-03-02 13:56 ` Eli Zaretskii
2023-03-02 15:40 ` Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-03-02 15:51 ` Eli Zaretskii
2023-03-02 15:57 ` Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-03-02 15:51 ` Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-03-02 16:32 ` Eli Zaretskii
2023-03-02 18:20 ` Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-03-09 10:06 ` Eli Zaretskii
2023-03-03 2:28 ` Visuwesh
2023-03-03 7:31 ` Eli Zaretskii
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.