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:39:57 -0700
commitf15997b3bda27735c0f2f91e48c1f13925814b5e (patch)
tree2c1eaa48d9918397f6a9f4dee53704444aeb3b30
parent0795725e8bdaf6818d19e0df3acf7e4080981653 (diff)
downloadepiphany-f15997b3bda27735c0f2f91e48c1f13925814b5e.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);