bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#41852: 27.0.50; text-scale commands don't scale header of tabulated-


From: Stefan Kangas
Subject: bug#41852: 27.0.50; text-scale commands don't scale header of tabulated-list-mode
Date: Mon, 19 Oct 2020 18:21:06 +0000

Eli Zaretskii <eliz@gnu.org> writes:

> It's probably a good feature, but it has at least one caveat: setting
> that variable non-nil will cause not only the header-line face to be
> rescaled, it will also cause any face that inherits from header-line
> to be rescaled.  Not sure if this is a problem, but it should be
> called out in NEWS, at least.
[...]
> This should mention modes that arrange their display in tabular form
> below the header-line, such as tabulated-list-mode and its
> descendants.  Otherwise the last sentence and the goal of the feature
> itself are left on a level that's too abstract.

I've made an attempt to improve this in the attached.

>> -(make-variable-buffer-local 'text-scale-mode-remapping)
>> +(make-obsolete-variable 'text-scale-mode-remapping "no longer used." "28.1")
>> +
>> +(defvar text-scale-mode--remappings nil
>> +  "List of current remapping cookies for `text-scale-mode'.")
>
> Why this change?

This is to give the variable the correct plural form, and to mark it
internal by giving it the double dash.

>> +(defvar text-scale-mode-header-line nil
>
> I suggest to name this text-scale-remap-header-line-face.

Done.

>> +  "If non-nil, also change text height of the header line.")
>
> Not just height, the size.  Also, please say "`header-line' face", and
> mention that all the faces that inherit from it will be affected as
> well.

Done.

>> +(defun face-remap--remap-face (sym)
>> +  (push (face-remap-add-relative sym
>> +                       :height
>> +                       (expt text-scale-mode-step
>> +                             text-scale-mode-amount))
>> +        text-scale-mode--remappings))
>
> I wonder whether this is all there is to it.  The display code doesn't
> automatically use the remapped face in all cases, we need to code that
> "by hand" in each and every case.  So far we've been doing that only
> for the default face; I wonder if we'll have to do something similar
> for header-line on the C level...  Please be sure to test this in
> every possible way, including cursor motion around such rescaled
> header-lines etc.

I've done my best to test it some more, including cursor motion around
the adjusted header line, as well as scrolling the window left and right
and up and down (using mouse and keyboard).  I've not been able to
produce any failures so far.  Please let me know if you have any more
ideas for what I could do to try to break it.

Attachment: 0001-Make-text-scale-mode-optionally-adjust-header-line-f.patch
Description: Text Data

Attachment: 0002-Set-text-scale-mode-header-line-in-tabulated-list-mo.patch
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]