[devhelp] Fonts handling: set fonts in DhWebView, not DhWindow



commit da87b4ed2aeae133b5a0c163f992e3c657f20646
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Fri May 11 20:15:31 2018 +0200

    Fonts handling: set fonts in DhWebView, not DhWindow

 src/dh-web-view.c |   41 +++++++++++++++++++++++++++++++++++++++--
 src/dh-window.c   |   38 --------------------------------------
 2 files changed, 39 insertions(+), 40 deletions(-)
---
diff --git a/src/dh-web-view.c b/src/dh-web-view.c
index 40dbf98..8b99918 100644
--- a/src/dh-web-view.c
+++ b/src/dh-web-view.c
@@ -21,6 +21,8 @@
 #include "dh-web-view.h"
 #include <math.h>
 #include <glib/gi18n.h>
+#include "dh-settings-app.h"
+#include "dh-util-app.h"
 
 struct _DhWebViewPrivate {
         gchar *search_text;
@@ -137,19 +139,54 @@ chain_up:
 }
 
 static void
+update_fonts (DhWebView *view)
+{
+        DhSettingsApp *settings;
+        gchar *font_fixed = NULL;
+        gchar *font_variable = NULL;
+
+        settings = dh_settings_app_get_singleton ();
+        dh_settings_app_get_selected_fonts (settings, &font_fixed, &font_variable);
+
+        dh_util_view_set_font (WEBKIT_WEB_VIEW (view), font_fixed, font_variable);
+
+        g_free (font_fixed);
+        g_free (font_variable);
+}
+
+static void
+settings_fonts_changed_cb (DhSettingsApp *settings,
+                           const gchar   *font_name_fixed,
+                           const gchar   *font_name_variable,
+                           DhWebView     *view)
+{
+        update_fonts (view);
+}
+
+static void
 dh_web_view_constructed (GObject *object)
 {
-        WebKitWebView *view = WEBKIT_WEB_VIEW (object);
+        DhWebView *view = DH_WEB_VIEW (object);
         WebKitSettings *settings;
+        DhSettingsApp *settings_app;
 
         if (G_OBJECT_CLASS (dh_web_view_parent_class)->constructed != NULL)
                 G_OBJECT_CLASS (dh_web_view_parent_class)->constructed (object);
 
         /* Disable some things we have no need for. */
-        settings = webkit_web_view_get_settings (view);
+        settings = webkit_web_view_get_settings (WEBKIT_WEB_VIEW (view));
         webkit_settings_set_enable_html5_database (settings, FALSE);
         webkit_settings_set_enable_html5_local_storage (settings, FALSE);
         webkit_settings_set_enable_plugins (settings, FALSE);
+
+        settings_app = dh_settings_app_get_singleton ();
+        g_signal_connect_object (settings_app,
+                                 "fonts-changed",
+                                 G_CALLBACK (settings_fonts_changed_cb),
+                                 view,
+                                 0);
+
+        update_fonts (view);
 }
 
 static void
diff --git a/src/dh-window.c b/src/dh-window.c
index 71f531b..d2f2ab5 100644
--- a/src/dh-window.c
+++ b/src/dh-window.c
@@ -603,28 +603,6 @@ set_window_menu (DhWindow *window)
 }
 
 static void
-settings_fonts_changed_cb (DhSettingsApp *settings,
-                           const gchar   *font_name_fixed,
-                           const gchar   *font_name_variable,
-                           DhWindow      *window)
-{
-        DhWindowPrivate *priv = dh_window_get_instance_private (window);
-        gint n_pages;
-        gint page_num;
-
-        n_pages = gtk_notebook_get_n_pages (priv->notebook);
-
-        for (page_num = 0; page_num < n_pages; page_num++) {
-                DhTab *tab;
-                WebKitWebView *web_view;
-
-                tab = DH_TAB (gtk_notebook_get_nth_page (priv->notebook, page_num));
-                web_view = WEBKIT_WEB_VIEW (dh_tab_get_web_view (tab));
-                dh_util_view_set_font (web_view, font_name_fixed, font_name_variable);
-        }
-}
-
-static void
 sidebar_link_selected_cb (DhSidebar *sidebar,
                           DhLink    *link,
                           DhWindow  *window)
@@ -834,12 +812,6 @@ dh_window_init (DhWindow *window)
         set_window_menu (window);
 
         settings = dh_settings_app_get_singleton ();
-        g_signal_connect_object (settings,
-                                 "fonts-changed",
-                                 G_CALLBACK (settings_fonts_changed_cb),
-                                 window,
-                                 0);
-
         paned_settings = dh_settings_app_peek_paned_settings (settings);
         g_settings_bind (paned_settings, "position",
                          priv->hpaned, "position",
@@ -1090,9 +1062,6 @@ open_new_tab (DhWindow    *window,
         DhWindowPrivate *priv = dh_window_get_instance_private (window);
         DhTab *tab;
         DhWebView *web_view;
-        DhSettingsApp *settings;
-        gchar *font_fixed = NULL;
-        gchar *font_variable = NULL;
         GtkWidget *label;
         gint page_num;
         WebKitBackForwardList *back_forward_list;
@@ -1102,13 +1071,6 @@ open_new_tab (DhWindow    *window,
 
         web_view = dh_tab_get_web_view (tab);
 
-        /* Set font */
-        settings = dh_settings_app_get_singleton ();
-        dh_settings_app_get_selected_fonts (settings, &font_fixed, &font_variable);
-        dh_util_view_set_font (WEBKIT_WEB_VIEW (web_view), font_fixed, font_variable);
-        g_free (font_fixed);
-        g_free (font_variable);
-
         g_signal_connect (web_view,
                           "notify::title",
                           G_CALLBACK (web_view_title_notify_cb),


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