* bug#36284: 27.0.50; [Cairo] Setting default face :family attribute in the init script is broken @ 2019-06-19 1:32 Dmitry Gutov 2019-06-19 3:37 ` YAMAMOTO Mitsuharu 0 siblings, 1 reply; 4+ messages in thread From: Dmitry Gutov @ 2019-06-19 1:32 UTC (permalink / raw) To: 36284 When using a build with Cairo, putting (set-face-attribute 'default nil :height 113 :family "Inconsolata LGC") into the init script doesn't have any effect. Evaluating (face-attribute 'default :family) in the new session after that still returns "Ubuntu Mono". However, if I evaluate the set-face-attribute call form later in the new frame, the font changes successfully. In GNU Emacs 27.0.50 (build 68, x86_64-pc-linux-gnu, GTK+ Version 3.22.30, cairo version 1.15.10) of 2019-06-19 built on zappa Repository revision: 922121e7ddbc107da14ea9c1280d15c828e85063 Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12001000 System Description: Ubuntu 18.04.2 LTS ^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#36284: 27.0.50; [Cairo] Setting default face :family attribute in the init script is broken 2019-06-19 1:32 bug#36284: 27.0.50; [Cairo] Setting default face :family attribute in the init script is broken Dmitry Gutov @ 2019-06-19 3:37 ` YAMAMOTO Mitsuharu 2019-06-19 10:47 ` Dmitry Gutov 0 siblings, 1 reply; 4+ messages in thread From: YAMAMOTO Mitsuharu @ 2019-06-19 3:37 UTC (permalink / raw) To: Dmitry Gutov; +Cc: 36284 On Wed, 19 Jun 2019 10:32:24 +0900, Dmitry Gutov wrote: > > When using a build with Cairo, putting > > (set-face-attribute 'default nil :height 113 :family "Inconsolata LGC") > > into the init script doesn't have any effect. > > Evaluating (face-attribute 'default :family) in the new session after > that still returns "Ubuntu Mono". > > However, if I evaluate the set-face-attribute call form later in the new > frame, the font changes successfully. It seems that some changes I made to xsetting.c in order to remove dependency on libXft was too naive. For this particular problem, the patch below would work. For stricter consistency with the behavior of the Xft version, one would need to implement replacements for XftDefaultSubstitute and XftDefaultSet. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp diff --git a/src/xsettings.c b/src/xsettings.c index 3e9012e3ab1..06c47c6c6ce 100644 --- a/src/xsettings.c +++ b/src/xsettings.c @@ -608,18 +608,16 @@ static void apply_xft_settings (struct x_display_info *dpyinfo, struct xsettings *settings) { -#if defined USE_CAIRO || defined HAVE_XFT +#ifdef HAVE_XFT FcPattern *pat; struct xsettings oldsettings; bool changed = false; memset (&oldsettings, 0, sizeof (oldsettings)); pat = FcPatternCreate (); -#ifdef HAVE_XFT XftDefaultSubstitute (dpyinfo->display, XScreenNumberOfScreen (dpyinfo->screen), pat); -#endif FcPatternGetBool (pat, FC_ANTIALIAS, 0, &oldsettings.aa); FcPatternGetBool (pat, FC_HINTING, 0, &oldsettings.hinting); #ifdef FC_HINT_STYLE @@ -719,9 +717,7 @@ apply_xft_settings (struct x_display_info *dpyinfo, }; char buf[sizeof format + d_formats * d_growth + lf_formats * lf_growth]; -#ifdef HAVE_XFT XftDefaultSet (dpyinfo->display, pat); -#endif store_config_changed_event (Qfont_render, XCAR (dpyinfo->name_list_element)); Vxft_settings @@ -733,7 +729,7 @@ apply_xft_settings (struct x_display_info *dpyinfo, } else FcPatternDestroy (pat); -#endif /* USE_CAIRO || HAVE_XFT */ +#endif /* HAVE_XFT */ } /* Read XSettings from the display for DPYINFO. ^ permalink raw reply related [flat|nested] 4+ messages in thread
* bug#36284: 27.0.50; [Cairo] Setting default face :family attribute in the init script is broken 2019-06-19 3:37 ` YAMAMOTO Mitsuharu @ 2019-06-19 10:47 ` Dmitry Gutov 2019-06-20 3:02 ` YAMAMOTO Mitsuharu 0 siblings, 1 reply; 4+ messages in thread From: Dmitry Gutov @ 2019-06-19 10:47 UTC (permalink / raw) To: YAMAMOTO Mitsuharu; +Cc: 36284 On 19.06.2019 6:37, YAMAMOTO Mitsuharu wrote: > It seems that some changes I made to xsetting.c in order to remove > dependency on libXft was too naive. For this particular problem, the > patch below would work. For stricter consistency with the behavior of > the Xft version, one would need to implement replacements for > XftDefaultSubstitute and XftDefaultSet. This patch works, thank you. Please install whichever version seems most appropriate to you. ^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#36284: 27.0.50; [Cairo] Setting default face :family attribute in the init script is broken 2019-06-19 10:47 ` Dmitry Gutov @ 2019-06-20 3:02 ` YAMAMOTO Mitsuharu 0 siblings, 0 replies; 4+ messages in thread From: YAMAMOTO Mitsuharu @ 2019-06-20 3:02 UTC (permalink / raw) To: Dmitry Gutov; +Cc: 36284-done On Wed, 19 Jun 2019 19:47:14 +0900, Dmitry Gutov wrote: > > On 19.06.2019 6:37, YAMAMOTO Mitsuharu wrote: > > It seems that some changes I made to xsetting.c in order to remove > > dependency on libXft was too naive. For this particular problem, the > > patch below would work. For stricter consistency with the behavior of > > the Xft version, one would need to implement replacements for > > XftDefaultSubstitute and XftDefaultSet. > > This patch works, thank you. > > Please install whichever version seems most appropriate to you. Thanks for testing. The previous patch is applied to master as 0701634aa78. Closing the bug. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-06-20 3:02 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-06-19 1:32 bug#36284: 27.0.50; [Cairo] Setting default face :family attribute in the init script is broken Dmitry Gutov 2019-06-19 3:37 ` YAMAMOTO Mitsuharu 2019-06-19 10:47 ` Dmitry Gutov 2019-06-20 3:02 ` YAMAMOTO Mitsuharu
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).