summaryrefslogtreecommitdiff
path: root/src/gtkutil.c
diff options
context:
space:
mode:
authorRobert Pluim <rpluim@gmail.com>2019-11-18 10:18:25 +0100
committerRobert Pluim <rpluim@gmail.com>2019-11-19 13:36:07 +0100
commitb6db2ed1ea5d29dbd31871972d702739e88d3818 (patch)
tree102242e270f76c97f7e25b8dc7832779b6b53f5f /src/gtkutil.c
parentcf0a76a43831105d74b54f0e50f77eb60460fbea (diff)
downloademacs-b6db2ed1ea5d29dbd31871972d702739e88d3818.tar.gz
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).
Diffstat (limited to 'src/gtkutil.c')
-rw-r--r--src/gtkutil.c15
1 files changed, 13 insertions, 2 deletions
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. */