@@ -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+
649668static 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