[gedit] View: simplify the code to update the font



commit 9ef4cf7edc5bd6a2449edcb34e5110362c5dc834
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Tue Nov 24 18:41:52 2020 +0100

    View: simplify the code to update the font

 gedit/gedit-view.c | 76 ++++++++++++++++++------------------------------------
 gedit/gedit-view.h |  5 ----
 2 files changed, 25 insertions(+), 56 deletions(-)
---
diff --git a/gedit/gedit-view.c b/gedit/gedit-view.c
index b996cd44b..a5be25bea 100644
--- a/gedit/gedit-view.c
+++ b/gedit/gedit-view.c
@@ -164,33 +164,43 @@ gedit_view_dispose (GObject *object)
        G_OBJECT_CLASS (gedit_view_parent_class)->dispose (object);
 }
 
+static void
+update_font (GeditView *view)
+{
+       GeditSettings *settings;
+       gchar *selected_font;
+
+       settings = _gedit_settings_get_singleton ();
+       selected_font = _gedit_settings_get_selected_font (settings);
+       tepl_utils_override_font (GTK_WIDGET (view), selected_font);
+       g_free (selected_font);
+}
+
+static void
+fonts_changed_cb (GeditSettings *settings,
+                 GeditView     *view)
+{
+       update_font (view);
+}
+
 static void
 gedit_view_constructed (GObject *object)
 {
        GeditView *view = GEDIT_VIEW (object);
        GeditSettings *settings;
        GSettings *editor_settings;
-       gboolean use_default_font;
 
        G_OBJECT_CLASS (gedit_view_parent_class)->constructed (object);
 
        settings = _gedit_settings_get_singleton ();
        editor_settings = _gedit_settings_peek_editor_settings (settings);
 
-       use_default_font = g_settings_get_boolean (editor_settings, GEDIT_SETTINGS_USE_DEFAULT_FONT);
-
-       if (use_default_font)
-       {
-               _gedit_view_set_font (view, TRUE, NULL);
-       }
-       else
-       {
-               gchar *editor_font;
-
-               editor_font = g_settings_get_string (editor_settings, GEDIT_SETTINGS_EDITOR_FONT);
-               _gedit_view_set_font (view, FALSE, editor_font);
-               g_free (editor_font);
-       }
+       update_font (view);
+       g_signal_connect_object (settings,
+                                "fonts-changed",
+                                G_CALLBACK (fonts_changed_cb),
+                                view,
+                                0);
 
        g_settings_bind (editor_settings, GEDIT_SETTINGS_DISPLAY_LINE_NUMBERS,
                         view, "show-line-numbers",
@@ -753,40 +763,4 @@ gedit_view_new (GeditDocument *doc)
                             NULL);
 }
 
-/*
- * _gedit_view_set_font:
- * @view: a #GeditView
- * @default_font: whether to reset to the default font
- * @font_str: the name of the font to use
- *
- * If @default_font is #TRUE, resets the font of the @view to the default font.
- * Otherwise sets it to @font_str.
- */
-void
-_gedit_view_set_font (GeditView   *view,
-                     gboolean     default_font,
-                     const gchar *font_str)
-{
-       gedit_debug (DEBUG_VIEW);
-
-       g_return_if_fail (GEDIT_IS_VIEW (view));
-
-       if (default_font)
-       {
-               GeditSettings *settings;
-               gchar *system_font_str;
-
-               settings = _gedit_settings_get_singleton ();
-               system_font_str = _gedit_settings_get_system_font (settings);
-
-               tepl_utils_override_font (GTK_WIDGET (view), system_font_str);
-
-               g_free (system_font_str);
-       }
-       else
-       {
-               tepl_utils_override_font (GTK_WIDGET (view), font_str);
-       }
-}
-
 /* ex:set ts=8 noet: */
diff --git a/gedit/gedit-view.h b/gedit/gedit-view.h
index e1328a8f7..c05d68553 100644
--- a/gedit/gedit-view.h
+++ b/gedit/gedit-view.h
@@ -60,11 +60,6 @@ GType                gedit_view_get_type             (void);
 
 GtkWidget *    gedit_view_new                  (GeditDocument *doc);
 
-G_GNUC_INTERNAL
-void           _gedit_view_set_font            (GeditView   *view,
-                                                gboolean     default_font,
-                                                const gchar *font_str);
-
 G_END_DECLS
 
 #endif /* GEDIT_VIEW_H */


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]