Skip to content

Commit 9fa3649

Browse files
committed
pluma-view: Fix font in context menu
Fixes #234
1 parent e451bfe commit 9fa3649

File tree

1 file changed

+38
-3
lines changed

1 file changed

+38
-3
lines changed

pluma/pluma-view.c

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -646,12 +646,33 @@ pluma_view_scroll_to_cursor (PlumaView *view)
646646
0.0);
647647
}
648648

649+
static PangoFontDescription* get_system_font (void)
650+
{
651+
PangoFontDescription *desc = NULL;
652+
GSettings *settings;
653+
char *name;
654+
655+
settings = g_settings_new ("org.mate.interface");
656+
name = g_settings_get_string (settings, "font-name");
657+
658+
if (name) {
659+
desc = pango_font_description_from_string (name);
660+
g_free (name);
661+
}
662+
663+
g_object_unref (settings);
664+
665+
return desc;
666+
}
667+
649668
static void
650-
pluma_override_font (GtkWidget *widget,
669+
pluma_override_font (const gchar *item,
670+
GtkWidget *widget,
651671
PangoFontDescription *font)
652672
{
653673
static gboolean provider_added = FALSE;
654674
GtkCssProvider *provider;
675+
gchar *prov_str;
655676
gchar *css;
656677
gchar *family;
657678
gchar *weight;
@@ -675,7 +696,13 @@ pluma_override_font (GtkWidget *widget,
675696

676697
provider = gtk_css_provider_get_default ();
677698

678-
css = g_strdup_printf ("textview { %s %s %s %s }", family, weight, style, size);
699+
prov_str = gtk_css_provider_to_string (provider);
700+
701+
if (g_str_has_prefix (prov_str, "textview") && g_str_has_prefix (item, ".context-menu"))
702+
css = g_strdup_printf ("%s %s { %s %s %s %s }", prov_str, item, family, weight, style, size);
703+
else
704+
css = g_strdup_printf ("%s { %s %s %s %s }", item, family, weight, style, size);
705+
679706
gtk_css_provider_load_from_data (provider, css, -1, NULL);
680707

681708
if (!provider_added) {
@@ -689,6 +716,7 @@ pluma_override_font (GtkWidget *widget,
689716
g_free (family);
690717
g_free (weight);
691718
g_free (size);
719+
g_free (prov_str);
692720
}
693721

694722
/* FIXME this is an issue for introspection */
@@ -707,6 +735,7 @@ pluma_view_set_font (PlumaView *view,
707735
const gchar *font_name)
708736
{
709737
PangoFontDescription *font_desc = NULL;
738+
PangoFontDescription *sys_font_desc = NULL;
710739

711740
pluma_debug (DEBUG_VIEW);
712741

@@ -729,7 +758,13 @@ pluma_view_set_font (PlumaView *view,
729758

730759
g_return_if_fail (font_desc != NULL);
731760

732-
pluma_override_font (GTK_WIDGET (view), font_desc);
761+
pluma_override_font ("textview", GTK_WIDGET (view), font_desc);
762+
763+
sys_font_desc = get_system_font ();
764+
if (sys_font_desc) {
765+
pluma_override_font (".context-menu", GTK_WIDGET (view), sys_font_desc);
766+
pango_font_description_free (sys_font_desc);
767+
}
733768

734769
pango_font_description_free (font_desc);
735770
}

0 commit comments

Comments
 (0)