[devhelp] Window: delegate WebKitSettings configuration to DhWebView



commit f36abcc9b8578403d1d5a5ec74507e924d82f520
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Fri Feb 9 19:04:05 2018 +0100

    Window: delegate WebKitSettings configuration to DhWebView

 src/dh-web-view.c |   17 +++++++++++++++++
 src/dh-window.c   |   22 +++++-----------------
 2 files changed, 22 insertions(+), 17 deletions(-)
---
diff --git a/src/dh-web-view.c b/src/dh-web-view.c
index 270e1f9..bca16f9 100644
--- a/src/dh-web-view.c
+++ b/src/dh-web-view.c
@@ -25,6 +25,22 @@ struct _DhWebViewPrivate {
 G_DEFINE_TYPE_WITH_PRIVATE (DhWebView, dh_web_view, WEBKIT_TYPE_WEB_VIEW)
 
 static void
+dh_web_view_constructed (GObject *object)
+{
+        WebKitWebView *view = WEBKIT_WEB_VIEW (object);
+        WebKitSettings *settings;
+
+        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);
+        webkit_settings_set_enable_html5_database (settings, FALSE);
+        webkit_settings_set_enable_html5_local_storage (settings, FALSE);
+        webkit_settings_set_enable_plugins (settings, FALSE);
+}
+
+static void
 dh_web_view_finalize (GObject *object)
 {
 
@@ -36,6 +52,7 @@ dh_web_view_class_init (DhWebViewClass *klass)
 {
         GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
+        object_class->constructed = dh_web_view_constructed;
         object_class->finalize = dh_web_view_finalize;
 }
 
diff --git a/src/dh-window.c b/src/dh-window.c
index 14dd8fb..376be74 100644
--- a/src/dh-window.c
+++ b/src/dh-window.c
@@ -27,6 +27,7 @@
 #include "dh-settings.h"
 #include "dh-sidebar.h"
 #include "dh-util.h"
+#include "dh-web-view.h"
 
 typedef struct {
         GtkHeaderBar *header_bar;
@@ -1100,25 +1101,13 @@ window_web_view_button_press_event_cb (WebKitWebView  *web_view,
 }
 
 static void
-apply_webview_settings (WebKitWebView *view)
-{
-        WebKitSettings *settings;
-
-        /* Disable some things we have no need for. */
-        settings = webkit_web_view_get_settings (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);
-}
-
-static void
 window_open_new_tab (DhWindow    *window,
                      const gchar *location,
                      gboolean     switch_focus)
 {
         DhWindowPrivate *priv;
         DhSettings *settings;
-        GtkWidget *view;
+        DhWebView *view;
         GtkWidget *vbox;
         GtkWidget *label;
         gint num;
@@ -1130,9 +1119,8 @@ window_open_new_tab (DhWindow    *window,
         priv = dh_window_get_instance_private (window);
 
         /* Prepare the web view */
-        view = webkit_web_view_new ();
-        apply_webview_settings (WEBKIT_WEB_VIEW (view));
-        gtk_widget_show (view);
+        view = dh_web_view_new ();
+        gtk_widget_show (GTK_WIDGET (view));
 
         /* get the current fonts and set them on the new view */
         settings = dh_settings_get_singleton ();
@@ -1161,7 +1149,7 @@ window_open_new_tab (DhWindow    *window,
         g_object_set_data (G_OBJECT (vbox), TAB_INFO_BAR_KEY, info_bar);
 
         gtk_box_pack_start (GTK_BOX (vbox), info_bar, FALSE, TRUE, 0);
-        gtk_box_pack_start (GTK_BOX (vbox), view, TRUE, TRUE, 0);
+        gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (view), TRUE, TRUE, 0);
 
         label = window_new_tab_label (window, _("Empty Page"), vbox);
         gtk_widget_show_all (label);


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