From a1ab4092a425709814add4a449ddc133434eae9b Mon Sep 17 00:00:00 2001 From: Carlos Garcia Campos Date: Mon, 21 Sep 2015 18:44:20 +0200 Subject: yelp-view: Do not initialize global settings in class_init Use a helper getter instead that creates the object on demand. Since the settings were created in class_init, we were always passing a NULL settings object to g_object_new in yelp_view_new(), so all settings set in the global settings were actually ignored. https://bugzilla.gnome.org/show_bug.cgi?id=754912 --- libyelp/yelp-view.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/libyelp/yelp-view.c b/libyelp/yelp-view.c index a8190f8d..1aa647b2 100644 --- a/libyelp/yelp-view.c +++ b/libyelp/yelp-view.c @@ -147,7 +147,16 @@ static gint signals[LAST_SIGNAL] = { 0 }; G_DEFINE_TYPE (YelpView, yelp_view, WEBKIT_TYPE_WEB_VIEW) #define GET_PRIV(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), YELP_TYPE_VIEW, YelpViewPrivate)) -static WebKitSettings *websettings; +static WebKitSettings * +yelp_view_get_global_settings (void) +{ + static WebKitSettings *websettings = NULL; + + if (!websettings) + websettings = webkit_settings_new_with_settings ("default-charset", "utf-8", NULL); + + return websettings; +} typedef struct _YelpActionEntry YelpActionEntry; struct _YelpActionEntry { @@ -466,10 +475,6 @@ yelp_view_class_init (YelpViewClass *klass) nautilus_sendto = g_find_program_in_path ("nautilus-sendto"); - websettings = webkit_settings_new_with_settings ( - "default-charset", "utf-8", - NULL); - g_signal_connect (settings, "notify::show-text-cursor", G_CALLBACK (settings_show_text_cursor), @@ -651,7 +656,7 @@ GtkWidget * yelp_view_new (void) { return GTK_WIDGET (g_object_new (YELP_TYPE_VIEW, - "settings", websettings, NULL)); + "settings", yelp_view_get_global_settings (), NULL)); } void @@ -2146,10 +2151,8 @@ settings_set_fonts (YelpSettings *settings, static void settings_show_text_cursor (YelpSettings *settings) { - g_object_set (websettings, - "enable-caret-browsing", - yelp_settings_get_show_text_cursor (settings), - NULL); + webkit_settings_set_enable_caret_browsing (yelp_view_get_global_settings (), + yelp_settings_get_show_text_cursor (settings)); } /******************************************************************************/ -- cgit v1.2.1