Use modern method of setting font, instead of deprecated method
authorJohn Darrington <john@darrington.wattle.id.au>
Sun, 14 Aug 2016 12:51:59 +0000 (14:51 +0200)
committerJohn Darrington <john@darrington.wattle.id.au>
Sun, 14 Aug 2016 13:26:30 +0000 (15:26 +0200)
src/ui/gui/psppire-data-editor.c
src/ui/gui/psppire-dialog-action-comments.c
src/ui/gui/psppire-window.c

index 1c6143aaf4df167310b2d517915f09b4e43bd247..4577d2dc51ae9db342353d9c3ec6a75631bcfccd 100644 (file)
@@ -682,6 +682,9 @@ psppire_data_editor_init (PsppireDataEditor *de)
   GtkWidget *hbox;
   gchar *fontname = NULL;
 
+  GtkStyleContext *context = gtk_widget_get_style_context (GTK_WIDGET (de));
+  gtk_style_context_add_class (context, "psppire-data-editor");
+  
   de->font = NULL;
   de->old_vbox_widget = NULL;
 
@@ -774,7 +777,16 @@ set_font_recursively (GtkWidget *w, gpointer data)
 {
   PangoFontDescription *font_desc = data;
 
-  gtk_widget_override_font (w, font_desc);
+  GtkCssProvider *cssp = gtk_css_provider_get_default ();
+
+  gchar *str = pango_font_description_to_string (font_desc);
+  gchar *css = g_strdup_printf (".psppire-data-editor {font: %s }", str);
+  g_free (str);
+                                                                                   
+  if (!gtk_css_provider_load_from_data (cssp, css, -1, NULL))
+    g_warning ("Failed to load font css \"%s\"", css);
+
+  g_free (css);
 
   if ( GTK_IS_CONTAINER (w))
     gtk_container_foreach (GTK_CONTAINER (w), set_font_recursively, font_desc);
index c500f1fad8bd660fb069936610c4ac57331ab7f1..aa32ba0a42506666244909622a51b865893780eb 100644 (file)
@@ -199,8 +199,21 @@ psppire_dialog_action_comments_activate (PsppireDialogAction *pda)
        PangoFontDescription *font_desc =
          pango_font_description_from_string ("monospace");
 
-       gtk_widget_override_font (act->textview, font_desc);
-
+       GtkStyleContext *style =
+         gtk_widget_get_style_context (GTK_WIDGET (act->textview));
+       gtk_style_context_add_class (style, "psppire-dialog-comment-pane");
+       GtkCssProvider *cssp = gtk_css_provider_get_default ();
+
+       gchar *str = pango_font_description_to_string (font_desc);
+       gchar *css =
+         g_strdup_printf (".psppire-dialog-comment-pane {font: %s }", str);
+       g_free (str);
+                                                                                   
+       if (!gtk_css_provider_load_from_data (cssp, css, -1, NULL))
+         g_warning ("Failed to load font css \"%s\"", css);
+
+       g_free (css);
+       
        /* and let's just make sure that a complete line fits into the
           widget's width */
        context = gtk_widget_create_pango_context (act->textview);
@@ -233,9 +246,6 @@ psppire_dialog_action_comments_activate (PsppireDialogAction *pda)
   
   psppire_dialog_action_set_valid_predicate (pda, dialog_state_valid);
   psppire_dialog_action_set_refresh (pda, refresh);
-
-
-
 }
 
 static void
index c268256bb003ea1c43c460d087b4454c11486c41..97cfe6aed0a16c9b70723ff3409a5a2184fc2ef4 100644 (file)
@@ -403,6 +403,10 @@ psppire_window_init (PsppireWindow *window)
   window->description = NULL;
   window->list_name = NULL;
 
+  gtk_style_context_add_provider_for_screen (gdk_screen_get_default (),
+                                            GTK_STYLE_PROVIDER (gtk_css_provider_get_default ()),
+                                            GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+  
   window->menuitem_table  = g_hash_table_new (g_str_hash, g_str_equal);