Work around reporting a dpi change in apply_xft_settings
* src/xsettings.c (apply_xft_settings): Don't report a change when dpi settings do not differ substantially.
This commit is contained in:
parent
cf1f9852d0
commit
86a297a43d
1 changed files with 17 additions and 2 deletions
|
@ -667,8 +667,23 @@ apply_xft_settings (struct x_display_info *dpyinfo,
|
|||
}
|
||||
#endif
|
||||
|
||||
if ((settings->seen & SEEN_DPI) != 0 && oldsettings.dpi != settings->dpi
|
||||
&& settings->dpi > 0)
|
||||
if ((settings->seen & SEEN_DPI) != 0
|
||||
&& settings->dpi > 0
|
||||
/* The following conjunct avoids setting `changed' to true when
|
||||
old and new dpi settings do not differ "substantially".
|
||||
Otherwise, the dynamic-setting Elisp code may process all sorts
|
||||
of unrelated settings that override users' font customizations,
|
||||
among others. Compare:
|
||||
|
||||
http://lists.gnu.org/archive/html/emacs-devel/2016-05/msg00557.html
|
||||
http://lists.gnu.org/archive/html/bug-gnu-emacs/2016-12/msg00820.html
|
||||
|
||||
As soon as the dynamic-settings code has been tested and
|
||||
verified, this Emacs 25.2 workaround should be removed. */
|
||||
&& ((oldsettings.dpi >= settings->dpi
|
||||
&& (oldsettings.dpi - settings->dpi) > 2)
|
||||
|| ((settings->dpi > oldsettings.dpi)
|
||||
&& (settings->dpi - oldsettings.dpi) > 2)))
|
||||
{
|
||||
FcPatternDel (pat, FC_DPI);
|
||||
FcPatternAddDouble (pat, FC_DPI, settings->dpi);
|
||||
|
|
Loading…
Add table
Reference in a new issue