aboutsummaryrefslogtreecommitdiffstats
path: root/composer
diff options
context:
space:
mode:
Diffstat (limited to 'composer')
-rw-r--r--composer/ChangeLog9
-rw-r--r--composer/e-composer-private.h2
-rw-r--r--composer/e-msg-composer.c21
3 files changed, 32 insertions, 0 deletions
diff --git a/composer/ChangeLog b/composer/ChangeLog
index db4dc8b316..9251b54451 100644
--- a/composer/ChangeLog
+++ b/composer/ChangeLog
@@ -1,3 +1,12 @@
+2008-04-05 Matthew Barnes <mbarnes@redhat.com>
+
+ ** Fixes part of bug #526152
+
+ * e-msg-composer.c:
+ * e-composer-private.h:
+ Initialize a new composer's spell checking language menu via
+ our new "spell_languages" GConf key.
+
2008-04-02 Matthew Barnes <mbarnes@redhat.com>
** Adapt to GtkHTML's new editor widget.
diff --git a/composer/e-composer-private.h b/composer/e-composer-private.h
index c0557a4a26..c9f9174394 100644
--- a/composer/e-composer-private.h
+++ b/composer/e-composer-private.h
@@ -62,6 +62,8 @@
COMPOSER_GCONF_PREFIX "/top_signature"
#define COMPOSER_GCONF_SEND_HTML_KEY \
COMPOSER_GCONF_PREFIX "/send_html"
+#define COMPOSER_GCONF_SPELL_LANGUAGES_KEY \
+ COMPOSER_GCONF_PREFIX "/spell_languages"
#define COMPOSER_GCONF_VIEW_BCC_KEY \
COMPOSER_GCONF_PREFIX "/view/Bcc"
#define COMPOSER_GCONF_VIEW_CC_KEY \
diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c
index fe4af52e8a..5b2d9526a7 100644
--- a/composer/e-msg-composer.c
+++ b/composer/e-msg-composer.c
@@ -2044,8 +2044,10 @@ msg_composer_constructor (GType type,
GObject *object;
EMsgComposer *composer;
GtkToggleAction *action;
+ GList *spell_languages = NULL;
GConfClient *client;
GArray *array;
+ GSList *list;
gboolean active;
guint binding_id;
@@ -2112,6 +2114,25 @@ msg_composer_constructor (GType type,
client, COMPOSER_GCONF_REQUEST_RECEIPT_KEY, NULL);
gtk_toggle_action_set_active (action, active);
+ list = gconf_client_get_list (
+ client, COMPOSER_GCONF_SPELL_LANGUAGES_KEY,
+ GCONF_VALUE_STRING, NULL);
+ while (list != NULL) {
+ gchar *language_code = list->data;
+ const GtkhtmlSpellLanguage *language;
+
+ language = gtkhtml_spell_language_lookup (language_code);
+ if (language != NULL)
+ spell_languages = g_list_prepend (
+ spell_languages, (gpointer) language);
+
+ list = g_slist_delete_link (list, list);
+ g_free (language_code);
+ }
+ gtkhtml_editor_set_spell_languages (
+ GTKHTML_EDITOR (composer), spell_languages);
+ g_list_free (spell_languages);
+
gconf_client_add_dir (
client, COMPOSER_GCONF_PREFIX,
GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);