diff options
Diffstat (limited to 'src/xsettings.c')
| -rw-r--r-- | src/xsettings.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/xsettings.c b/src/xsettings.c index d7af68f1c5f..10afd7d15c8 100644 --- a/src/xsettings.c +++ b/src/xsettings.c | |||
| @@ -667,8 +667,23 @@ apply_xft_settings (struct x_display_info *dpyinfo, | |||
| 667 | } | 667 | } |
| 668 | #endif | 668 | #endif |
| 669 | 669 | ||
| 670 | if ((settings->seen & SEEN_DPI) != 0 && oldsettings.dpi != settings->dpi | 670 | if ((settings->seen & SEEN_DPI) != 0 |
| 671 | && settings->dpi > 0) | 671 | && settings->dpi > 0 |
| 672 | /* The following conjunct avoids setting `changed' to true when | ||
| 673 | old and new dpi settings do not differ "substantially". | ||
| 674 | Otherwise, the dynamic-setting Elisp code may process all sorts | ||
| 675 | of unrelated settings that override users' font customizations, | ||
| 676 | among others. Compare: | ||
| 677 | |||
| 678 | http://lists.gnu.org/archive/html/emacs-devel/2016-05/msg00557.html | ||
| 679 | http://lists.gnu.org/archive/html/bug-gnu-emacs/2016-12/msg00820.html | ||
| 680 | |||
| 681 | As soon as the dynamic-settings code has been tested and | ||
| 682 | verified, this Emacs 25.2 workaround should be removed. */ | ||
| 683 | && ((oldsettings.dpi >= settings->dpi | ||
| 684 | && (oldsettings.dpi - settings->dpi) > 2) | ||
| 685 | || ((settings->dpi > oldsettings.dpi) | ||
| 686 | && (settings->dpi - oldsettings.dpi) > 2))) | ||
| 672 | { | 687 | { |
| 673 | FcPatternDel (pat, FC_DPI); | 688 | FcPatternDel (pat, FC_DPI); |
| 674 | FcPatternAddDouble (pat, FC_DPI, settings->dpi); | 689 | FcPatternAddDouble (pat, FC_DPI, settings->dpi); |