From: Robert Pluim Date: Mon, 18 Nov 2019 09:18:25 +0000 (+0100) Subject: Remember the full GTK font description X-Git-Tag: emacs-27.0.90~572 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=b6db2ed1ea5d29dbd31871972d702739e88d3818;p=emacs.git Remember the full GTK font description Remember the full font description instead of just the family so that size/style/weight settings are preserved. * gtkutil.c (xg_get_font) [HAVE_GTK3]: Use the pango font description to set/get the current font (Bug#28901). --- diff --git a/src/gtkutil.c b/src/gtkutil.c index 25ef5dd248d..cf5c31aa203 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c @@ -2282,7 +2282,16 @@ xg_get_font (struct frame *f, const char *default_name) default_name = x_last_font_name; if (default_name) - gtk_font_chooser_set_font (GTK_FONT_CHOOSER (w), default_name); + { +#ifdef HAVE_GTK3 + PangoFontDescription *desc + = pango_font_description_from_string (default_name); + gtk_font_chooser_set_font_desc (GTK_FONT_CHOOSER (w), desc); + pango_font_description_free (desc); +#else + gtk_font_chooser_set_font (GTK_FONT_CHOOSER (w), default_name); +#endif + } gtk_widget_set_name (w, "emacs-fontdialog"); done = xg_dialog_run (f, w); @@ -2306,8 +2315,10 @@ xg_get_font (struct frame *f, const char *default_name) QCweight, XG_WEIGHT_TO_SYMBOL (weight), QCslant, XG_STYLE_TO_SYMBOL (style)); + char *font_desc_str = pango_font_description_to_string (desc); + dupstring (&x_last_font_name, font_desc_str); + g_free (font_desc_str); pango_font_description_free (desc); - dupstring (&x_last_font_name, family); } #else /* Use old font selector, which just returns the font name. */