summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Robinson <mrobinson@igalia.com>2012-04-20 10:30:32 -0700
committermartin.james.robinson@gmail.com <mrobinson@igalia.com>2012-04-26 12:36:45 -0700
commit9571561ecfea075e3443e5d7344be8f1ffa9e49e (patch)
tree98a2d61c8e4005cfa63887fa3260a0c664cdccbc
parent055a0f01e8ffcb857c1187d13450972dab05cca8 (diff)
downloadepiphany-9571561ecfea075e3443e5d7344be8f1ffa9e49e.tar.gz
Replace "system" with system languages when setting spelling dictionaries
The string "system" is used as a placeholder for the default system languages in the preference listing of spelling dictionaries. Before sending this to WebKit to set the spelling dictionaries, we should fill in the actual default system languages.
-rw-r--r--embed/ephy-embed-prefs.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/embed/ephy-embed-prefs.c b/embed/ephy-embed-prefs.c
index b1073e385..e16c06602 100644
--- a/embed/ephy-embed-prefs.c
+++ b/embed/ephy-embed-prefs.c
@@ -386,6 +386,24 @@ webkit_pref_callback_gnome_fonts (GSettings *ephy_settings,
}
static void
+replace_system_language_with_concrete_language_string (char **languages)
+{
+ int i;
+
+ for (i = 0; i < g_strv_length (languages); i++) {
+ if (g_str_equal (languages[i], "system")) {
+ char **sys_langs;
+
+ g_free (languages[i]);
+ sys_langs = ephy_langs_get_languages ();
+ languages[i] = g_strjoinv (", ", sys_langs);
+
+ g_strfreev (sys_langs);
+ }
+ }
+}
+
+static void
webkit_pref_callback_enable_spell_checking (GSettings *settings,
char *key,
gpointer data)
@@ -398,6 +416,7 @@ webkit_pref_callback_enable_spell_checking (GSettings *settings,
if (value) {
languages = g_settings_get_strv (settings, EPHY_PREFS_WEB_LANGUAGE);
+ replace_system_language_with_concrete_language_string (languages);
langs = g_strjoinv (",", languages);
g_strdelimit (langs, "-", '_');
g_strfreev (languages);