[Xfce4-commits] <midori:master> Implement spell checking and preferred languages with WebKit2

Christian Dywan noreply at xfce.org
Mon Apr 8 20:44:03 CEST 2013


Updating branch refs/heads/master
         to 6d91a83fd973656db1f47c26e61aa46dc603199e (commit)
       from 2c1bce83272463737185eb094a178024eeaaf565 (commit)

commit 6d91a83fd973656db1f47c26e61aa46dc603199e
Author: Christian Dywan <christian at twotoasts.de>
Date:   Mon Apr 8 20:35:37 2013 +0200

    Implement spell checking and preferred languages with WebKit2

 midori/midori-session.c     |    7 +++++++
 midori/midori-settings.vala |    7 ++++++-
 midori/midori-websettings.c |   14 ++++++++++++--
 midori/midori-websettings.h |    3 ---
 midori/webkit2gtk-3.0.vapi  |    6 ++++--
 5 files changed, 29 insertions(+), 8 deletions(-)

diff --git a/midori/midori-session.c b/midori/midori-session.c
index 8e6c48a..d21b0f9 100644
--- a/midori/midori-session.c
+++ b/midori/midori-session.c
@@ -117,13 +117,20 @@ midori_soup_session_request_started_cb (SoupSession* session,
 }
 #endif
 
+#ifndef HAVE_WEBKIT2
+const gchar*
+midori_web_settings_get_accept_language    (MidoriWebSettings* settings);
+#endif
+
 static void
 midori_soup_session_settings_accept_language_cb (SoupSession*       session,
                                                  SoupMessage*       msg,
                                                  MidoriWebSettings* settings)
 {
+    #ifndef HAVE_WEBKIT2
     const gchar* accept = midori_web_settings_get_accept_language (settings);
     soup_message_headers_append (msg->request_headers, "Accept-Language", accept);
+    #endif
 
     if (katze_object_get_boolean (settings, "strip-referer"))
     {
diff --git a/midori/midori-settings.vala b/midori/midori-settings.vala
index 75c68f3..b321132 100644
--- a/midori/midori-settings.vala
+++ b/midori/midori-settings.vala
@@ -1,5 +1,5 @@
 /*
- Copyright (C) 2008-2012 Christian Dywan <christian at twotoasts.de>
+ Copyright (C) 2008-2013 Christian Dywan <christian at twotoasts.de>
  Copyright (C) 2011 Peter Hatina <phatina at redhat.com>
 
  This library is free software; you can redistribute it and/or
@@ -42,6 +42,11 @@ namespace Midori {
         } set {
             zoom_text_only = !value;
         } }
+        public bool enable_spell_checking { get {
+            return WebKit.WebContext.get_default ().get_spell_checking_enabled ();
+        } set {
+            WebKit.WebContext.get_default ().set_spell_checking_enabled (value);
+        } }
 #endif
         public bool remember_last_window_size { get; set; default = true; }
         public int last_window_width { get; set; default = 0; }
diff --git a/midori/midori-websettings.c b/midori/midori-websettings.c
index 38aefeb..ed6d3d2 100644
--- a/midori/midori-websettings.c
+++ b/midori/midori-websettings.c
@@ -832,6 +832,7 @@ generate_ident_string (MidoriWebSettings* web_settings,
     }
 }
 
+#ifndef HAVE_WEBKIT2
 /* Provide a new way for SoupSession to assume an 'Accept-Language'
    string automatically from the return value of g_get_language_names(),
    properly formatted according to RFC2616.
@@ -946,6 +947,7 @@ midori_web_settings_get_accept_language (MidoriWebSettings* settings)
         midori_web_settings_update_accept_language (settings);
     return settings->accept;
 }
+#endif
 
 static void
 midori_web_settings_process_stylesheets (MidoriWebSettings* settings,
@@ -1048,11 +1050,19 @@ midori_web_settings_set_property (GObject*      object,
         break;
     case PROP_PREFERRED_LANGUAGES:
         katze_assign (web_settings->http_accept_language, g_value_dup_string (value));
-        #ifndef HAVE_WEBKIT2
+        #ifdef HAVE_WEBKIT2
+        WebKitWebContext* context = webkit_web_context_get_default ();
+        gchar** languages = web_settings->http_accept_language
+            ? g_strsplit_set (web_settings->http_accept_language, ",; ", -1)
+            : g_strdupv ((gchar**)g_get_language_names ());
+        webkit_web_context_set_preferred_languages (context, (const gchar* const*)languages);
+        webkit_web_context_set_spell_checking_languages (context, (const gchar* const*)languages);
+        g_strfreev (languages);
+        #else
         g_object_set (web_settings, "spell-checking-languages",
                       web_settings->http_accept_language, NULL);
-        #endif
         midori_web_settings_update_accept_language (web_settings);
+        #endif
         break;
     case PROP_SITE_DATA_RULES:
         katze_assign (web_settings->site_data_rules, g_value_dup_string (value));
diff --git a/midori/midori-websettings.h b/midori/midori-websettings.h
index 67c587b..cdc7264 100644
--- a/midori/midori-websettings.h
+++ b/midori/midori-websettings.h
@@ -190,9 +190,6 @@ MidoriSiteDataPolicy
 midori_web_settings_get_site_data_policy   (MidoriWebSettings* settings,
                                             const gchar*       uri);
 
-const gchar*
-midori_web_settings_get_accept_language    (MidoriWebSettings* settings);
-
 MidoriWebSettings*
 midori_settings_new_full                   (gchar***           extensions);
 
diff --git a/midori/webkit2gtk-3.0.vapi b/midori/webkit2gtk-3.0.vapi
index 0cb4757..692844f 100644
--- a/midori/webkit2gtk-3.0.vapi
+++ b/midori/webkit2gtk-3.0.vapi
@@ -433,13 +433,15 @@ namespace WebKit {
 		public void set_disk_cache_directory (string path);
 		public async GLib.List<WebKit.Plugin> get_plugins (GLib.Cancellable? cancellable) throws GLib.Error;
 		public bool get_spell_checking_enabled ();
-		public unowned string get_spell_checking_languages ();
+		public unowned string[] get_spell_checking_languages ();
 		public void register_uri_scheme (string scheme, owned WebKit.URISchemeRequestCallback callback);
 		public void set_additional_plugins_directory (string directory);
 		public void set_cache_model (WebKit.CacheModel cache_model);
 		public void set_spell_checking_enabled (bool enabled);
-		public void set_spell_checking_languages (string languages);
+		public void set_spell_checking_languages (string[] languages);
+		public void set_preferred_languages (string[] languages);
 		public signal void download_started (WebKit.Download download);
+		public void set_web_extensions_directory (string path);
 	}
 	[CCode (cheader_filename = "webkit2/webkit2.h", type_id = "webkit_web_inspector_get_type ()")]
 	public class WebInspector : GLib.Object {


More information about the Xfce4-commits mailing list