[evolution/wip/webkit-composer: 617/966] Coding style and whitespace cleanup.



commit 321027e5bd88f630d261d0cefc3673a36baf79c7
Author: Matthew Barnes <mbarnes redhat com>
Date:   Thu Jan 10 11:21:28 2013 -0500

    Coding style and whitespace cleanup.

 composer/e-composer-actions.c             |    9 +-
 composer/e-composer-activity.c            |    4 +-
 composer/e-composer-private.c             |  100 ++--
 composer/e-msg-composer.c                 |  419 +++++---------
 composer/e-msg-composer.h                 |    2 -
 e-util/e-color-chooser-widget.c           |   46 +-
 e-util/e-color-chooser-widget.h           |    6 +-
 e-util/e-color-combo.c                    |  246 ++++----
 e-util/e-color-combo.h                    |   11 +-
 e-util/e-editor-actions.c                 |   92 ++--
 e-util/e-editor-actions.h                 |    1 +
 e-util/e-editor-cell-dialog.c             |  103 ++--
 e-util/e-editor-cell-dialog.h             |    7 +-
 e-util/e-editor-dialog.c                  |   68 ++-
 e-util/e-editor-dialog.h                  |    6 +-
 e-util/e-editor-find-dialog.c             |   28 +-
 e-util/e-editor-find-dialog.h             |    7 +-
 e-util/e-editor-hrule-dialog.c            |   33 +-
 e-util/e-editor-hrule-dialog.h            |    6 +-
 e-util/e-editor-image-dialog.c            |   50 +-
 e-util/e-editor-image-dialog.h            |    7 +-
 e-util/e-editor-link-dialog.c             |   22 +-
 e-util/e-editor-link-dialog.h             |    6 +-
 e-util/e-editor-page-dialog.c             |   40 +-
 e-util/e-editor-page-dialog.h             |    6 +-
 e-util/e-editor-paragraph-dialog.c        |   15 +-
 e-util/e-editor-paragraph-dialog.h        |    7 +-
 e-util/e-editor-private.h                 |    3 +-
 e-util/e-editor-replace-dialog.c          |   44 +--
 e-util/e-editor-replace-dialog.h          |    7 +-
 e-util/e-editor-selection.c               |  742 +++++++++++++-----------
 e-util/e-editor-selection.h               |  210 +++----
 e-util/e-editor-spell-check-dialog.c      |  201 ++++---
 e-util/e-editor-spell-check-dialog.h      |   13 +-
 e-util/e-editor-table-dialog.c            |   42 +-
 e-util/e-editor-table-dialog.h            |    6 +-
 e-util/e-editor-text-dialog.c             |   34 +-
 e-util/e-editor-text-dialog.h             |    6 +-
 e-util/e-editor-utils.c                   |    4 +-
 e-util/e-editor-utils.h                   |   18 +-
 e-util/e-editor-widget.c                  |  912 +++++++++++++++--------------
 e-util/e-editor-widget.h                  |   25 +-
 e-util/e-editor-window.c                  |   54 +-
 e-util/e-editor-window.h                  |    8 +-
 e-util/e-editor.c                         |  248 ++++----
 e-util/e-editor.h                         |   14 +-
 e-util/e-emoticon-action.c                |  113 ++---
 e-util/e-emoticon-action.h                |    2 +-
 e-util/e-emoticon-chooser-menu.c          |   76 +--
 e-util/e-emoticon-chooser-menu.h          |    5 +-
 e-util/e-emoticon-chooser.c               |   59 +--
 e-util/e-emoticon-chooser.h               |   14 +-
 e-util/e-emoticon-tool-button.c           |  111 ++--
 e-util/e-emoticon-tool-button.h           |    6 +-
 e-util/e-emoticon.c                       |   25 +-
 e-util/e-emoticon.h                       |    3 +-
 e-util/e-image-chooser-dialog.c           |   20 +-
 e-util/e-mail-signature-editor.c          |    5 -
 e-util/e-mail-signature-manager.c         |    2 +-
 e-util/e-spell-checker.c                  |  220 ++++----
 e-util/e-spell-checker.h                  |   49 +-
 e-util/e-spell-dictionary.c               |  311 ++++++-----
 e-util/e-spell-dictionary.h               |   78 ++--
 e-util/e-spell-entry.c                    |   53 +-
 e-util/test-editor.c                      |   30 +-
 mail/em-composer-utils.c                  |    6 +-
 mail/em-utils.c                           |    2 +-
 modules/mail/e-mail-shell-backend.c       |   11 +-
 modules/mail/em-composer-prefs.c          |    7 +-
 modules/mail/em-composer-prefs.h          |    4 +-
 plugins/external-editor/external-editor.c |   21 +-
 71 files changed, 2532 insertions(+), 2639 deletions(-)
---
diff --git a/composer/e-composer-actions.c b/composer/e-composer-actions.c
index 07245f2..46ae7cf 100644
--- a/composer/e-composer-actions.c
+++ b/composer/e-composer-actions.c
@@ -45,9 +45,8 @@ action_charset_cb (GtkRadioAction *action,
 {
        const gchar *charset;
 
-       if (action != current) {
+       if (action != current)
                return;
-       }
 
        charset = g_object_get_data (G_OBJECT (action), "charset");
 
@@ -59,9 +58,8 @@ static void
 action_close_cb (GtkAction *action,
                  EMsgComposer *composer)
 {
-       if (e_msg_composer_can_close (composer, TRUE)) {
+       if (e_msg_composer_can_close (composer, TRUE))
                gtk_widget_destroy (GTK_WIDGET (composer));
-       }
 }
 
 static void
@@ -224,9 +222,8 @@ action_save_as_cb (GtkAction *action,
 
        response = gtk_dialog_run (GTK_DIALOG (dialog));
 
-       if (response != GTK_RESPONSE_OK) {
+       if (response != GTK_RESPONSE_OK)
                goto exit;
-       }
 
        editor = e_editor_window_get_editor (E_EDITOR_WINDOW (composer));
        filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
diff --git a/composer/e-composer-activity.c b/composer/e-composer-activity.c
index 98ca646..8d45c57 100644
--- a/composer/e-composer-activity.c
+++ b/composer/e-composer-activity.c
@@ -51,7 +51,7 @@ composer_activity_lock_interface (EComposerActivity *activity)
 
        composer = e_composer_activity_get_composer (activity);
 
-       editor = e_msg_composer_get_editor (composer);
+       editor = e_editor_window_get_editor (E_EDITOR_WINDOW (composer));
        editor_widget = e_editor_get_editor_widget (editor);
        editable = webkit_web_view_get_editable (WEBKIT_WEB_VIEW (editor_widget));
        webkit_web_view_set_editable (WEBKIT_WEB_VIEW (editor_widget), FALSE);
@@ -73,7 +73,7 @@ composer_activity_unlock_interface (EComposerActivity *activity)
        composer = e_composer_activity_get_composer (activity);
 
        editable = activity->priv->saved_editable;
-       editor = e_msg_composer_get_editor (composer);
+       editor = e_editor_window_get_editor (E_EDITOR_WINDOW (composer));
        editor_widget = e_editor_get_editor_widget (editor);
        webkit_web_view_set_editable (WEBKIT_WEB_VIEW (editor_widget), editable);
 
diff --git a/composer/e-composer-private.c b/composer/e-composer-private.c
index ad66f8c..ec9ab2f 100644
--- a/composer/e-composer-private.c
+++ b/composer/e-composer-private.c
@@ -32,7 +32,7 @@
 static void
 composer_setup_charset_menu (EMsgComposer *composer)
 {
-       EEditor *editor;
+       EEditor *editor;
        GtkUIManager *ui_manager;
        const gchar *path;
        GList *list;
@@ -88,8 +88,8 @@ composer_update_gallery_visibility (EMsgComposer *composer)
 
 static void
 composer_spell_languages_changed (EMsgComposer *composer,
-                                 GParamSpec *pspec,
-                                 EEditorWidget *editor_widget)
+                                  GParamSpec *pspec,
+                                  EEditorWidget *editor_widget)
 {
        GList *languages;
        EComposerHeader *header;
@@ -102,7 +102,6 @@ composer_spell_languages_changed (EMsgComposer *composer,
        languages = e_editor_widget_get_spell_languages (editor_widget);
        header = e_composer_header_table_get_header (table, E_COMPOSER_HEADER_SUBJECT);
        e_composer_spell_header_set_languages (E_COMPOSER_SPELL_HEADER (header), languages);
-
        g_list_free (languages);
 }
 
@@ -198,12 +197,14 @@ e_composer_private_constructed (EMsgComposer *composer)
        e_editor_window_pack_above (E_EDITOR_WINDOW (composer), container);
 
        /* Construct the activity bar. */
+
        widget = e_activity_bar_new ();
        gtk_box_pack_start (GTK_BOX (container), widget, FALSE, FALSE, 0);
        priv->activity_bar = g_object_ref (widget);
        /* EActivityBar controls its own visibility. */
 
        /* Construct the alert bar for errors. */
+
        widget = e_alert_bar_new ();
        gtk_box_pack_start (GTK_BOX (container), widget, FALSE, FALSE, 0);
        gtk_widget_show (widget);
@@ -264,6 +265,7 @@ e_composer_private_constructed (EMsgComposer *composer)
        g_signal_connect_swapped (
                editor_widget, "notify::mode",
                G_CALLBACK (composer_update_gallery_visibility), composer);
+
        g_signal_connect_swapped (
                ACTION (PICTURE_GALLERY), "toggled",
                G_CALLBACK (composer_update_gallery_visibility), composer);
@@ -400,16 +402,14 @@ e_composer_find_data_file (const gchar *basename)
 
        /* Support running directly from the source tree. */
        filename = g_build_filename (".", basename, NULL);
-       if (g_file_test (filename, G_FILE_TEST_EXISTS)) {
+       if (g_file_test (filename, G_FILE_TEST_EXISTS))
                return filename;
-       }
        g_free (filename);
 
        /* XXX This is kinda broken. */
        filename = g_build_filename (EVOLUTION_UIDIR, basename, NULL);
-       if (g_file_test (filename, G_FILE_TEST_EXISTS)) {
+       if (g_file_test (filename, G_FILE_TEST_EXISTS))
                return filename;
-       }
        g_free (filename);
 
        g_critical ("Could not locate '%s'", basename);
@@ -441,13 +441,11 @@ e_composer_get_default_charset (void)
 
        g_object_unref (settings);
 
-       if (charset == NULL) {
+       if (charset == NULL)
                charset = g_strdup (camel_iconv_locale_charset ());
-       }
 
-       if (charset == NULL) {
+       if (charset == NULL)
                charset = g_strdup ("us-ascii");
-       }
 
        return charset;
 }
@@ -513,15 +511,13 @@ e_composer_paste_image (EMsgComposer *composer,
        }
 
        /* Save the pixbuf as a temporary file in image/png format. */
-       if (!gdk_pixbuf_save (pixbuf, filename, "png", &error, NULL)) {
+       if (!gdk_pixbuf_save (pixbuf, filename, "png", &error, NULL))
                goto exit;
-       }
 
        /* Convert the filename to a URI. */
        uri = g_filename_to_uri (filename, NULL, &error);
-       if (uri == NULL) {
+       if (uri == NULL)
                goto exit;
-       }
 
        /* In HTML mode, paste the image into the message body.
         * In text mode, add the image to the attachment store. */
@@ -659,9 +655,8 @@ e_composer_selection_is_image_uris (EMsgComposer *composer,
 
        uris = gtk_selection_data_get_uris (selection);
 
-       if (uris == NULL) {
+       if (uris == NULL)
                return FALSE;
-       }
 
        for (ii = 0; uris[ii] != NULL; ii++) {
                GFile *file;
@@ -980,7 +975,7 @@ composer_load_signature_cb (EMailSignatureComboBox *combo_box,
        e_mail_signature_combo_box_load_selected_finish (
                combo_box, result, &contents, &length, &is_html, &error);
 
-       /* FIXME Use an EAlert here.*/
+       /* FIXME Use an EAlert here. */
        if (error != NULL) {
                g_warning ("%s: %s", G_STRFUNC, error->message);
                g_error_free (error);
@@ -988,7 +983,7 @@ composer_load_signature_cb (EMailSignatureComboBox *combo_box,
        }
 
        /* "Edit as New Message" sets "priv->is_from_message".
-          Always put the signature at the bottom for that case. */
+        * Always put the signature at the bottom for that case. */
        top_signature =
                use_top_signature (composer) &&
                !composer->priv->is_from_message &&
@@ -1029,8 +1024,9 @@ composer_load_signature_cb (EMailSignatureComboBox *combo_box,
                g_string_append (html_buffer, "<PRE>\n");
 
        /* The signature dash convention ("-- \n") is specified
-          in the "Son of RFC 1036", section 4.3.2.
-          http://www.chemie.fu-berlin.de/outerspace/netnews/son-of-1036.html */
+        * in the "Son of RFC 1036", section 4.3.2.
+        * http://www.chemie.fu-berlin.de/outerspace/netnews/son-of-1036.html
+        */
        if (add_signature_delimiter (composer)) {
                const gchar *delim;
                const gchar *delim_nl;
@@ -1045,9 +1041,9 @@ composer_load_signature_cb (EMailSignatureComboBox *combo_box,
 
                /* Skip the delimiter if the signature already has one. */
                if (g_ascii_strncasecmp (contents, delim, strlen (delim)) == 0)
-                       ;  // skip
+                       ;  /* skip */
                else if (e_util_strstrcase (contents, delim_nl) != NULL)
-                       ;  // skip
+                       ;  /* skip */
                else
                        g_string_append (html_buffer, delim);
        }
@@ -1065,6 +1061,7 @@ composer_load_signature_cb (EMailSignatureComboBox *combo_box,
 
 insert:
        /* Remove the old signature and insert the new one. */
+
        editor = e_editor_window_get_editor (E_EDITOR_WINDOW (composer));
        editor_widget = e_editor_get_editor_widget (editor);
        selection = e_editor_widget_get_selection (editor_widget);
@@ -1072,14 +1069,15 @@ insert:
        e_editor_selection_save (selection);
 
        /* This prevents our command before/after callbacks from
-          screwing around with the signature as we insert it. */
+        * screwing around with the signature as we insert it. */
        composer->priv->in_signature_insert = TRUE;
 
        document = webkit_web_view_get_dom_document (WEBKIT_WEB_VIEW (editor_widget));
        window = webkit_dom_document_get_default_view (document);
        dom_selection = webkit_dom_dom_window_get_selection (window);
 
-       signatures = webkit_dom_document_get_elements_by_class_name (document, "-x-evolution-signature");
+       signatures = webkit_dom_document_get_elements_by_class_name (
+               document, "-x-evolution-signature");
        list_length = webkit_dom_node_list_get_length (signatures);
        for (ii = 0; ii < list_length; ii++) {
                WebKitDOMNode *node;
@@ -1089,40 +1087,42 @@ insert:
                id = webkit_dom_html_element_get_id (WEBKIT_DOM_HTML_ELEMENT (node));
 
                if (id && (strlen (id) == 1) && (*id == '1')) {
-                     webkit_dom_node_remove_child (
-                           webkit_dom_node_get_parent_node (node), node, NULL);
-                     g_free (id);
-                     break;
+                       webkit_dom_node_remove_child (
+                               webkit_dom_node_get_parent_node (node),
+                               node, NULL);
+                       g_free (id);
+                       break;
                }
 
                g_free (id);
        }
 
        if (top_signature) {
-             WebKitDOMElement *citation;
-
-             citation = webkit_dom_document_get_element_by_id (
-                                  document, "-x-evolution-reply-citation");
-             if (!citation) {
-                     webkit_dom_dom_selection_modify (
-                             dom_selection, "move", "forward", "documentBoundary");
-             } else {
-                     webkit_dom_dom_selection_set_base_and_extent (
-                             dom_selection, WEBKIT_DOM_NODE (citation), 0,
-                             WEBKIT_DOM_NODE (citation), 0, NULL);
-             }
+               WebKitDOMElement *citation;
+
+               citation = webkit_dom_document_get_element_by_id (
+                       document, "-x-evolution-reply-citation");
+               if (citation == NULL) {
+                       webkit_dom_dom_selection_modify (
+                               dom_selection, "move", "forward",
+                               "documentBoundary");
+               } else {
+                       webkit_dom_dom_selection_set_base_and_extent (
+                               dom_selection, WEBKIT_DOM_NODE (citation), 0,
+                               WEBKIT_DOM_NODE (citation), 0, NULL);
+               }
        } else {
-             webkit_dom_dom_selection_modify (
-                     dom_selection, "move", "forward", "documentBoundary");
+               webkit_dom_dom_selection_modify (
+                       dom_selection, "move", "forward", "documentBoundary");
        }
 
        if (html_buffer != NULL) {
                if (*html_buffer->str) {
                        webkit_dom_document_exec_command (
-                                 document, "insertParagraph", FALSE, "");
+                               document, "insertParagraph", FALSE, "");
                        e_editor_selection_insert_html (selection, html_buffer->str);
                        webkit_dom_document_exec_command (
-                                 document, "insertParagraph", FALSE, "");
+                               document, "insertParagraph", FALSE, "");
                }
 
                g_string_free (html_buffer, TRUE);
@@ -1189,10 +1189,10 @@ e_composer_update_signature (EMsgComposer *composer)
                return;
        }
 
-       /*XXX Signature files should be local and therefore load quickly,
-             so while we do load them asynchronously we don't allow for
-             user cancellation and we keep the composer alive until the
-             asynchronous loading is complete. */
+       /* XXX Signature files should be local and therefore load quickly,
+        *     so while we do load them asynchronously we don't allow for
+        *     user cancellation and we keep the composer alive until the
+        *     asynchronous loading is complete. */
        e_mail_signature_combo_box_load_selected (
                combo_box, G_PRIORITY_DEFAULT, NULL,
                (GAsyncReadyCallback) composer_load_signature_cb,
diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c
index 8656a2d..7185017 100644
--- a/composer/e-msg-composer.c
+++ b/composer/e-msg-composer.c
@@ -43,8 +43,6 @@
 #include <em-format/e-mail-parser.h>
 #include <em-format/e-mail-formatter-quote.h>
 
-#include <e-util/e-spell-checker.h>
-
 #include <shell/e-shell.h>
 
 typedef struct _AsyncContext AsyncContext;
@@ -284,15 +282,12 @@ emcu_remove_xevolution_headers (CamelMimeMessage *message)
 {
        struct _camel_header_raw *scan, *list = NULL;
 
-       for (scan = ((CamelMimePart *) message)->headers; scan; scan = scan->next) {
-               if (!strncmp (scan->name, "X-Evolution", 11)) {
+       for (scan = ((CamelMimePart *) message)->headers; scan; scan = scan->next)
+               if (!strncmp (scan->name, "X-Evolution", 11))
                        camel_header_raw_append (&list, scan->name, scan->value, scan->offset);
-               }
-       }
 
-       for (scan = list; scan; scan = scan->next) {
+       for (scan = list; scan; scan = scan->next)
                camel_medium_remove_header ((CamelMedium *) message, scan->name);
-       }
 
        return list;
 }
@@ -304,13 +299,11 @@ destination_list_to_vector_sized (GList *list,
        EDestination **destv;
        gint i = 0;
 
-       if (n == -1) {
+       if (n == -1)
                n = g_list_length (list);
-       }
 
-       if (n == 0) {
+       if (n == 0)
                return NULL;
-       }
 
        destv = g_new (EDestination *, n + 1);
        while (list != NULL && i < n) {
@@ -339,22 +332,18 @@ text_requires_quoted_printable (const gchar *text,
        const gchar *p;
        gsize pos;
 
-       if (!text) {
+       if (!text)
                return FALSE;
-       }
 
-       if (len == -1) {
+       if (len == -1)
                len = strlen (text);
-       }
 
-       if (len >= 5 && strncmp (text, "From ", 5) == 0) {
+       if (len >= 5 && strncmp (text, "From ", 5) == 0)
                return TRUE;
-       }
 
        for (p = text, pos = 0; pos + 6 <= len; pos++, p++) {
-               if (*p == '\n' && strncmp (p + 1, "From ", 5) == 0) {
+               if (*p == '\n' && strncmp (p + 1, "From ", 5) == 0)
                        return TRUE;
-               }
        }
 
        return FALSE;
@@ -369,14 +358,12 @@ best_encoding (GByteArray *buf,
        gint status, count = 0;
        iconv_t cd;
 
-       if (!charset) {
+       if (!charset)
                return -1;
-       }
 
        cd = camel_iconv_open (charset, "utf-8");
-       if (cd == (iconv_t) -1) {
+       if (cd == (iconv_t) -1)
                return -1;
-       }
 
        in = (gchar *) buf->data;
        inlen = buf->len;
@@ -385,26 +372,23 @@ best_encoding (GByteArray *buf,
                outlen = sizeof (outbuf);
                status = camel_iconv (cd, (const gchar **) &in, &inlen, &out, &outlen);
                for (ch = out - 1; ch >= outbuf; ch--) {
-                       if ((guchar) *ch > 127) {
+                       if ((guchar) *ch > 127)
                                count++;
-                       }
                }
        } while (status == (gsize) -1 && errno == E2BIG);
        camel_iconv_close (cd);
 
-       if (status == (gsize) -1 || status > 0) {
+       if (status == (gsize) -1 || status > 0)
                return -1;
-       }
 
        if ((count == 0) && (buf->len < LINE_LEN) &&
                !text_requires_quoted_printable (
-               (const gchar *) buf->data, buf->len)) {
+               (const gchar *) buf->data, buf->len))
                return CAMEL_TRANSFER_ENCODING_7BIT;
-       } else if (count <= buf->len * 0.17) {
+       else if (count <= buf->len * 0.17)
                return CAMEL_TRANSFER_ENCODING_QUOTEDPRINTABLE;
-       } else {
+       else
                return CAMEL_TRANSFER_ENCODING_BASE64;
-       }
 }
 
 static gchar *
@@ -477,9 +461,8 @@ set_recipients_from_destv (CamelMimeMessage *msg,
                                seen_hidden_list = TRUE;
                        }
 
-                       if (camel_address_decode (CAMEL_ADDRESS (target), text_addr) <= 0) {
+                       if (camel_address_decode (CAMEL_ADDRESS (target), text_addr) <= 0)
                                camel_internet_address_add (target, "", text_addr);
-                       }
                }
        }
 
@@ -493,26 +476,23 @@ set_recipients_from_destv (CamelMimeMessage *msg,
                                seen_hidden_list = TRUE;
                        }
 
-                       if (camel_address_decode (CAMEL_ADDRESS (target), text_addr) <= 0) {
+                       if (camel_address_decode (CAMEL_ADDRESS (target), text_addr) <= 0)
                                camel_internet_address_add (target, "", text_addr);
-                       }
                }
        }
 
        for (i = 0; bcc_destv != NULL && bcc_destv[i] != NULL; ++i) {
                text_addr = e_destination_get_address (bcc_destv[i]);
                if (text_addr && *text_addr) {
-                       if (camel_address_decode (CAMEL_ADDRESS (bcc_addr), text_addr) <= 0) {
+                       if (camel_address_decode (CAMEL_ADDRESS (bcc_addr), text_addr) <= 0)
                                camel_internet_address_add (bcc_addr, "", text_addr);
-                       }
                }
        }
 
-       if (redirect) {
+       if (redirect)
                header = CAMEL_RECIPIENT_TYPE_RESENT_TO;
-       } else {
+       else
                header = CAMEL_RECIPIENT_TYPE_TO;
-       }
 
        if (camel_address_length (CAMEL_ADDRESS (to_addr)) > 0) {
                camel_mime_message_set_recipients (msg, header, to_addr);
@@ -621,9 +601,8 @@ build_message_headers (EMsgComposer *composer,
 
                addr = camel_internet_address_new ();
 
-               if (camel_address_unformat (CAMEL_ADDRESS (addr), reply_to) > 0) {
+               if (camel_address_unformat (CAMEL_ADDRESS (addr), reply_to) > 0)
                        camel_mime_message_set_reply_to (message, addr);
-               }
 
                g_object_unref (addr);
        }
@@ -730,9 +709,8 @@ composer_build_message_pgp (AsyncContext *context,
        gboolean encrypt_to_self;
 
        /* Return silently if we're not signing or encrypting with PGP. */
-       if (!context->pgp_sign && !context->pgp_encrypt) {
+       if (!context->pgp_sign && !context->pgp_encrypt)
                return TRUE;
-       }
 
        extension_name = E_SOURCE_EXTENSION_OPENPGP;
        extension = e_source_get_extension (context->source, extension_name);
@@ -748,18 +726,16 @@ composer_build_message_pgp (AsyncContext *context,
                CAMEL_MEDIUM (mime_part),
                context->top_level_part);
 
-       if (context->top_level_part == context->text_plain_part) {
+       if (context->top_level_part == context->text_plain_part)
                camel_mime_part_set_encoding (
                        mime_part, context->plain_encoding);
-       }
 
        g_object_unref (context->top_level_part);
        context->top_level_part = NULL;
 
-       if (pgp_key_id == NULL || *pgp_key_id == '\0') {
+       if (pgp_key_id == NULL || *pgp_key_id == '\0')
                camel_internet_address_get (
                        context->from, 0, NULL, &pgp_key_id);
-       }
 
        if (context->pgp_sign) {
                CamelMimePart *npart;
@@ -796,11 +772,10 @@ composer_build_message_pgp (AsyncContext *context,
 
                /* Check to see if we should encrypt to self.
                 * NB: Gets removed immediately after use. */
-               if (encrypt_to_self && pgp_key_id != NULL) {
+               if (encrypt_to_self && pgp_key_id != NULL)
                        g_ptr_array_add (
                                context->recipients,
                                g_strdup (pgp_key_id));
-               }
 
                cipher = camel_gpg_context_new (context->session);
                camel_gpg_context_set_always_trust (
@@ -812,11 +787,10 @@ composer_build_message_pgp (AsyncContext *context,
 
                g_object_unref (cipher);
 
-               if (encrypt_to_self && pgp_key_id != NULL) {
+               if (encrypt_to_self && pgp_key_id != NULL)
                        g_ptr_array_set_size (
                                context->recipients,
                                context->recipients->len - 1);
-               }
 
                g_object_unref (mime_part);
 
@@ -854,9 +828,8 @@ composer_build_message_smime (AsyncContext *context,
        gboolean have_encryption_certificate;
 
        /* Return silently if we're not signing or encrypting with S/MIME. */
-       if (!context->smime_sign && !context->smime_encrypt) {
+       if (!context->smime_sign && !context->smime_encrypt)
                return TRUE;
-       }
 
        extension_name = E_SOURCE_EXTENSION_SMIME;
        extension = e_source_get_extension (context->source, extension_name);
@@ -905,10 +878,9 @@ composer_build_message_smime (AsyncContext *context,
                CAMEL_MEDIUM (mime_part),
                context->top_level_part);
 
-       if (context->top_level_part == context->text_plain_part) {
+       if (context->top_level_part == context->text_plain_part)
                camel_mime_part_set_encoding (
                        mime_part, context->plain_encoding);
-       }
 
        g_object_unref (context->top_level_part);
        context->top_level_part = NULL;
@@ -957,11 +929,10 @@ composer_build_message_smime (AsyncContext *context,
 
                /* Check to see if we should encrypt to self.
                 * NB: Gets removed immediately after use. */
-               if (encrypt_to_self) {
+               if (encrypt_to_self)
                        g_ptr_array_add (
                                context->recipients, g_strdup (
                                encryption_certificate));
-               }
 
                cipher = camel_smime_context_new (context->session);
                camel_smime_context_set_encrypt_key (
@@ -979,11 +950,10 @@ composer_build_message_smime (AsyncContext *context,
                if (!success)
                        return FALSE;
 
-               if (encrypt_to_self) {
+               if (encrypt_to_self)
                        g_ptr_array_set_size (
                                context->recipients,
                                context->recipients->len - 1);
-               }
        }
 
        /* we replaced the message directly, we don't want to do reparenting foo */
@@ -1078,27 +1048,22 @@ composer_add_evolution_format_header (CamelMedium *medium,
 
        string = g_string_sized_new (128);
 
-       if (flags & COMPOSER_FLAG_HTML_CONTENT) {
+       if (flags & COMPOSER_FLAG_HTML_CONTENT)
                g_string_append (string, "text/html");
-       } else {
+       else
                g_string_append (string, "text/plain");
-       }
 
-       if (flags & COMPOSER_FLAG_PGP_SIGN) {
+       if (flags & COMPOSER_FLAG_PGP_SIGN)
                g_string_append (string, ", pgp-sign");
-       }
 
-       if (flags & COMPOSER_FLAG_PGP_ENCRYPT) {
+       if (flags & COMPOSER_FLAG_PGP_ENCRYPT)
                g_string_append (string, ", pgp-encrypt");
-       }
 
-       if (flags & COMPOSER_FLAG_SMIME_SIGN) {
+       if (flags & COMPOSER_FLAG_SMIME_SIGN)
                g_string_append (string, ", smime-sign");
-       }
 
-       if (flags & COMPOSER_FLAG_SMIME_ENCRYPT) {
+       if (flags & COMPOSER_FLAG_SMIME_ENCRYPT)
                g_string_append (string, ", smime-encrypt");
-       }
 
        camel_medium_add_header (
                medium, "X-Evolution-Format", string->str);
@@ -1153,21 +1118,17 @@ composer_build_message (EMsgComposer *composer,
        context->session = e_msg_composer_ref_session (composer);
        context->from = e_msg_composer_get_from (composer);
 
-       if (flags & COMPOSER_FLAG_PGP_SIGN) {
+       if (flags & COMPOSER_FLAG_PGP_SIGN)
                context->pgp_sign = TRUE;
-       }
 
-       if (flags & COMPOSER_FLAG_PGP_ENCRYPT) {
+       if (flags & COMPOSER_FLAG_PGP_ENCRYPT)
                context->pgp_encrypt = TRUE;
-       }
 
-       if (flags & COMPOSER_FLAG_SMIME_SIGN) {
+       if (flags & COMPOSER_FLAG_SMIME_SIGN)
                context->smime_sign = TRUE;
-       }
 
-       if (flags & COMPOSER_FLAG_SMIME_ENCRYPT) {
+       if (flags & COMPOSER_FLAG_SMIME_ENCRYPT)
                context->smime_encrypt = TRUE;
-       }
 
        context->need_thread =
                context->pgp_sign || context->pgp_encrypt ||
@@ -1215,22 +1176,19 @@ composer_build_message (EMsgComposer *composer,
                const gchar *mdn_address;
 
                mdn_address = e_source_mail_identity_get_reply_to (mi);
-               if (mdn_address == NULL) {
+               if (mdn_address == NULL)
                        mdn_address = e_source_mail_identity_get_address (mi);
-               }
-               if (mdn_address != NULL) {
+               if (mdn_address != NULL)
                        camel_medium_add_header (
                                CAMEL_MEDIUM (context->message),
                                "Disposition-Notification-To", mdn_address);
-               }
        }
 
        /* X-Priority */
-       if (flags & COMPOSER_FLAG_PRIORITIZE_MESSAGE) {
+       if (flags & COMPOSER_FLAG_PRIORITIZE_MESSAGE)
                camel_medium_add_header (
                        CAMEL_MEDIUM (context->message),
                        "X-Priority", "1");
-       }
 
        /* Organization */
        if (organization != NULL && *organization != '\0') {
@@ -1334,14 +1292,12 @@ composer_build_message (EMsgComposer *composer,
        g_object_unref (mem_stream);
 
        /* Convert the stream to the appropriate charset. */
-       if (iconv_charset && g_ascii_strcasecmp (iconv_charset, "UTF-8") != 0) {
+       if (iconv_charset && g_ascii_strcasecmp (iconv_charset, "UTF-8") != 0)
                composer_add_charset_filter (stream, iconv_charset);
-       }
 
        /* Encode the stream to quoted-printable if necessary. */
-       if (context->plain_encoding == CAMEL_TRANSFER_ENCODING_QUOTEDPRINTABLE) {
+       if (context->plain_encoding == CAMEL_TRANSFER_ENCODING_QUOTEDPRINTABLE)
                composer_add_quoted_printable_filter (stream);
-       }
 
        /* Construct the content object.  This does not block since
         * we're constructing the data wrapper from a memory stream. */
@@ -1353,9 +1309,8 @@ composer_build_message (EMsgComposer *composer,
        context->text_plain_part = g_object_ref (context->top_level_part);
 
        /* Avoid re-encoding the data when adding it to a MIME part. */
-       if (context->plain_encoding == CAMEL_TRANSFER_ENCODING_QUOTEDPRINTABLE) {
+       if (context->plain_encoding == CAMEL_TRANSFER_ENCODING_QUOTEDPRINTABLE)
                context->top_level_part->encoding = context->plain_encoding;
-       }
 
        camel_data_wrapper_set_mime_type_field (
                context->top_level_part, type);
@@ -1402,9 +1357,8 @@ composer_build_message (EMsgComposer *composer,
                stream = camel_stream_filter_new (mem_stream);
                g_object_unref (mem_stream);
 
-               if (pre_encode) {
+               if (pre_encode)
                        composer_add_quoted_printable_filter (stream);
-               }
 
                /* Construct the content object.  This does not block since
                 * we're constructing the data wrapper from a memory stream. */
@@ -1417,10 +1371,9 @@ composer_build_message (EMsgComposer *composer,
                        html, "text/html; charset=utf-8");
 
                /* Avoid re-encoding the data when adding it to a MIME part. */
-               if (pre_encode) {
+               if (pre_encode)
                        html->encoding =
                                CAMEL_TRANSFER_ENCODING_QUOTEDPRINTABLE;
-               }
 
                /* Build the multipart/alternative */
                body = camel_multipart_new ();
@@ -1497,10 +1450,9 @@ composer_build_message (EMsgComposer *composer,
                camel_medium_set_content (
                        CAMEL_MEDIUM (part),
                        context->top_level_part);
-               if (context->top_level_part == context->text_plain_part) {
+               if (context->top_level_part == context->text_plain_part)
                        camel_mime_part_set_encoding (
                                part, context->plain_encoding);
-               }
                camel_multipart_add_part (multipart, part);
                g_object_unref (part);
 
@@ -1512,14 +1464,13 @@ composer_build_message (EMsgComposer *composer,
        }
 
        /* Run any blocking operations in a separate thread. */
-       if (context->need_thread) {
+       if (context->need_thread)
                g_simple_async_result_run_in_thread (
                        simple, (GSimpleAsyncThreadFunc)
                        composer_build_message_thread,
                        io_priority, cancellable);
-       } else {
+       else
                g_simple_async_result_complete (simple);
-       }
 
        g_object_unref (simple);
 }
@@ -1539,23 +1490,20 @@ composer_build_message_finish (EMsgComposer *composer,
        simple = G_SIMPLE_ASYNC_RESULT (result);
        context = g_simple_async_result_get_op_res_gpointer (simple);
 
-       if (g_simple_async_result_propagate_error (simple, error)) {
+       if (g_simple_async_result_propagate_error (simple, error))
                return NULL;
-       }
 
        /* Finalize some details before returning. */
 
-       if (!context->skip_content) {
+       if (!context->skip_content)
                camel_medium_set_content (
                        CAMEL_MEDIUM (context->message),
                        context->top_level_part);
-       }
 
-       if (context->top_level_part == context->text_plain_part) {
+       if (context->top_level_part == context->text_plain_part)
                camel_mime_part_set_encoding (
                        CAMEL_MIME_PART (context->message),
                        context->plain_encoding);
-       }
 
        return g_object_ref (context->message);
 }
@@ -1575,9 +1523,8 @@ use_top_signature (EMsgComposer *composer)
         * signature placement is either there already, or pt it at the
         * bottom regardless of a preferences (which is for reply anyway,
         * not for Edit as new) */
-       if (priv->is_from_message) {
+       if (priv->is_from_message)
                return FALSE;
-       }
 
        /* FIXME This should be an EMsgComposer property. */
        settings = g_settings_new ("org.gnome.evolution.mail");
@@ -1643,9 +1590,8 @@ set_editor_text (EMsgComposer *composer,
        editor_widget = e_editor_get_editor_widget (editor);
        e_editor_widget_set_text_html (editor_widget, body);
 
-       if (set_signature) {
+       if (set_signature)
                e_composer_update_signature (composer);
-       }
 
 }
 
@@ -1673,9 +1619,8 @@ msg_composer_subject_changed_cb (EMsgComposer *composer)
        table = e_msg_composer_get_header_table (composer);
        subject = e_composer_header_table_get_subject (table);
 
-       if (subject == NULL || *subject == '\0') {
+       if (subject == NULL || *subject == '\0')
                subject = _("Compose Message");
-       }
 
        gtk_window_set_title (GTK_WINDOW (composer), subject);
 }
@@ -1702,9 +1647,8 @@ msg_composer_mail_identity_changed_cb (EMsgComposer *composer)
        uid = e_composer_header_table_get_identity_uid (table);
 
        /* Silently return if no identity is selected. */
-       if (uid == NULL) {
+       if (uid == NULL)
                return;
-       }
 
        source = e_composer_header_table_ref_source (table, uid);
        g_return_if_fail (source != NULL);
@@ -1906,16 +1850,14 @@ msg_composer_drag_data_received_cb (GtkWidget *widget,
        if (e_editor_widget_get_html_mode (editor_widget)) {
                /* If we're receiving an image, we want the image to be
                 * inserted in the message body.  Let GtkHtml handle it. */
-               if (gtk_selection_data_targets_include_image (selection, TRUE)) {
+               if (gtk_selection_data_targets_include_image (selection, TRUE))
                        return;
-               }
 
                /* If we're receiving URIs and -all- the URIs point to
                 * image files, we want the image(s) to be inserted in
                 * the message body.  Let GtkHtml handle it. */
-               if (e_composer_selection_is_image_uris (composer, selection)) {
+               if (e_composer_selection_is_image_uris (composer, selection))
                        return;
-               }
        }
 
                if (e_composer_selection_is_base64_uris (composer, selection)) {
@@ -1960,7 +1902,7 @@ msg_composer_notify_header_cb (EMsgComposer *composer)
 
        editor = e_editor_window_get_editor (E_EDITOR_WINDOW (composer));
        editor_widget = e_editor_get_editor_widget (editor);
-       e_editor_widget_set_changed(editor_widget, TRUE);
+       e_editor_widget_set_changed (editor_widget, TRUE);
 }
 
 static gboolean
@@ -1974,9 +1916,8 @@ msg_composer_delete_event_cb (EMsgComposer *composer)
 
        /* If the "async" action group is insensitive, it means an
         * asynchronous operation is in progress.  Block the event. */
-       if (!gtk_action_group_get_sensitive (composer->priv->async_actions)) {
+       if (!gtk_action_group_get_sensitive (composer->priv->async_actions))
                return TRUE;
-       }
 
        application = GTK_APPLICATION (shell);
        windows = gtk_application_get_windows (application);
@@ -2103,9 +2044,8 @@ msg_composer_gallery_drag_data_get (GtkIconView *icon_view,
        GdkAtom target;
        gchar *str_data;
 
-       if (!gtk_icon_view_get_cursor (icon_view, &path, &cell)) {
+       if (!gtk_icon_view_get_cursor (icon_view, &path, &cell))
                return;
-       }
 
        target = gtk_selection_data_get_target (selection_data);
 
@@ -2460,27 +2400,24 @@ msg_composer_image_uri (EMsgComposer *composer,
        hash_table = composer->priv->inline_images_by_url;
        part = g_hash_table_lookup (hash_table, uri);
 
-       if (part == NULL && g_str_has_prefix (uri, "file:")) {
+       if (part == NULL && g_str_has_prefix (uri, "file:"))
                part = e_msg_composer_add_inline_image_from_file (
                        composer, uri + 5);
-       }
 
        if (part == NULL && g_str_has_prefix (uri, "cid:")) {
                hash_table = composer->priv->inline_images;
                part = g_hash_table_lookup (hash_table, uri);
        }
 
-       if (part == NULL) {
+       if (part == NULL)
                return NULL;
-       }
 
        composer->priv->current_images =
                g_list_prepend (composer->priv->current_images, part);
 
        cid = camel_mime_part_get_content_id (part);
-       if (cid == NULL) {
+       if (cid == NULL)
                return NULL;
-       }
 
        return g_strconcat ("cid:", cid, NULL);
 }
@@ -2509,25 +2446,25 @@ msg_composer_accumulator_false_abort (GSignalInvocationHint *ihint,
 }
 
 static void
-e_msg_composer_class_init (EMsgComposerClass *klass)
+e_msg_composer_class_init (EMsgComposerClass *class)
 {
        GObjectClass *object_class;
        GtkWidgetClass *widget_class;
 
-       g_type_class_add_private (klass, sizeof (EMsgComposerPrivate));
+       g_type_class_add_private (class, sizeof (EMsgComposerPrivate));
 
-       object_class = G_OBJECT_CLASS (klass);
+       object_class = G_OBJECT_CLASS (class);
        object_class->set_property = msg_composer_set_property;
        object_class->get_property = msg_composer_get_property;
        object_class->dispose = msg_composer_dispose;
        object_class->finalize = msg_composer_finalize;
        object_class->constructed = msg_composer_constructed;
 
-       widget_class = GTK_WIDGET_CLASS (klass);
+       widget_class = GTK_WIDGET_CLASS (class);
        widget_class->map = msg_composer_map;
        widget_class->key_press_event = msg_composer_key_press_event;
 
-       klass->presend = msg_composer_presend;
+       class->presend = msg_composer_presend;
 
        g_object_class_install_property (
                object_class,
@@ -2552,7 +2489,7 @@ e_msg_composer_class_init (EMsgComposerClass *klass)
 
        signals[PRESEND] = g_signal_new (
                "presend",
-               G_OBJECT_CLASS_TYPE (klass),
+               G_OBJECT_CLASS_TYPE (class),
                G_SIGNAL_RUN_LAST,
                G_STRUCT_OFFSET (EMsgComposerClass, presend),
                msg_composer_accumulator_false_abort,
@@ -2562,7 +2499,7 @@ e_msg_composer_class_init (EMsgComposerClass *klass)
 
        signals[SEND] = g_signal_new (
                "send",
-               G_OBJECT_CLASS_TYPE (klass),
+               G_OBJECT_CLASS_TYPE (class),
                G_SIGNAL_RUN_LAST,
                G_STRUCT_OFFSET (EMsgComposerClass, send),
                NULL, NULL,
@@ -2573,7 +2510,7 @@ e_msg_composer_class_init (EMsgComposerClass *klass)
 
        signals[SAVE_TO_DRAFTS] = g_signal_new (
                "save-to-drafts",
-               G_OBJECT_CLASS_TYPE (klass),
+               G_OBJECT_CLASS_TYPE (class),
                G_SIGNAL_RUN_LAST,
                G_STRUCT_OFFSET (EMsgComposerClass, save_to_drafts),
                NULL, NULL,
@@ -2584,7 +2521,7 @@ e_msg_composer_class_init (EMsgComposerClass *klass)
 
        signals[SAVE_TO_OUTBOX] = g_signal_new (
                "save-to-outbox",
-               G_OBJECT_CLASS_TYPE (klass),
+               G_OBJECT_CLASS_TYPE (class),
                G_SIGNAL_RUN_LAST,
                G_STRUCT_OFFSET (EMsgComposerClass, save_to_outbox),
                NULL, NULL,
@@ -2595,7 +2532,7 @@ e_msg_composer_class_init (EMsgComposerClass *klass)
 
        signals[PRINT] = g_signal_new (
                "print",
-               G_OBJECT_CLASS_TYPE (klass),
+               G_OBJECT_CLASS_TYPE (class),
                G_SIGNAL_RUN_LAST,
                0, NULL, NULL,
                e_marshal_VOID__ENUM_OBJECT_OBJECT,
@@ -2656,9 +2593,8 @@ e_msg_composer_flush_pending_body (EMsgComposer *composer)
 
        body = g_object_get_data (G_OBJECT (composer), "body:text");
 
-       if (body != NULL) {
+       if (body != NULL)
                set_editor_text (composer, body, FALSE);
-       }
 
        g_object_set_data (G_OBJECT (composer), "body:text", NULL);
 }
@@ -2675,9 +2611,8 @@ add_attachments_handle_mime_part (EMsgComposer *composer,
        EEditor *editor;
        EEditorWidget *editor_widget;
 
-       if (!mime_part) {
+       if (!mime_part)
                return;
-       }
 
        content_type = camel_mime_part_get_content_type (mime_part);
        wrapper = camel_medium_get_content (CAMEL_MEDIUM (mime_part));
@@ -2757,9 +2692,8 @@ e_msg_composer_add_message_attachments (EMsgComposer *composer,
        CamelDataWrapper *wrapper;
 
        wrapper = camel_medium_get_content (CAMEL_MEDIUM (message));
-       if (!CAMEL_IS_MULTIPART (wrapper)) {
+       if (!CAMEL_IS_MULTIPART (wrapper))
                return;
-       }
 
        add_attachments_from_multipart (
                composer, (CamelMultipart *) wrapper, just_inlines, 0);
@@ -2782,24 +2716,21 @@ handle_multipart_signed (EMsgComposer *composer,
        content_type = camel_data_wrapper_get_mime_type_field (content);
        protocol = camel_content_type_param (content_type, "protocol");
 
-       if (protocol == NULL) {
+       if (protocol == NULL)
                action = NULL;
-       } else if (g_ascii_strcasecmp (protocol, "application/pgp-signature") == 0) {
+       else if (g_ascii_strcasecmp (protocol, "application/pgp-signature") == 0)
                action = GTK_TOGGLE_ACTION (ACTION (PGP_SIGN));
-       } else if (g_ascii_strcasecmp (protocol, "application/x-pkcs7-signature") == 0) {
+       else if (g_ascii_strcasecmp (protocol, "application/x-pkcs7-signature") == 0)
                action = GTK_TOGGLE_ACTION (ACTION (SMIME_SIGN));
-       }
 
-       if (action) {
+       if (action)
                gtk_toggle_action_set_active (action, TRUE);
-       }
 
        mime_part = camel_multipart_get_part (
                multipart, CAMEL_MULTIPART_SIGNED_CONTENT);
 
-       if (mime_part == NULL) {
+       if (mime_part == NULL)
                return;
-       }
 
        content_type = camel_mime_part_get_content_type (mime_part);
        content = camel_medium_get_content (CAMEL_MEDIUM (mime_part));
@@ -2869,17 +2800,15 @@ handle_multipart_encrypted (EMsgComposer *composer,
        content_type = camel_mime_part_get_content_type (multipart);
        protocol = camel_content_type_param (content_type, "protocol");
 
-       if (protocol && g_ascii_strcasecmp (protocol, "application/pgp-encrypted") == 0) {
+       if (protocol && g_ascii_strcasecmp (protocol, "application/pgp-encrypted") == 0)
                action = GTK_TOGGLE_ACTION (ACTION (PGP_ENCRYPT));
-       } else if (content_type && (
+       else if (content_type && (
                    camel_content_type_is (content_type, "application", "x-pkcs7-mime")
-                || camel_content_type_is (content_type, "application", "pkcs7-mime"))) {
+                || camel_content_type_is (content_type, "application", "pkcs7-mime")))
                action = GTK_TOGGLE_ACTION (ACTION (SMIME_ENCRYPT));
-       }
 
-       if (action) {
+       if (action)
                gtk_toggle_action_set_active (action, TRUE);
-       }
 
        session = e_msg_composer_ref_session (composer);
        cipher = camel_gpg_context_new (session);
@@ -2889,9 +2818,8 @@ handle_multipart_encrypted (EMsgComposer *composer,
        g_object_unref (cipher);
        g_object_unref (session);
 
-       if (valid == NULL) {
+       if (valid == NULL)
                return;
-       }
 
        camel_cipher_validity_free (valid);
 
@@ -2967,9 +2895,8 @@ handle_multipart_alternative (EMsgComposer *composer,
 
                mime_part = camel_multipart_get_part (multipart, i);
 
-               if (!mime_part) {
+               if (!mime_part)
                        continue;
-               }
 
                content_type = camel_mime_part_get_content_type (mime_part);
                content = camel_medium_get_content (CAMEL_MEDIUM (mime_part));
@@ -3051,9 +2978,8 @@ handle_multipart (EMsgComposer *composer,
 
                mime_part = camel_multipart_get_part (multipart, i);
 
-               if (!mime_part) {
+               if (!mime_part)
                        continue;
-               }
 
                content_type = camel_mime_part_get_content_type (mime_part);
                content = camel_medium_get_content (CAMEL_MEDIUM (mime_part));
@@ -3151,14 +3077,13 @@ set_signature_gui (EMsgComposer *composer)
        table = e_msg_composer_get_header_table (composer);
        combo_box = e_composer_header_table_get_signature_combo_box (table);
 
-
        editor = e_editor_window_get_editor (E_EDITOR_WINDOW (composer));
        widget = e_editor_get_editor_widget (editor);
        document = webkit_web_view_get_dom_document (WEBKIT_WEB_VIEW (widget));
 
        uid = NULL;
        nodes = webkit_dom_document_get_elements_by_class_name (
-                     document, "-x-evolution-signature");
+               document, "-x-evolution-signature");
        length = webkit_dom_node_list_get_length (nodes);
        for (ii = 0; ii < length; ii++) {
                WebKitDOMNode *node;
@@ -3167,20 +3092,19 @@ set_signature_gui (EMsgComposer *composer)
                node = webkit_dom_node_list_item (nodes, ii);
                id = webkit_dom_html_element_get_id (WEBKIT_DOM_HTML_ELEMENT (node));
                if (id && (strlen (id) == 1) && (*id == '1')) {
-                     uid = webkit_dom_element_get_attribute (
-                             WEBKIT_DOM_ELEMENT (node), "name");
-                     g_free (id);
-                     break;
+                       uid = webkit_dom_element_get_attribute (
+                               WEBKIT_DOM_ELEMENT (node), "name");
+                       g_free (id);
+                       break;
                }
                g_free (id);
        }
-       if (!uid) {
-               return;
-       }
 
-       // The combo box active ID is the signature's ESource UID.
-       gtk_combo_box_set_active_id (GTK_COMBO_BOX (combo_box), uid);
-       g_free (uid);
+       /* The combo box active ID is the signature's ESource UID. */
+       if (uid != NULL) {
+               gtk_combo_box_set_active_id (GTK_COMBO_BOX (combo_box), uid);
+               g_free (uid);
+       }
 }
 
 static void
@@ -3386,9 +3310,8 @@ e_msg_composer_new_with_message (EShell *shell,
        g_hash_table_destroy (auto_bcc);
        g_list_free (Bcc);
 
-       if (source != NULL) {
+       if (source != NULL)
                g_object_unref (source);
-       }
 
        subject = camel_mime_message_get_subject (message);
 
@@ -3660,22 +3583,6 @@ e_msg_composer_get_shell (EMsgComposer *composer)
        return E_SHELL (composer->priv->shell);
 }
 
-/**
- * e_msg_composer_get_editor:
- * @composer: an #EMsgComposer
- *
- * Returns the #EEditor widget in @composer.
- *
- * Returns: the #EEditor
- **/
-EEditor *
-e_msg_composer_get_editor (EMsgComposer *composer)
-{
-       g_return_val_if_fail (E_IS_MSG_COMPOSER (composer), NULL);
-
-       return e_editor_window_get_editor (E_EDITOR_WINDOW (composer));
-}
-
 static void
 msg_composer_send_cb (EMsgComposer *composer,
                       GAsyncResult *result,
@@ -3825,9 +3732,10 @@ msg_composer_save_to_drafts_cb (EMsgComposer *composer,
 
        g_object_unref (message);
 
-       if (e_msg_composer_is_exiting (composer)) {
-               g_object_weak_ref (G_OBJECT (context->activity), (GWeakNotify) gtk_widget_destroy, composer);
-       }
+       if (e_msg_composer_is_exiting (composer))
+               g_object_weak_ref (
+                       G_OBJECT (context->activity),
+                       (GWeakNotify) gtk_widget_destroy, composer);
 
        async_context_free (context);
 }
@@ -3927,9 +3835,8 @@ e_msg_composer_save_to_outbox (EMsgComposer *composer)
        /* This gives the user a chance to abort the save. */
        g_signal_emit (composer, signals[PRESEND], 0, &proceed_with_save);
 
-       if (!proceed_with_save) {
+       if (!proceed_with_save)
                return;
-       }
 
        editor = e_msg_composer_get_editor (composer);
 
@@ -4049,9 +3956,8 @@ list_contains_addr (const GList *list,
        g_return_val_if_fail (dest != NULL, FALSE);
 
        while (list != NULL) {
-               if (e_destination_equal (dest, list->data)) {
+               if (e_destination_equal (dest, list->data))
                        return TRUE;
-               }
 
                list = list->next;
        }
@@ -4116,9 +4022,8 @@ file_is_blacklisted (const gchar *argument)
        filename = g_file_get_path (file);
        g_object_unref (file);
 
-       if (filename == NULL) {
+       if (filename == NULL)
                return FALSE;
-       }
 
        parts = g_strsplit (filename, G_DIR_SEPARATOR_S, -1);
        n_parts = g_strv_length (parts);
@@ -4136,30 +4041,25 @@ file_is_blacklisted (const gchar *argument)
                gchar *base_dir;
 
                /* Don't blacklist files in trusted base directories. */
-               if (g_str_has_prefix (filename, g_get_user_data_dir ())) {
+               if (g_str_has_prefix (filename, g_get_user_data_dir ()))
                        blacklisted = FALSE;
-               }
-               if (g_str_has_prefix (filename, g_get_user_cache_dir ())) {
+               if (g_str_has_prefix (filename, g_get_user_cache_dir ()))
                        blacklisted = FALSE;
-               }
-               if (g_str_has_prefix (filename, g_get_user_config_dir ())) {
+               if (g_str_has_prefix (filename, g_get_user_config_dir ()))
                        blacklisted = FALSE;
-               }
 
                /* Apparently KDE still uses ~/.kde heavily, and some
                 * distributions use ~/.kde4 to distinguish KDE4 data
                 * from KDE3 data.  Trust these directories as well. */
 
                base_dir = g_build_filename (g_get_home_dir (), ".kde", NULL);
-               if (g_str_has_prefix (filename, base_dir)) {
+               if (g_str_has_prefix (filename, base_dir))
                        blacklisted = FALSE;
-               }
                g_free (base_dir);
 
                base_dir = g_build_filename (g_get_home_dir (), ".kde4", NULL);
-               if (g_str_has_prefix (filename, base_dir)) {
+               if (g_str_has_prefix (filename, base_dir))
                        blacklisted = FALSE;
-               }
                g_free (base_dir);
        }
 
@@ -4268,11 +4168,10 @@ handle_mailto (EMsgComposer *composer,
                                                E_ALERT_SINK (composer),
                                                "mail:blacklisted-file",
                                                content, NULL);
-                               if (g_ascii_strncasecmp (content, "file:", 5) == 0) {
+                               if (g_ascii_strncasecmp (content, "file:", 5) == 0)
                                        attachment = e_attachment_new_for_uri (content);
-                               } else {
+                               else
                                        attachment = e_attachment_new_for_path (content);
-                               }
                                e_attachment_store_add_attachment (store, attachment);
                                e_attachment_load_async (
                                        attachment, (GAsyncReadyCallback)
@@ -4293,9 +4192,8 @@ handle_mailto (EMsgComposer *composer,
                        p += clen;
                        if (*p == '&') {
                                p++;
-                               if (!g_ascii_strncasecmp (p, "amp;", 4)) {
+                               if (!g_ascii_strncasecmp (p, "amp;", 4))
                                        p += 4;
-                               }
                        }
                }
        }
@@ -4655,15 +4553,13 @@ e_msg_composer_add_inline_image_from_file (EMsgComposer *composer,
        dec_file_name = g_strdup (filename);
        camel_url_decode (dec_file_name);
 
-       if (!g_file_test (dec_file_name, G_FILE_TEST_IS_REGULAR)) {
+       if (!g_file_test (dec_file_name, G_FILE_TEST_IS_REGULAR))
                return NULL;
-       }
 
        stream = camel_stream_fs_new_with_name (
                dec_file_name, O_RDONLY, 0, NULL);
-       if (!stream) {
+       if (!stream)
                return NULL;
-       }
 
        wrapper = camel_data_wrapper_new ();
        camel_data_wrapper_construct_from_stream_sync (
@@ -4671,9 +4567,8 @@ e_msg_composer_add_inline_image_from_file (EMsgComposer *composer,
        g_object_unref (CAMEL_OBJECT (stream));
 
        mime_type = e_util_guess_mime_type (dec_file_name, TRUE);
-       if (mime_type == NULL) {
+       if (mime_type == NULL)
                mime_type = g_strdup ("application/octet-stream");
-       }
        camel_data_wrapper_set_mime_type (wrapper, mime_type);
        g_free (mime_type);
 
@@ -4727,11 +4622,10 @@ e_msg_composer_add_inline_image_from_mime_part (EMsgComposer *composer,
        g_object_ref (part);
 
        location = camel_mime_part_get_content_location (part);
-       if (location != NULL) {
+       if (location != NULL)
                g_hash_table_insert (
                        p->inline_images_by_url,
                        g_strdup (location), part);
-       }
 }
 
 static void
@@ -4744,10 +4638,9 @@ composer_get_message_ready (EMsgComposer *composer,
 
        message = composer_build_message_finish (composer, result, &error);
 
-       if (message != NULL) {
+       if (message != NULL)
                g_simple_async_result_set_op_res_gpointer (
                        simple, message, (GDestroyNotify) g_object_unref);
-       }
 
        if (error != NULL) {
                g_warn_if_fail (message == NULL);
@@ -4791,40 +4684,33 @@ e_msg_composer_get_message (EMsgComposer *composer,
 
        g_simple_async_result_set_check_cancellable (simple, cancellable);
 
-       if (e_editor_widget_get_html_mode (editor_widget)) {
+       if (e_editor_widget_get_html_mode (editor_widget))
                flags |= COMPOSER_FLAG_HTML_CONTENT;
-       }
 
        action = ACTION (PRIORITIZE_MESSAGE);
-       if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action))) {
+       if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)))
                flags |= COMPOSER_FLAG_PRIORITIZE_MESSAGE;
-       }
 
        action = ACTION (REQUEST_READ_RECEIPT);
-       if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action))) {
+       if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)))
                flags |= COMPOSER_FLAG_REQUEST_READ_RECEIPT;
-       }
 
        action = ACTION (PGP_SIGN);
-       if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action))) {
+       if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)))
                flags |= COMPOSER_FLAG_PGP_SIGN;
-       }
 
        action = ACTION (PGP_ENCRYPT);
-       if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action))) {
+       if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)))
                flags |= COMPOSER_FLAG_PGP_ENCRYPT;
-       }
 
 #ifdef HAVE_NSS
        action = ACTION (SMIME_SIGN);
-       if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action))) {
+       if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)))
                flags |= COMPOSER_FLAG_SMIME_SIGN;
-       }
 
        action = ACTION (SMIME_ENCRYPT);
-       if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action))) {
+       if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)))
                flags |= COMPOSER_FLAG_SMIME_ENCRYPT;
-       }
 #endif
 
        composer_build_message (
@@ -4849,9 +4735,8 @@ e_msg_composer_get_message_finish (EMsgComposer *composer,
        simple = G_SIMPLE_ASYNC_RESULT (result);
        message = g_simple_async_result_get_op_res_gpointer (simple);
 
-       if (g_simple_async_result_propagate_error (simple, error)) {
+       if (g_simple_async_result_propagate_error (simple, error))
                return NULL;
-       }
 
        g_return_val_if_fail (CAMEL_IS_MIME_MESSAGE (message), NULL);
 
@@ -4901,9 +4786,8 @@ e_msg_composer_get_message_print_finish (EMsgComposer *composer,
        simple = G_SIMPLE_ASYNC_RESULT (result);
        message = g_simple_async_result_get_op_res_gpointer (simple);
 
-       if (g_simple_async_result_propagate_error (simple, error)) {
+       if (g_simple_async_result_propagate_error (simple, error))
                return NULL;
-       }
 
        g_return_val_if_fail (CAMEL_IS_MIME_MESSAGE (message), NULL);
 
@@ -4933,9 +4817,8 @@ e_msg_composer_get_message_draft (EMsgComposer *composer,
 
        editor = e_editor_window_get_editor (E_EDITOR_WINDOW (composer));
        editor_widget = e_editor_get_editor_widget (editor);
-       if (e_editor_widget_get_html_mode (editor_widget)) {
+       if (e_editor_widget_get_html_mode (editor_widget))
                flags |= COMPOSER_FLAG_HTML_CONTENT;
-       }
 
        action = ACTION (PRIORITIZE_MESSAGE);
        if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)))
@@ -4985,9 +4868,8 @@ e_msg_composer_get_message_draft_finish (EMsgComposer *composer,
        simple = G_SIMPLE_ASYNC_RESULT (result);
        message = g_simple_async_result_get_op_res_gpointer (simple);
 
-       if (g_simple_async_result_propagate_error (simple, error)) {
+       if (g_simple_async_result_propagate_error (simple, error))
                return NULL;
-       }
 
        g_return_val_if_fail (CAMEL_IS_MIME_MESSAGE (message), NULL);
 
@@ -5045,9 +4927,8 @@ e_msg_composer_get_reply_to (EMsgComposer *composer)
        table = e_msg_composer_get_header_table (composer);
 
        reply_to = e_composer_header_table_get_reply_to (table);
-       if (reply_to == NULL || *reply_to == '\0') {
+       if (reply_to == NULL || *reply_to == '\0')
                return NULL;
-       }
 
        address = camel_internet_address_new ();
        if (camel_address_unformat (CAMEL_ADDRESS (address), reply_to) == -1) {
@@ -5125,13 +5006,11 @@ e_msg_composer_can_close (EMsgComposer *composer,
 
        /* this means that there is an async operation running,
         * in which case the composer cannot be closed */
-       if (!gtk_action_group_get_sensitive (composer->priv->async_actions)) {
+       if (!gtk_action_group_get_sensitive (composer->priv->async_actions))
                return FALSE;
-       }
 
-       if (!e_editor_widget_get_changed (editor_widget)) {
+       if (!e_editor_widget_get_changed (editor_widget))
                return TRUE;
-       }
 
        window = gtk_widget_get_window (widget);
        gdk_window_raise (window);
@@ -5139,9 +5018,8 @@ e_msg_composer_can_close (EMsgComposer *composer,
        table = e_msg_composer_get_header_table (composer);
        subject = e_composer_header_table_get_subject (table);
 
-       if (subject == NULL || *subject == '\0') {
+       if (subject == NULL || *subject == '\0')
                subject = _("Untitled Message");
-       }
 
        response = e_alert_run_dialog_for_args (
                GTK_WINDOW (composer),
@@ -5170,8 +5048,8 @@ e_msg_composer_can_close (EMsgComposer *composer,
 void
 e_msg_composer_reply_indent (EMsgComposer *composer)
 {
-       /* FIXME WEBKIT We already have indentation implementation. Why
-        * is this done?
+#if 0  /* FIXME WEBKIT We already have indentation implementation.
+        *              Why is this done? */
        GtkhtmlEditor *editor;
 
        g_return_if_fail (E_IS_MSG_COMPOSER (composer));
@@ -5193,7 +5071,7 @@ e_msg_composer_reply_indent (EMsgComposer *composer)
        gtkhtml_editor_run_command (editor, "indent-zero");
        gtkhtml_editor_run_command (editor, "text-default-color");
        gtkhtml_editor_run_command (editor, "italic-off");
-       */
+#endif
 }
 
 EComposerHeaderTable *
@@ -5230,11 +5108,10 @@ e_load_spell_languages (ESpellChecker *spell_checker)
                gchar *language_code = strv[ii];
                ESpellDictionary *dict;
 
-               dict = e_spell_checker_lookup_dictionary (spell_checker, language_code);
-               if (dict != NULL) {
-                       spell_dicts = g_list_prepend (
-                               spell_dicts, (gpointer) dict);
-               }
+               dict = e_spell_checker_lookup_dictionary (
+                       spell_checker, language_code);
+               if (dict != NULL)
+                       spell_dicts = g_list_prepend (spell_dicts, dict);
        }
 
        g_strfreev (strv);
@@ -5247,10 +5124,8 @@ e_load_spell_languages (ESpellChecker *spell_checker)
 
                dict = e_spell_checker_lookup_dictionary (spell_checker, NULL);
 
-               if (dict) {
-                       spell_dicts = g_list_prepend (
-                               spell_dicts, (gpointer) dict);
-               }
+               if (dict != NULL)
+                       spell_dicts = g_list_prepend (spell_dicts, dict);
        }
 
        return spell_dicts;
diff --git a/composer/e-msg-composer.h b/composer/e-msg-composer.h
index d1b8089..6dd783f 100644
--- a/composer/e-msg-composer.h
+++ b/composer/e-msg-composer.h
@@ -97,8 +97,6 @@ EFocusTracker *       e_msg_composer_get_focus_tracker
                                                (EMsgComposer *composer);
 CamelSession * e_msg_composer_ref_session      (EMsgComposer *composer);
 EShell *       e_msg_composer_get_shell        (EMsgComposer *composer);
-EEditor *
-               e_msg_composer_get_editor       (EMsgComposer *composer);
 
 void           e_msg_composer_send             (EMsgComposer *composer);
 void           e_msg_composer_save_to_drafts   (EMsgComposer *composer);
diff --git a/e-util/e-color-chooser-widget.c b/e-util/e-color-chooser-widget.c
index 7cc0b06..a662a3c 100644
--- a/e-util/e-color-chooser-widget.c
+++ b/e-util/e-color-chooser-widget.c
@@ -26,10 +26,9 @@
 
 #include <glib/gi18n-lib.h>
 
-G_DEFINE_TYPE (
-       EColorChooserWidget,
-       e_color_chooser_widget,
-       GTK_TYPE_COLOR_CHOOSER_WIDGET);
+#define E_COLOR_CHOOSER_WIDGET_GET_PRIVATE(obj) \
+       (G_TYPE_INSTANCE_GET_PRIVATE \
+       ((obj), E_TYPE_COLOR_CHOOSER_WIDGET, EColorChooserWidgetPrivate))
 
 /**
  * EColorChooserWidget:
@@ -49,6 +48,11 @@ enum {
 
 static guint signals[LAST_SIGNAL];
 
+G_DEFINE_TYPE (
+       EColorChooserWidget,
+       e_color_chooser_widget,
+       GTK_TYPE_COLOR_CHOOSER_WIDGET);
+
 /* UGLY UGLY UGLY!
  * GtkColorChooserWidget sends "color-activated" signal
  * only when user double-clicks the color. This is totally stupid
@@ -65,7 +69,7 @@ static guint signals[LAST_SIGNAL];
  */
 static gboolean
 color_chooser_widget_button_press_event (GtkWidget *widget,
-                                        GdkEventButton *event)
+                                         GdkEventButton *event)
 {
        if ((event->type == GDK_BUTTON_PRESS) &&
            (event->button == GDK_BUTTON_PRIMARY)) {
@@ -80,8 +84,8 @@ color_chooser_widget_button_press_event (GtkWidget *widget,
 
 static void
 color_chooser_widget_color_activated (GtkColorChooser *chooser,
-                                     GdkRGBA *color,
-                                     gpointer user_data)
+                                      GdkRGBA *color,
+                                      gpointer user_data)
 {
        /* Because we are simulating the double-click by accepting only
         * single click, the color in the swatch is actually not selected,
@@ -92,6 +96,7 @@ color_chooser_widget_color_activated (GtkColorChooser *chooser,
 static gboolean
 run_color_chooser_dialog (gpointer user_data)
 {
+       EColorChooserWidgetPrivate *priv;
        GtkWidget *parent_window;
        GtkWidget *parent_chooser;
        GtkWidget *dialog;
@@ -99,7 +104,6 @@ run_color_chooser_dialog (gpointer user_data)
 
        parent_chooser = user_data;
 
-
        g_object_set (
                G_OBJECT (parent_chooser), "show-editor", FALSE, NULL);
 
@@ -107,11 +111,11 @@ run_color_chooser_dialog (gpointer user_data)
        if (!parent_window)
                parent_window = gtk_widget_get_toplevel (parent_chooser);
        dialog = gtk_dialog_new_with_buttons (
-                       N_("Choose custom color"),
-                       GTK_WINDOW (parent_window),
-                       GTK_DIALOG_MODAL,
-                       GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
-                       GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, NULL);
+               N_("Choose custom color"),
+               GTK_WINDOW (parent_window),
+               GTK_DIALOG_MODAL,
+               GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
+               GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, NULL);
 
        chooser = gtk_color_chooser_widget_new ();
        g_object_set (G_OBJECT (chooser), "show-editor", TRUE, NULL);
@@ -132,14 +136,16 @@ run_color_chooser_dialog (gpointer user_data)
 
        gtk_widget_destroy (dialog);
 
-       E_COLOR_CHOOSER_WIDGET (parent_chooser)->priv->showing_editor = FALSE;
+       priv = E_COLOR_CHOOSER_WIDGET_GET_PRIVATE (parent_chooser);
+       priv->showing_editor = FALSE;
+
        return FALSE;
 }
 
 static void
 color_chooser_show_editor_notify_cb (EColorChooserWidget *chooser,
-                                    GParamSpec *pspec,
-                                    gpointer user_data)
+                                     GParamSpec *pspec,
+                                     gpointer user_data)
 {
        gboolean show_editor;
 
@@ -160,9 +166,9 @@ color_chooser_show_editor_notify_cb (EColorChooserWidget *chooser,
 }
 
 void
-e_color_chooser_widget_class_init (EColorChooserWidgetClass *klass)
+e_color_chooser_widget_class_init (EColorChooserWidgetClass *class)
 {
-       g_type_class_add_private (klass, sizeof (EColorChooserWidgetPrivate));
+       g_type_class_add_private (class, sizeof (EColorChooserWidgetPrivate));
 
        signals[SIGNAL_EDITOR_ACTIVATED] = g_signal_new (
                "editor-activated",
@@ -212,9 +218,7 @@ e_color_chooser_widget_init (EColorChooserWidget *widget)
 {
        GtkWidget *swatch;
 
-       widget->priv = G_TYPE_INSTANCE_GET_PRIVATE (
-                       widget, E_TYPE_COLOR_CHOOSER_WIDGET,
-                       EColorChooserWidgetPrivate);
+       widget->priv = E_COLOR_CHOOSER_WIDGET_GET_PRIVATE (widget);
        widget->priv->showing_editor = FALSE;
 
        swatch = find_swatch (GTK_CONTAINER (widget));
diff --git a/e-util/e-color-chooser-widget.h b/e-util/e-color-chooser-widget.h
index 5960542..3b7c60d 100644
--- a/e-util/e-color-chooser-widget.h
+++ b/e-util/e-color-chooser-widget.h
@@ -53,18 +53,16 @@ typedef struct _EColorChooserWidgetPrivate EColorChooserWidgetPrivate;
 
 struct _EColorChooserWidget {
        GtkColorChooserWidget parent;
-
        EColorChooserWidgetPrivate *priv;
 };
 
 struct _EColorChooserWidgetClass {
        GtkColorChooserWidgetClass parent_class;
 
-       void    (*editor_activated)             (GtkColorChooserWidget *chooser);
+       void            (*editor_activated)     (GtkColorChooserWidget *chooser);
 };
 
-GType          e_color_chooser_widget_get_type (void);
-
+GType          e_color_chooser_widget_get_type (void) G_GNUC_CONST;
 GtkWidget *    e_color_chooser_widget_new      (void);
 
 G_END_DECLS
diff --git a/e-util/e-color-combo.c b/e-util/e-color-combo.c
index ebc3565..5c79439 100644
--- a/e-util/e-color-combo.c
+++ b/e-util/e-color-combo.c
@@ -29,27 +29,9 @@
 #include <cairo/cairo.h>
 #include <alloca.h>
 
-G_DEFINE_TYPE (
-       EColorCombo,
-       e_color_combo,
-       GTK_TYPE_BUTTON);
-
-enum {
-       PROP_0,
-       PROP_CURRENT_COLOR,
-       PROP_DEFAULT_COLOR,
-       PROP_DEFAULT_LABEL,
-       PROP_DEFAULT_TRANSPARENT,
-       PROP_PALETTE,
-       PROP_POPUP_SHOWN
-};
-
-enum {
-       ACTIVATED,
-       POPUP,
-       POPDOWN,
-       LAST_SIGNAL
-};
+#define E_COLOR_COMBO_GET_PRIVATE(obj) \
+       (G_TYPE_INSTANCE_GET_PRIVATE \
+       ((obj), E_TYPE_COLOR_COMBO, EColorComboPrivate))
 
 struct _EColorComboPrivate {
        GtkWidget *color_frame;
@@ -72,6 +54,23 @@ struct _EColorComboPrivate {
        GdkDevice *grab_mouse;
 };
 
+enum {
+       PROP_0,
+       PROP_CURRENT_COLOR,
+       PROP_DEFAULT_COLOR,
+       PROP_DEFAULT_LABEL,
+       PROP_DEFAULT_TRANSPARENT,
+       PROP_PALETTE,
+       PROP_POPUP_SHOWN
+};
+
+enum {
+       ACTIVATED,
+       POPUP,
+       POPDOWN,
+       LAST_SIGNAL
+};
+
 static guint signals[LAST_SIGNAL];
 static GdkRGBA black = { 0, 0, 0, 1 };
 
@@ -126,6 +125,11 @@ static struct {
        { "#FFFFFF", N_("white") }
 };
 
+G_DEFINE_TYPE (
+       EColorCombo,
+       e_color_combo,
+       GTK_TYPE_BUTTON);
+
 static void
 color_combo_reposition_window (EColorCombo *combo)
 {
@@ -194,17 +198,23 @@ color_combo_popup (EColorCombo *combo)
 
        /* Try to grab the pointer and keyboard. */
        window = gtk_widget_get_window (combo->priv->window);
-       grab_status = !keyboard ||
-               gdk_device_grab (keyboard, window,
+       grab_status =
+               (keyboard == NULL) ||
+               (gdk_device_grab (
+                       keyboard, window,
                        GDK_OWNERSHIP_WINDOW, TRUE,
                        GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK,
-                       NULL, activate_time) == GDK_GRAB_SUCCESS;
+                       NULL, activate_time) == GDK_GRAB_SUCCESS);
        if (grab_status) {
-               grab_status = !mouse ||
-                       gdk_device_grab (mouse, window,
+               grab_status =
+                       (mouse == NULL) ||
+                       (gdk_device_grab (
+                               mouse, window,
                                GDK_OWNERSHIP_WINDOW, TRUE,
-                               GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK,
-                               NULL, activate_time) == GDK_GRAB_SUCCESS;
+                               GDK_BUTTON_PRESS_MASK |
+                               GDK_BUTTON_RELEASE_MASK |
+                               GDK_POINTER_MOTION_MASK,
+                               NULL, activate_time) == GDK_GRAB_SUCCESS);
                if (!grab_status && keyboard)
                        gdk_device_ungrab (keyboard, activate_time);
        }
@@ -219,7 +229,8 @@ color_combo_popup (EColorCombo *combo)
 
        /* Always make sure the editor-mode is OFF */
        g_object_set (
-               G_OBJECT (combo->priv->chooser_widget), "show-editor", FALSE, NULL);
+               G_OBJECT (combo->priv->chooser_widget),
+               "show-editor", FALSE, NULL);
 }
 
 static void
@@ -246,8 +257,8 @@ color_combo_popdown (EColorCombo *combo)
 
 static gboolean
 color_combo_window_button_press_event_cb (EColorCombo *combo,
-                                         GdkEvent *event,
-                                         gpointer user_data)
+                                          GdkEvent *event,
+                                          gpointer user_data)
 {
        GtkWidget *event_widget;
 
@@ -268,8 +279,8 @@ color_combo_window_button_press_event_cb (EColorCombo *combo,
 
 static gboolean
 color_combo_window_button_release_event_cb (EColorCombo *combo,
-                                           GdkEvent  *event,
-                                           gpointer user_data)
+                                            GdkEvent *event,
+                                            gpointer user_data)
 {
        gboolean popup_in_progress;
 
@@ -306,8 +317,8 @@ color_combo_child_hide_cb (EColorCombo *combo)
 
 static void
 color_combo_get_preferred_width (GtkWidget *widget,
-                                gint *min_width,
-                                gint *natural_width)
+                                 gint *min_width,
+                                 gint *natural_width)
 {
        GtkWidgetClass *widget_class;
 
@@ -324,7 +335,7 @@ color_combo_get_preferred_width (GtkWidget *widget,
 
 static gboolean
 color_combo_button_press_event_cb (GtkWidget *widget,
-                                  GdkEventButton *event)
+                                   GdkEventButton *event)
 {
        EColorCombo *combo = E_COLOR_COMBO (widget);
        GdkWindow *window;
@@ -354,7 +365,7 @@ color_combo_button_press_event_cb (GtkWidget *widget,
        if (combo->priv->popup_shown) {
                color_combo_popdown (combo);
        } else {
-               color_combo_popup (combo);
+               color_combo_popup (combo);
        }
 
        return FALSE;
@@ -362,8 +373,8 @@ color_combo_button_press_event_cb (GtkWidget *widget,
 
 static void
 color_combo_swatch_color_changed (EColorCombo *combo,
-                                 GdkRGBA *color,
-                                 gpointer user_data)
+                                  GdkRGBA *color,
+                                  gpointer user_data)
 {
        g_signal_emit (combo, signals[ACTIVATED], 0, color);
 
@@ -374,8 +385,8 @@ color_combo_swatch_color_changed (EColorCombo *combo,
 
 static void
 color_combo_draw_frame_cb (GtkWidget *widget,
-                          cairo_t *cr,
-                          gpointer user_data)
+                           cairo_t *cr,
+                           gpointer user_data)
 {
        EColorCombo *combo = user_data;
        GdkRGBA rgba;
@@ -395,7 +406,7 @@ color_combo_draw_frame_cb (GtkWidget *widget,
 
 static void
 color_combo_set_default_color_cb (EColorCombo *combo,
-                                 gpointer user_data)
+                                  gpointer user_data)
 {
        GdkRGBA color;
 
@@ -461,8 +472,10 @@ color_combo_get_property (GObject *object,
                           GValue *value,
                           GParamSpec *pspec)
 {
+       EColorComboPrivate *priv;
        GdkRGBA color;
-       EColorComboPrivate *priv = E_COLOR_COMBO (object)->priv;
+
+       priv = E_COLOR_COMBO_GET_PRIVATE (object);
 
        switch (property_id) {
                case PROP_CURRENT_COLOR:
@@ -509,49 +522,44 @@ color_combo_dispose (GObject *object)
 {
        EColorComboPrivate *priv;
 
-       priv = E_COLOR_COMBO (object)->priv;
-
-       if (priv->palette) {
-               g_list_free_full (
-                       priv->palette,
-                       (GDestroyNotify) gdk_color_free);
-               priv->palette = NULL;
-       }
+       priv = E_COLOR_COMBO_GET_PRIVATE (object);
 
-       if (priv->current_color) {
+       if (priv->current_color != NULL) {
                gdk_rgba_free (priv->current_color);
                priv->current_color = NULL;
        }
 
-       if (priv->default_color) {
+       if (priv->default_color != NULL) {
                gdk_rgba_free (priv->default_color);
                priv->default_color = NULL;
        }
 
+       g_list_free_full (priv->palette, (GDestroyNotify) gdk_color_free);
+       priv->palette = NULL;
+
        /* Chain up to parent's dispose() method. */
        G_OBJECT_CLASS (e_color_combo_parent_class)->dispose (object);
 }
 
 static void
-e_color_combo_class_init (EColorComboClass *klass)
+e_color_combo_class_init (EColorComboClass *class)
 {
        GObjectClass *object_class;
        GtkWidgetClass *widget_class;
 
-       e_color_combo_parent_class = g_type_class_peek_parent (klass);
-       g_type_class_add_private (klass, sizeof (EColorComboPrivate));
+       g_type_class_add_private (class, sizeof (EColorComboPrivate));
 
-       object_class = G_OBJECT_CLASS (klass);
+       object_class = G_OBJECT_CLASS (class);
        object_class->set_property = color_combo_set_property;
        object_class->get_property = color_combo_get_property;
        object_class->dispose = color_combo_dispose;
 
-       widget_class = GTK_WIDGET_CLASS (klass);
+       widget_class = GTK_WIDGET_CLASS (class);
        widget_class->get_preferred_width = color_combo_get_preferred_width;
        widget_class->button_press_event = color_combo_button_press_event_cb;
 
-       klass->popup = color_combo_popup;
-       klass->popdown = color_combo_popdown;
+       class->popup = color_combo_popup;
+       class->popdown = color_combo_popdown;
 
        g_object_class_install_property (
                object_class,
@@ -617,7 +625,7 @@ e_color_combo_class_init (EColorComboClass *klass)
 
        signals[ACTIVATED] = g_signal_new (
                "activated",
-               G_OBJECT_CLASS_TYPE (klass),
+               G_OBJECT_CLASS_TYPE (class),
                G_SIGNAL_RUN_LAST,
                G_STRUCT_OFFSET (EColorComboClass, activated),
                NULL, NULL,
@@ -626,7 +634,7 @@ e_color_combo_class_init (EColorComboClass *klass)
 
        signals[POPUP] = g_signal_new (
                "popup",
-               G_OBJECT_CLASS_TYPE (klass),
+               G_OBJECT_CLASS_TYPE (class),
                G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
                G_STRUCT_OFFSET (EColorComboClass, popup),
                NULL, NULL,
@@ -635,7 +643,7 @@ e_color_combo_class_init (EColorComboClass *klass)
 
        signals[POPDOWN] = g_signal_new (
                "popdown",
-               G_OBJECT_CLASS_TYPE (klass),
+               G_OBJECT_CLASS_TYPE (class),
                G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
                G_STRUCT_OFFSET (EColorComboClass, popdown),
                NULL, NULL,
@@ -643,107 +651,113 @@ e_color_combo_class_init (EColorComboClass *klass)
                G_TYPE_NONE, 0);
 
        gtk_binding_entry_add_signal (
-               gtk_binding_set_by_class (klass),
+               gtk_binding_set_by_class (class),
                GDK_KEY_Down, GDK_MOD1_MASK, "popup", 0);
        gtk_binding_entry_add_signal (
-               gtk_binding_set_by_class (klass),
+               gtk_binding_set_by_class (class),
                GDK_KEY_KP_Down, GDK_MOD1_MASK, "popup", 0);
 
        gtk_binding_entry_add_signal (
-               gtk_binding_set_by_class (klass),
+               gtk_binding_set_by_class (class),
                GDK_KEY_Up, GDK_MOD1_MASK, "popdown", 0);
        gtk_binding_entry_add_signal (
-               gtk_binding_set_by_class (klass),
+               gtk_binding_set_by_class (class),
                GDK_KEY_KP_Up, GDK_MOD1_MASK, "popdown", 0);
        gtk_binding_entry_add_signal (
-               gtk_binding_set_by_class (klass),
+               gtk_binding_set_by_class (class),
                GDK_KEY_Escape, 0, "popdown", 0);
 }
 
 static void
 e_color_combo_init (EColorCombo *combo)
 {
+       GtkWidget *container;
        GtkWidget *toplevel;
-       GtkWidget *layout;
        GtkWidget *widget;
        GList *palette;
        guint ii;
 
-       combo->priv = G_TYPE_INSTANCE_GET_PRIVATE (
-               combo, E_TYPE_COLOR_COMBO, EColorComboPrivate);
+       combo->priv = E_COLOR_COMBO_GET_PRIVATE (combo);
 
-       layout = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
-       gtk_container_add (GTK_CONTAINER (combo), layout);
+       widget = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+       gtk_container_add (GTK_CONTAINER (combo), widget);
+
+       container = widget;
 
        /* Build the combo button. */
        widget = gtk_frame_new (NULL);
-       gtk_box_pack_start (GTK_BOX (layout), widget, TRUE, TRUE, 0);
+       gtk_box_pack_start (GTK_BOX (container), widget, TRUE, TRUE, 0);
        g_signal_connect (
                widget, "draw",
                G_CALLBACK (color_combo_draw_frame_cb), combo);
        combo->priv->color_frame = widget;
 
        widget = gtk_separator_new (GTK_ORIENTATION_VERTICAL);
-       gtk_box_pack_start (GTK_BOX (layout), widget, FALSE, TRUE, 0);
+       gtk_box_pack_start (GTK_BOX (container), widget, FALSE, TRUE, 0);
 
        widget = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_NONE);
-       gtk_box_pack_start (GTK_BOX (layout), widget, FALSE, TRUE, 0);
+       gtk_box_pack_start (GTK_BOX (container), widget, FALSE, TRUE, 0);
        combo->priv->arrow = widget;
 
-
        /* Build the drop-down menu */
-       combo->priv->window = gtk_window_new (GTK_WINDOW_POPUP);
-       gtk_container_set_border_width (GTK_CONTAINER (combo->priv->window), 5);
-       gtk_window_set_resizable (GTK_WINDOW (combo->priv->window), FALSE);
+       widget = gtk_window_new (GTK_WINDOW_POPUP);
+       gtk_container_set_border_width (GTK_CONTAINER (widget), 5);
+       gtk_window_set_resizable (GTK_WINDOW (widget), FALSE);
        gtk_window_set_type_hint (
-               GTK_WINDOW (combo->priv->window), GDK_WINDOW_TYPE_HINT_COMBO);
+               GTK_WINDOW (widget), GDK_WINDOW_TYPE_HINT_COMBO);
+       combo->priv->window = widget;
+
        toplevel = gtk_widget_get_toplevel (GTK_WIDGET (combo));
-       if (gtk_widget_is_toplevel (toplevel)) {
+       if (GTK_IS_WINDOW (toplevel)) {
                gtk_window_group_add_window (
                        gtk_window_get_group (GTK_WINDOW (toplevel)),
-                       GTK_WINDOW (combo->priv->window ));
+                       GTK_WINDOW (widget));
                gtk_window_set_transient_for (
-                       GTK_WINDOW (combo->priv->window), GTK_WINDOW (toplevel));
+                       GTK_WINDOW (widget), GTK_WINDOW (toplevel));
        }
 
        g_signal_connect_swapped (
-               combo->priv->window, "show",
+               widget, "show",
                G_CALLBACK (color_combo_child_show_cb), combo);
        g_signal_connect_swapped (
-               combo->priv->window, "hide",
+               widget, "hide",
                G_CALLBACK (color_combo_child_hide_cb), combo);
        g_signal_connect_swapped (
-               combo->priv->window, "button-press-event",
+               widget, "button-press-event",
                G_CALLBACK (color_combo_window_button_press_event_cb), combo);
        g_signal_connect_swapped (
-               combo->priv->window, "button-release-event",
+               widget, "button-release-event",
                G_CALLBACK (color_combo_window_button_release_event_cb), combo);
 
-       layout = gtk_grid_new ();
-       gtk_grid_set_row_spacing (GTK_GRID (layout), 5);
-       gtk_container_add (GTK_CONTAINER (combo->priv->window), layout);
+       container = widget;
+
+       widget = gtk_grid_new ();
+       gtk_grid_set_row_spacing (GTK_GRID (widget), 5);
+       gtk_container_add (GTK_CONTAINER (container), widget);
+
+       container = widget;
 
        widget = gtk_button_new ();
-       gtk_grid_attach (GTK_GRID (layout), widget, 0, 0, 1, 1);
+       gtk_grid_attach (GTK_GRID (container), widget, 0, 0, 1, 1);
        combo->priv->default_button = widget;
+
        g_signal_connect_swapped (
-               combo->priv->default_button, "clicked",
+               widget, "clicked",
                G_CALLBACK (color_combo_set_default_color_cb), combo);
        g_signal_connect_swapped (
-               combo->priv->default_button, "clicked",
+               widget, "clicked",
                G_CALLBACK (color_combo_popdown), combo);
 
-       combo->priv->chooser_widget = e_color_chooser_widget_new ();
-       g_object_set_data (
-               G_OBJECT (combo->priv->chooser_widget),
-               "window", combo->priv->window);
-       gtk_grid_attach (
-               GTK_GRID (layout), combo->priv->chooser_widget, 0, 1, 1, 1);
+       widget = e_color_chooser_widget_new ();
+       g_object_set_data (G_OBJECT (widget), "window", combo->priv->window);
+       gtk_grid_attach (GTK_GRID (container), widget, 0, 1, 1, 1);
+       combo->priv->chooser_widget = widget;
+
        g_signal_connect_swapped (
-               combo->priv->chooser_widget, "color-activated",
+               widget, "color-activated",
                G_CALLBACK (color_combo_swatch_color_changed), combo);
        g_signal_connect_swapped (
-               combo->priv->chooser_widget, "editor-activated",
+               widget, "editor-activated",
                G_CALLBACK (color_combo_popdown), combo);
 
        palette = NULL;
@@ -759,17 +773,6 @@ e_color_combo_init (EColorCombo *combo)
 
        combo->priv->current_color = gdk_rgba_copy (&black);
        combo->priv->default_color = gdk_rgba_copy (&black);
-       /*
-       for (ii = 0; ii < NUM_CUSTOM_COLORS; ii++) {
-               widget = color_combo_new_swatch_button (
-                       combo, _("custom"), &black);
-               gtk_table_attach (
-                       GTK_TABLE (container), widget,
-                       ii, ii + 1, 6, 7, 0, 0, 0, 0);
-               combo->priv->custom[ii] = g_object_ref (
-                       gtk_bin_get_child (GTK_BIN (widget)));
-       }
-       */
 }
 
 GtkWidget *
@@ -780,7 +783,7 @@ e_color_combo_new (void)
 
 GtkWidget *
 e_color_combo_new_defaults (GdkRGBA *default_color,
-                           const gchar *default_label)
+                            const gchar *default_label)
 {
        g_return_val_if_fail (default_color != NULL, NULL);
        g_return_val_if_fail (default_label != NULL, NULL);
@@ -810,7 +813,7 @@ e_color_combo_popdown (EColorCombo *combo)
 
 void
 e_color_combo_get_current_color (EColorCombo *combo,
-                                GdkRGBA *color)
+                                 GdkRGBA *color)
 {
        g_return_if_fail (E_IS_COLOR_COMBO (combo));
        g_return_if_fail (color != NULL);
@@ -823,7 +826,7 @@ e_color_combo_get_current_color (EColorCombo *combo,
 
 void
 e_color_combo_set_current_color (EColorCombo *combo,
-                                const GdkRGBA *color)
+                                 const GdkRGBA *color)
 {
        g_return_if_fail (E_IS_COLOR_COMBO (combo));
 
@@ -850,7 +853,7 @@ e_color_combo_set_current_color (EColorCombo *combo,
 
 void
 e_color_combo_get_default_color (EColorCombo *combo,
-                                GdkRGBA *color)
+                                 GdkRGBA *color)
 {
        g_return_if_fail (E_IS_COLOR_COMBO (combo));
        g_return_if_fail (color != NULL);
@@ -863,7 +866,7 @@ e_color_combo_get_default_color (EColorCombo *combo,
 
 void
 e_color_combo_set_default_color (EColorCombo *combo,
-                                const GdkRGBA *color)
+                                 const GdkRGBA *color)
 {
        g_return_if_fail (E_IS_COLOR_COMBO (combo));
 
@@ -896,7 +899,7 @@ e_color_combo_get_default_label (EColorCombo *combo)
 
 void
 e_color_combo_set_default_label (EColorCombo *combo,
-                                const gchar *text)
+                                 const gchar *text)
 {
        g_return_if_fail (E_IS_COLOR_COMBO (combo));
 
@@ -915,7 +918,7 @@ e_color_combo_get_default_transparent (EColorCombo *combo)
 
 void
 e_color_combo_set_default_transparent (EColorCombo *combo,
-                                      gboolean transparent)
+                                       gboolean transparent)
 {
        g_return_if_fail (E_IS_COLOR_COMBO (combo));
 
@@ -934,7 +937,7 @@ e_color_combo_get_palette (EColorCombo *combo)
 
 void
 e_color_combo_set_palette (EColorCombo *combo,
-                          GList *palette)
+                           GList *palette)
 {
        gint ii, count, colors_per_line;
        GList *iter;
@@ -958,7 +961,6 @@ e_color_combo_set_palette (EColorCombo *combo,
        }
        combo->priv->palette = g_list_reverse (combo->priv->palette);
 
-
        gtk_color_chooser_add_palette (
                GTK_COLOR_CHOOSER (combo->priv->chooser_widget),
                GTK_ORIENTATION_HORIZONTAL, 0, 0, NULL);
diff --git a/e-util/e-color-combo.h b/e-util/e-color-combo.h
index 265d1ee..41f7fd1 100644
--- a/e-util/e-color-combo.h
+++ b/e-util/e-color-combo.h
@@ -65,39 +65,32 @@ struct _EColorComboClass {
                                                 GdkRGBA *color);
 };
 
-GType          e_color_combo_get_type  (void);
+GType          e_color_combo_get_type          (void) G_GNUC_CONST;
 GtkWidget *    e_color_combo_new               (void);
 GtkWidget *    e_color_combo_new_defaults      (GdkRGBA *default_color,
                                                 const gchar *default_label);
 void           e_color_combo_popup             (EColorCombo *combo);
 void           e_color_combo_popdown           (EColorCombo *combo);
-
 void           e_color_combo_get_current_color (EColorCombo *combo,
                                                 GdkRGBA *rgba);
-
 void           e_color_combo_set_current_color (EColorCombo *combo,
                                                 const GdkRGBA *color);
-
 void           e_color_combo_get_default_color (EColorCombo *combo,
                                                 GdkRGBA *color);
 void           e_color_combo_set_default_color (EColorCombo *combo,
                                                 const GdkRGBA *default_color);
-
 const gchar *  e_color_combo_get_default_label (EColorCombo *combo);
 void           e_color_combo_set_default_label (EColorCombo *combo,
                                                 const gchar *text);
-
 gboolean       e_color_combo_get_default_transparent
                                                (EColorCombo *combo);
 void           e_color_combo_set_default_transparent
                                                (EColorCombo *combo,
                                                 gboolean transparent);
-
-GList  *       e_color_combo_get_palette       (EColorCombo *combo);
+GList  *       e_color_combo_get_palette       (EColorCombo *combo);
 void           e_color_combo_set_palette       (EColorCombo *combo,
                                                 GList *palette);
 
-
 G_END_DECLS
 
 #endif /* E_COLOR_COMBO_H */
diff --git a/e-util/e-editor-actions.c b/e-util/e-editor-actions.c
index 7dc3e31..3d4ffd5 100644
--- a/e-util/e-editor-actions.c
+++ b/e-util/e-editor-actions.c
@@ -202,7 +202,7 @@ action_context_delete_row_cb (GtkAction *action,
 
 static void
 action_context_delete_table_cb (GtkAction *action,
-                               EEditor *editor)
+                                EEditor *editor)
 {
        WebKitDOMElement *table;
 
@@ -425,7 +425,7 @@ action_indent_cb (GtkAction *action,
 
 static void
 action_insert_emoticon_cb (GtkAction *action,
-                          EEditor *editor)
+                           EEditor *editor)
 {
        EEditorWidget *widget;
        EEditorSelection *selection;
@@ -452,10 +452,10 @@ action_insert_html_file_cb (GtkToggleAction *action,
        GtkFileFilter *filter;
 
        dialog = gtk_file_chooser_dialog_new (
-                       _("Insert HTML File"), NULL,
-                       GTK_FILE_CHOOSER_ACTION_OPEN,
-                       GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
-                       GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, NULL);
+               _("Insert HTML File"), NULL,
+               GTK_FILE_CHOOSER_ACTION_OPEN,
+               GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
+               GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, NULL);
 
        filter = gtk_file_filter_new ();
        gtk_file_filter_set_name (filter, _("HTML file"));
@@ -463,8 +463,9 @@ action_insert_html_file_cb (GtkToggleAction *action,
        gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
 
        if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) {
-               GFile *file = gtk_file_chooser_get_file (
-                                       GTK_FILE_CHOOSER (dialog));
+               GFile *file;
+
+               file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (dialog));
 
                /* XXX Need a way to cancel this. */
                g_file_load_contents_async (
@@ -484,20 +485,20 @@ action_insert_image_cb (GtkAction *action,
 {
        GtkWidget *dialog;
 
-       dialog = e_image_chooser_dialog_new (
-                       _("Insert Image"), NULL);
+       dialog = e_image_chooser_dialog_new (_("Insert Image"), NULL);
 
        if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) {
-               gchar *uri;
+               EEditorWidget *editor_widget;
                EEditorSelection *selection;
+               gchar *uri;
+
+               uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (dialog));
 
-                uri = gtk_file_chooser_get_uri (
-                               GTK_FILE_CHOOSER (dialog));
+               editor_widget = e_editor_get_editor_widget (editor);
+               selection = e_editor_widget_get_selection (editor_widget);
+               e_editor_selection_insert_image (selection, uri);
 
-                selection = e_editor_widget_get_selection (
-                               e_editor_get_editor_widget (editor));
-                e_editor_selection_insert_image (selection, uri);
-                g_free (uri);
+               g_free (uri);
        }
 
        gtk_widget_destroy (dialog);
@@ -507,10 +508,9 @@ static void
 action_insert_link_cb (GtkAction *action,
                        EEditor *editor)
 {
-       if (editor->priv->link_dialog == NULL) {
+       if (editor->priv->link_dialog == NULL)
                editor->priv->link_dialog =
                        e_editor_link_dialog_new (editor);
-       }
 
        gtk_window_present (GTK_WINDOW (editor->priv->link_dialog));
 }
@@ -519,10 +519,9 @@ static void
 action_insert_rule_cb (GtkAction *action,
                        EEditor *editor)
 {
-       if (editor->priv->hrule_dialog == NULL) {
+       if (editor->priv->hrule_dialog == NULL)
                editor->priv->hrule_dialog =
                        e_editor_hrule_dialog_new (editor);
-       }
 
        gtk_window_present (GTK_WINDOW (editor->priv->hrule_dialog));
 }
@@ -531,10 +530,9 @@ static void
 action_insert_table_cb (GtkAction *action,
                         EEditor *editor)
 {
-       if (editor->priv->table_dialog == NULL) {
+       if (editor->priv->table_dialog == NULL)
                editor->priv->table_dialog =
                        e_editor_table_dialog_new (editor);
-       }
 
        gtk_window_present (GTK_WINDOW (editor->priv->table_dialog));
 }
@@ -547,10 +545,10 @@ action_insert_text_file_cb (GtkAction *action,
        GtkFileFilter *filter;
 
        dialog = gtk_file_chooser_dialog_new (
-                       _("Insert text file"), NULL,
-                       GTK_FILE_CHOOSER_ACTION_OPEN,
-                       GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
-                       GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, NULL);
+               _("Insert text file"), NULL,
+               GTK_FILE_CHOOSER_ACTION_OPEN,
+               GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
+               GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, NULL);
 
        filter = gtk_file_filter_new ();
        gtk_file_filter_set_name (filter, _("Text file"));
@@ -558,8 +556,9 @@ action_insert_text_file_cb (GtkAction *action,
        gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
 
        if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) {
-               GFile *file = gtk_file_chooser_get_file (
-                                       GTK_FILE_CHOOSER (dialog));
+               GFile *file;
+
+               file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (dialog));
 
                /* XXX Need a way to cancel this. */
                g_file_load_contents_async (
@@ -636,8 +635,10 @@ update_mode_combobox (gpointer data)
        editor_widget = e_editor_get_editor_widget (editor);
        is_html = e_editor_widget_get_html_mode (editor_widget);
 
-       action = gtk_action_group_get_action (editor->priv->core_actions, "mode-html");
-       gtk_radio_action_set_current_value (GTK_RADIO_ACTION (action), (is_html ? TRUE : FALSE));
+       action = gtk_action_group_get_action (
+               editor->priv->core_actions, "mode-html");
+       gtk_radio_action_set_current_value (
+               GTK_RADIO_ACTION (action), (is_html ? 1 : 0));
 
        return FALSE;
 }
@@ -682,8 +683,6 @@ action_mode_cb (GtkRadioAction *action,
        gtk_action_set_sensitive (ACTION (STYLE_ADDRESS), is_html);
 }
 
-
-
 static void
 action_paste_cb (GtkAction *action,
                  EEditor *editor)
@@ -894,13 +893,13 @@ static void
 action_show_webkit_inspector_cb (GtkAction *action,
                                  EEditor *editor)
 {
-        WebKitWebInspector *inspector;
-        EEditorWidget *widget;
+       WebKitWebInspector *inspector;
+       EEditorWidget *widget;
 
-        widget = e_editor_get_editor_widget (editor);
-        inspector = webkit_web_view_get_inspector (WEBKIT_WEB_VIEW (widget));
+       widget = e_editor_get_editor_widget (editor);
+       inspector = webkit_web_view_get_inspector (WEBKIT_WEB_VIEW (widget));
 
-        webkit_web_inspector_show (inspector);
+       webkit_web_inspector_show (inspector);
 }
 
 /*****************************************************************************
@@ -1664,19 +1663,22 @@ static void
 editor_actions_setup_languages_menu (EEditor *editor)
 {
        ESpellChecker *checker;
+       EEditorWidget *editor_widget;
        GtkUIManager *manager;
        GtkActionGroup *action_group;
-       GList *available_dicts, *iter;
+       GList *list, *link;
        guint merge_id;
 
        manager = editor->priv->manager;
        action_group = editor->priv->language_actions;
-       checker = e_editor_widget_get_spell_checker (editor->priv->editor_widget);
-       available_dicts = e_spell_checker_list_available_dicts (checker);
+       editor_widget = e_editor_get_editor_widget (editor);
+       checker = e_editor_widget_get_spell_checker (editor_widget);
        merge_id = gtk_ui_manager_new_merge_id (manager);
 
-       for (iter = available_dicts; iter; iter = iter->next) {
-               ESpellDictionary *dictionary = iter->data;
+       list = e_spell_checker_list_available_dicts (checker);
+
+       for (link = list; link != NULL; link = g_list_next (link)) {
+               ESpellDictionary *dictionary = link->data;
                GtkToggleAction *action;
 
                action = gtk_toggle_action_new (
@@ -1701,7 +1703,7 @@ editor_actions_setup_languages_menu (EEditor *editor)
                        GTK_UI_MANAGER_AUTO, FALSE);
        }
 
-       g_list_free (available_dicts);
+       g_list_free (list);
 }
 
 static void
@@ -1761,7 +1763,7 @@ editor_actions_setup_spell_check_menu (EEditor *editor)
                        G_CALLBACK (action_context_spell_add_cb), editor);
 
                /* Visibility is dependent on whether the
-                  corresponding language action is active. */
+                * corresponding language action is active. */
                gtk_action_set_visible (action, FALSE);
 
                gtk_action_group_add_action (action_group, action);
diff --git a/e-util/e-editor-actions.h b/e-util/e-editor-actions.h
index 4d50ac7..8f987d5 100644
--- a/e-util/e-editor-actions.h
+++ b/e-util/e-editor-actions.h
@@ -151,4 +151,5 @@
        E_EDITOR_ACTION ((editor), "unindent")
 #define E_EDITOR_ACTION_WEBKIT_INSPECTOR(editor) \
        E_EDITOR_ACTION ((editor), "webkit-inspector")
+
 #endif /* E_EDITOR_ACTIONS_H */
diff --git a/e-util/e-editor-cell-dialog.c b/e-util/e-editor-cell-dialog.c
index 13640e3..7314a9a 100644
--- a/e-util/e-editor-cell-dialog.c
+++ b/e-util/e-editor-cell-dialog.c
@@ -32,17 +32,9 @@
 #include "e-image-chooser-dialog.h"
 #include "e-misc-utils.h"
 
-G_DEFINE_TYPE (
-       EEditorCellDialog,
-       e_editor_cell_dialog,
-       E_TYPE_EDITOR_DIALOG);
-
-enum {
-       SCOPE_CELL,
-       SCOPE_ROW,
-       SCOPE_COLUMN,
-       SCOPE_TABLE
-} DialogScope;
+#define E_EDITOR_CELL_DIALOG_GET_PRIVATE(obj) \
+       (G_TYPE_INSTANCE_GET_PRIVATE \
+       ((obj), E_TYPE_EDITOR_CELL_DIALOG, EEditorCellDialogPrivate))
 
 struct _EEditorCellDialogPrivate {
        GtkWidget *scope_cell_button;
@@ -70,17 +62,29 @@ struct _EEditorCellDialogPrivate {
        guint scope;
 };
 
+enum {
+       SCOPE_CELL,
+       SCOPE_ROW,
+       SCOPE_COLUMN,
+       SCOPE_TABLE
+} DialogScope;
+
 static GdkRGBA white = { 1, 1, 1, 1 };
 
 typedef void (*DOMStrFunc) (WebKitDOMHTMLTableCellElement *cell, const gchar *val, gpointer user_data);
 typedef void (*DOMUlongFunc) (WebKitDOMHTMLTableCellElement *cell, gulong val, gpointer user_data);
 typedef void (*DOMBoolFunc) (WebKitDOMHTMLTableCellElement *cell, gboolean val, gpointer user_data);
 
+G_DEFINE_TYPE (
+       EEditorCellDialog,
+       e_editor_cell_dialog,
+       E_TYPE_EDITOR_DIALOG);
+
 static void
 call_cell_dom_func (WebKitDOMHTMLTableCellElement *cell,
-                   gpointer func,
-                   GValue *value,
-                   gpointer user_data)
+                    gpointer func,
+                    GValue *value,
+                    gpointer user_data)
 {
        if (G_VALUE_HOLDS_STRING (value)) {
                DOMStrFunc f = func;
@@ -96,9 +100,9 @@ call_cell_dom_func (WebKitDOMHTMLTableCellElement *cell,
 
 static void
 for_each_cell_do (WebKitDOMElement *row,
-                 gpointer func,
-                 GValue *value,
-                 gpointer user_data)
+                  gpointer func,
+                  GValue *value,
+                  gpointer user_data)
 {
        WebKitDOMHTMLCollection *cells;
        gulong ii, length;
@@ -119,9 +123,9 @@ for_each_cell_do (WebKitDOMElement *row,
 
 static void
 editor_cell_dialog_set_attribute (EEditorCellDialog *dialog,
-                                 gpointer func,
-                                 GValue *value,
-                                 gpointer user_data)
+                                  gpointer func,
+                                  GValue *value,
+                                  gpointer user_data)
 {
        if (dialog->priv->scope == SCOPE_CELL) {
 
@@ -201,7 +205,6 @@ editor_cell_dialog_set_attribute (EEditorCellDialog *dialog,
        }
 }
 
-
 static void
 editor_cell_dialog_set_scope (EEditorCellDialog *dialog)
 {
@@ -268,19 +271,19 @@ editor_cell_dialog_set_wrap_text (EEditorCellDialog *dialog)
        GValue val = { 0 };
 
        g_value_init (&val, G_TYPE_BOOLEAN);
-       g_value_set_boolean (&val,
+       g_value_set_boolean (
+               &val,
                !gtk_toggle_button_get_active (
                        GTK_TOGGLE_BUTTON (dialog->priv->wrap_text_check)));
 
-
        editor_cell_dialog_set_attribute (
                dialog, webkit_dom_html_table_cell_element_set_no_wrap, &val, NULL);
 }
 
 static void
 cell_set_header_style (WebKitDOMHTMLTableCellElement *cell,
-                      gboolean header_style,
-                      gpointer user_data)
+                       gboolean header_style,
+                       gpointer user_data)
 {
        EEditorCellDialog *dialog = user_data;
        WebKitDOMDocument *document;
@@ -338,11 +341,11 @@ editor_cell_dialog_set_header_style (EEditorCellDialog *dialog)
        GValue val = { 0 };
 
        g_value_init (&val, G_TYPE_BOOLEAN);
-       g_value_set_boolean (&val,
+       g_value_set_boolean (
+               &val,
                gtk_toggle_button_get_active (
                        GTK_TOGGLE_BUTTON (dialog->priv->header_style_check)));
 
-
        editor_cell_dialog_set_attribute (
                dialog, cell_set_header_style, &val, dialog);
 }
@@ -359,7 +362,8 @@ editor_cell_dialog_set_width (EEditorCellDialog *dialog)
                width = g_strdup ("auto");
        } else {
 
-               width = g_strdup_printf ("%d%s",
+               width = g_strdup_printf (
+                       "%d%s",
                        gtk_spin_button_get_value_as_int (
                                GTK_SPIN_BUTTON (dialog->priv->width_edit)),
                        ((gtk_combo_box_get_active (
@@ -381,7 +385,8 @@ editor_cell_dialog_set_column_span (EEditorCellDialog *dialog)
        GValue val = { 0 };
 
        g_value_init (&val, G_TYPE_ULONG);
-       g_value_set_ulong (&val,
+       g_value_set_ulong (
+               &val,
                gtk_spin_button_get_value_as_int (
                        GTK_SPIN_BUTTON (dialog->priv->col_span_edit)));
 
@@ -395,7 +400,8 @@ editor_cell_dialog_set_row_span (EEditorCellDialog *dialog)
        GValue val = { 0 };
 
        g_value_init (&val, G_TYPE_ULONG);
-       g_value_set_ulong (&val,
+       g_value_set_ulong (
+               &val,
                gtk_spin_button_get_value_as_int (
                        GTK_SPIN_BUTTON (dialog->priv->row_span_edit)));
 
@@ -425,8 +431,8 @@ editor_cell_dialog_set_background_color (EEditorCellDialog *dialog)
 
 static void
 cell_set_background_image (WebKitDOMHTMLTableCellElement *cell,
-                          const gchar *uri,
-                          gpointer user_data)
+                           const gchar *uri,
+                           gpointer user_data)
 {
        if (!uri || !*uri) {
                webkit_dom_element_remove_attribute (
@@ -454,13 +460,13 @@ editor_cell_dialog_set_background_image (EEditorCellDialog *dialog)
 }
 
 static void
-editor_cell_dialog_show (GtkWidget *gtk_widget)
+editor_cell_dialog_show (GtkWidget *widget)
 {
        EEditorCellDialog *dialog;
        gchar *tmp;
        GdkRGBA color;
 
-       dialog = E_EDITOR_CELL_DIALOG (gtk_widget);
+       dialog = E_EDITOR_CELL_DIALOG (widget);
 
        gtk_toggle_button_set_active (
                GTK_TOGGLE_BUTTON (dialog->priv->scope_cell_button), TRUE);
@@ -549,23 +555,20 @@ editor_cell_dialog_show (GtkWidget *gtk_widget)
        }
        g_free (tmp);
 
-
-       GTK_WIDGET_CLASS (e_editor_cell_dialog_parent_class)->show (gtk_widget);
+       GTK_WIDGET_CLASS (e_editor_cell_dialog_parent_class)->show (widget);
 }
 
 static void
-e_editor_cell_dialog_class_init (EEditorCellDialogClass *klass)
+e_editor_cell_dialog_class_init (EEditorCellDialogClass *class)
 {
        GtkWidgetClass *widget_class;
 
-       e_editor_cell_dialog_parent_class = g_type_class_peek_parent (klass);
-       g_type_class_add_private (klass, sizeof (EEditorCellDialogPrivate));
+       g_type_class_add_private (class, sizeof (EEditorCellDialogPrivate));
 
-       widget_class = GTK_WIDGET_CLASS (klass);
+       widget_class = GTK_WIDGET_CLASS (class);
        widget_class->show = editor_cell_dialog_show;
 }
 
-
 static void
 e_editor_cell_dialog_init (EEditorCellDialog *dialog)
 {
@@ -573,8 +576,7 @@ e_editor_cell_dialog_init (EEditorCellDialog *dialog)
        GtkWidget *widget;
        GtkFileFilter *file_filter;
 
-       dialog->priv = G_TYPE_INSTANCE_GET_PRIVATE (
-               dialog, E_TYPE_EDITOR_CELL_DIALOG, EEditorCellDialogPrivate);
+       dialog->priv = E_EDITOR_CELL_DIALOG_GET_PRIVATE (dialog);
 
        main_layout = e_editor_dialog_get_container (E_EDITOR_DIALOG (dialog));
 
@@ -594,8 +596,8 @@ e_editor_cell_dialog_init (EEditorCellDialog *dialog)
        widget = gtk_image_new_from_icon_name ("stock_select-cell", GTK_ICON_SIZE_BUTTON);
        gtk_grid_attach (grid, widget, 0, 0, 1, 1);
 
-       widget = gtk_radio_button_new_with_mnemonic(NULL, _("C_ell"));
-       gtk_grid_attach (grid, widget, 1, 0, 1, 1);
+       widget = gtk_radio_button_new_with_mnemonic (NULL, _("C_ell"));
+       gtk_grid_attach (grid, widget, 1, 0, 1, 1);
        dialog->priv->scope_cell_button = widget;
 
        g_signal_connect_swapped (
@@ -829,7 +831,6 @@ e_editor_cell_dialog_init (EEditorCellDialog *dialog)
                G_CALLBACK (editor_cell_dialog_set_background_image), dialog);
        dialog->priv->background_image_chooser = widget;
 
-
        widget =gtk_label_new_with_mnemonic (_("_Image:"));
        gtk_label_set_justify (GTK_LABEL (widget), GTK_JUSTIFY_RIGHT);
        gtk_label_set_mnemonic_widget (
@@ -839,7 +840,6 @@ e_editor_cell_dialog_init (EEditorCellDialog *dialog)
        gtk_widget_show_all (GTK_WIDGET (main_layout));
 }
 
-
 GtkWidget *
 e_editor_cell_dialog_new (EEditor *editor)
 {
@@ -853,9 +853,9 @@ e_editor_cell_dialog_new (EEditor *editor)
 
 void
 e_editor_cell_dialog_show (EEditorCellDialog *dialog,
-                          WebKitDOMNode *cell)
+                           WebKitDOMNode *cell)
 {
-       EEditorCellDialogClass *klass;
+       EEditorCellDialogClass *class;
 
        g_return_if_fail (E_IS_EDITOR_CELL_DIALOG (dialog));
        g_return_if_fail (cell != NULL);
@@ -866,8 +866,7 @@ e_editor_cell_dialog_show (EEditorCellDialog *dialog,
                        e_editor_dom_node_find_parent_element (cell, "TH");
        }
 
-       klass = E_EDITOR_CELL_DIALOG_GET_CLASS (dialog);
-       GTK_WIDGET_CLASS (klass)->show (GTK_WIDGET (dialog));
+       class = E_EDITOR_CELL_DIALOG_GET_CLASS (dialog);
+       GTK_WIDGET_CLASS (class)->show (GTK_WIDGET (dialog));
 }
 
-
diff --git a/e-util/e-editor-cell-dialog.h b/e-util/e-editor-cell-dialog.h
index 62a4009..1393948 100644
--- a/e-util/e-editor-cell-dialog.h
+++ b/e-util/e-editor-cell-dialog.h
@@ -54,7 +54,6 @@ typedef struct _EEditorCellDialogPrivate EEditorCellDialogPrivate;
 
 struct _EEditorCellDialog {
        EEditorDialog parent;
-
        EEditorCellDialogPrivate *priv;
 };
 
@@ -62,10 +61,8 @@ struct _EEditorCellDialogClass {
        EEditorDialogClass parent_class;
 };
 
-GType          e_editor_cell_dialog_get_type   (void);
-
-GtkWidget*     e_editor_cell_dialog_new        (EEditor *editor);
-
+GType          e_editor_cell_dialog_get_type   (void) G_GNUC_CONST;
+GtkWidget *    e_editor_cell_dialog_new        (EEditor *editor);
 void           e_editor_cell_dialog_show       (EEditorCellDialog *dialog,
                                                 WebKitDOMNode *cell);
 
diff --git a/e-util/e-editor-dialog.c b/e-util/e-editor-dialog.c
index 073e0ee..047ce9d 100644
--- a/e-util/e-editor-dialog.c
+++ b/e-util/e-editor-dialog.c
@@ -24,10 +24,9 @@
 
 #include "e-editor-dialog.h"
 
-G_DEFINE_ABSTRACT_TYPE (
-       EEditorDialog,
-       e_editor_dialog,
-       GTK_TYPE_WINDOW);
+#define E_EDITOR_DIALOG_GET_PRIVATE(obj) \
+       (G_TYPE_INSTANCE_GET_PRIVATE \
+       ((obj), E_TYPE_EDITOR_DIALOG, EEditorDialogPrivate))
 
 struct _EEditorDialogPrivate {
        EEditor *editor;
@@ -41,10 +40,14 @@ enum {
        PROP_EDITOR,
 };
 
+G_DEFINE_ABSTRACT_TYPE (
+       EEditorDialog,
+       e_editor_dialog,
+       GTK_TYPE_WINDOW);
 
 static void
 editor_dialog_set_editor (EEditorDialog *dialog,
-                         EEditor *editor)
+                          EEditor *editor)
 {
        dialog->priv->editor = g_object_ref (editor);
 
@@ -53,13 +56,14 @@ editor_dialog_set_editor (EEditorDialog *dialog,
 
 static void
 editor_dialog_get_property (GObject *object,
-                           guint property_id,
-                           GValue *value,
-                           GParamSpec *pspec)
+                            guint property_id,
+                            GValue *value,
+                            GParamSpec *pspec)
 {
        switch (property_id) {
                case PROP_EDITOR:
-                       g_value_set_object (value,
+                       g_value_set_object (
+                               value,
                        e_editor_dialog_get_editor (E_EDITOR_DIALOG (object)));
                        return;
        }
@@ -69,9 +73,9 @@ editor_dialog_get_property (GObject *object,
 
 static void
 editor_dialog_set_property (GObject *object,
-                           guint property_id,
-                           const GValue *value,
-                           GParamSpec *pspec)
+                            guint property_id,
+                            const GValue *value,
+                            GParamSpec *pspec)
 {
        switch (property_id) {
                case PROP_EDITOR:
@@ -101,8 +105,12 @@ editor_dialog_constructed (GObject *object)
 static void
 editor_dialog_show (GtkWidget *widget)
 {
-       gtk_widget_show_all (GTK_WIDGET (E_EDITOR_DIALOG (widget)->priv->container));
-       gtk_widget_show_all (GTK_WIDGET (E_EDITOR_DIALOG (widget)->priv->button_box));
+       EEditorDialogPrivate *priv;
+
+       priv = E_EDITOR_DIALOG_GET_PRIVATE (widget);
+
+       gtk_widget_show_all (GTK_WIDGET (priv->container));
+       gtk_widget_show_all (GTK_WIDGET (priv->button_box));
 
        GTK_WIDGET_CLASS (e_editor_dialog_parent_class)->show (widget);
 }
@@ -110,7 +118,9 @@ editor_dialog_show (GtkWidget *widget)
 static void
 editor_dialog_dispose (GObject *object)
 {
-       EEditorDialogPrivate *priv = E_EDITOR_DIALOG (object)->priv;
+       EEditorDialogPrivate *priv;
+
+       priv = E_EDITOR_DIALOG_GET_PRIVATE (object);
 
        g_clear_object (&priv->editor);
 
@@ -119,21 +129,20 @@ editor_dialog_dispose (GObject *object)
 }
 
 static void
-e_editor_dialog_class_init (EEditorDialogClass *klass)
+e_editor_dialog_class_init (EEditorDialogClass *class)
 {
        GObjectClass *object_class;
        GtkWidgetClass *widget_class;
 
-       g_type_class_peek_parent (klass);
-       g_type_class_add_private (klass, sizeof (EEditorDialogPrivate));
+       g_type_class_add_private (class, sizeof (EEditorDialogPrivate));
 
-       object_class = G_OBJECT_CLASS (klass);
+       object_class = G_OBJECT_CLASS (class);
        object_class->get_property = editor_dialog_get_property;
        object_class->set_property = editor_dialog_set_property;
        object_class->dispose = editor_dialog_dispose;
        object_class->constructed = editor_dialog_constructed;
 
-       widget_class = GTK_WIDGET_CLASS (klass);
+       widget_class = GTK_WIDGET_CLASS (class);
        widget_class->show = editor_dialog_show;
 
        g_object_class_install_property (
@@ -141,17 +150,20 @@ e_editor_dialog_class_init (EEditorDialogClass *klass)
                PROP_EDITOR,
                g_param_spec_object (
                        "editor",
-                       NULL,
-                       NULL,
-                       E_TYPE_EDITOR,
-                       G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE));
+                       NULL,
+                       NULL,
+                       E_TYPE_EDITOR,
+                       G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE));
 }
 
 static void
 e_editor_dialog_init (EEditorDialog *dialog)
 {
-       dialog->priv = G_TYPE_INSTANCE_GET_PRIVATE (
-               dialog, E_TYPE_EDITOR_DIALOG, EEditorDialogPrivate);
+       GtkBox *main_layout;
+       GtkGrid *grid;
+       GtkWidget *widget, *button_box;
+
+       dialog->priv = E_EDITOR_DIALOG_GET_PRIVATE (dialog);
 
        main_layout = GTK_BOX (gtk_box_new (GTK_ORIENTATION_VERTICAL, 5));
        gtk_container_add (GTK_CONTAINER (dialog), GTK_WIDGET (main_layout));
@@ -181,7 +193,7 @@ e_editor_dialog_init (EEditorDialog *dialog)
        g_object_set (
                G_OBJECT (dialog),
                "destroy-with-parent", TRUE,
-               "modal", TRUE,
+               "modal", TRUE,
                "resizable", FALSE,
                "type-hint", GDK_WINDOW_TYPE_HINT_POPUP_MENU,
                "window-position", GTK_WIN_POS_CENTER_ON_PARENT,
@@ -193,8 +205,6 @@ e_editor_dialog_init (EEditorDialog *dialog)
                G_CALLBACK (gtk_widget_hide_on_delete), NULL);
 }
 
-
-
 EEditor *
 e_editor_dialog_get_editor (EEditorDialog *dialog)
 {
diff --git a/e-util/e-editor-dialog.h b/e-util/e-editor-dialog.h
index cfa44c0..9b6ff5b 100644
--- a/e-util/e-editor-dialog.h
+++ b/e-util/e-editor-dialog.h
@@ -55,7 +55,6 @@ typedef struct _EEditorDialogPrivate EEditorDialogPrivate;
 
 struct _EEditorDialog {
        GtkWindow parent;
-
        EEditorDialogPrivate *priv;
 };
 
@@ -63,12 +62,9 @@ struct _EEditorDialogClass {
        GtkWindowClass parent_class;
 };
 
-GType          e_editor_dialog_get_type        (void);
-
+GType          e_editor_dialog_get_type        (void) G_GNUC_CONST;
 EEditor *      e_editor_dialog_get_editor      (EEditorDialog *dialog);
-
 GtkBox *       e_editor_dialog_get_button_box  (EEditorDialog *dialog);
-
 GtkGrid *      e_editor_dialog_get_container   (EEditorDialog *dialog);
 
 G_END_DECLS
diff --git a/e-util/e-editor-find-dialog.c b/e-util/e-editor-find-dialog.c
index be22721..9aa68b9 100644
--- a/e-util/e-editor-find-dialog.c
+++ b/e-util/e-editor-find-dialog.c
@@ -27,10 +27,9 @@
 #include <glib/gi18n-lib.h>
 #include <gdk/gdkkeysyms.h>
 
-G_DEFINE_TYPE (
-       EEditorFindDialog,
-       e_editor_find_dialog,
-       E_TYPE_EDITOR_DIALOG);
+#define E_EDITOR_FIND_DIALOG_GET_PRIVATE(obj) \
+       (G_TYPE_INSTANCE_GET_PRIVATE \
+       ((obj), E_TYPE_EDITOR_FIND_DIALOG, EEditorFindDialogPrivate))
 
 struct _EEditorFindDialogPrivate {
        GtkWidget *entry;
@@ -43,6 +42,11 @@ struct _EEditorFindDialogPrivate {
        GtkWidget *result_label;
 };
 
+G_DEFINE_TYPE (
+       EEditorFindDialog,
+       e_editor_find_dialog,
+       E_TYPE_EDITOR_DIALOG);
+
 static void
 reset_dialog (EEditorFindDialog *dialog)
 {
@@ -104,8 +108,8 @@ editor_find_dialog_find_cb (EEditorFindDialog *dialog)
 
 static gboolean
 entry_key_release_event (GtkWidget *widget,
-                        GdkEvent *event,
-                        gpointer user_data)
+                         GdkEvent *event,
+                         gpointer user_data)
 {
        GdkEventKey *key = &event->key;
        EEditorFindDialog *dialog = user_data;
@@ -120,14 +124,13 @@ entry_key_release_event (GtkWidget *widget,
 }
 
 static void
-e_editor_find_dialog_class_init (EEditorFindDialogClass *klass)
+e_editor_find_dialog_class_init (EEditorFindDialogClass *class)
 {
        GtkWidgetClass *widget_class;
 
-       e_editor_find_dialog_parent_class = g_type_class_peek_parent (klass);
-       g_type_class_add_private (klass, sizeof (EEditorFindDialogPrivate));
+       g_type_class_add_private (class, sizeof (EEditorFindDialogPrivate));
 
-       widget_class = GTK_WIDGET_CLASS (klass);
+       widget_class = GTK_WIDGET_CLASS (class);
        widget_class->show = editor_find_dialog_show;
 }
 
@@ -138,8 +141,7 @@ e_editor_find_dialog_init (EEditorFindDialog *dialog)
        GtkBox *box;
        GtkWidget *widget;
 
-       dialog->priv = G_TYPE_INSTANCE_GET_PRIVATE (
-               dialog, E_TYPE_EDITOR_FIND_DIALOG, EEditorFindDialogPrivate);
+       dialog->priv = E_EDITOR_FIND_DIALOG_GET_PRIVATE (dialog);
 
        main_layout = e_editor_dialog_get_container (E_EDITOR_DIALOG (dialog));
 
@@ -200,7 +202,7 @@ e_editor_find_dialog_init (EEditorFindDialog *dialog)
 }
 
 GtkWidget *
-e_editor_find_dialog_new(EEditor *editor)
+e_editor_find_dialog_new (EEditor *editor)
 {
        return GTK_WIDGET (
                g_object_new (
diff --git a/e-util/e-editor-find-dialog.h b/e-util/e-editor-find-dialog.h
index 66a1556..922f301 100644
--- a/e-util/e-editor-find-dialog.h
+++ b/e-util/e-editor-find-dialog.h
@@ -54,7 +54,6 @@ typedef struct _EEditorFindDialogPrivate EEditorFindDialogPrivate;
 
 struct _EEditorFindDialog {
        EEditorDialog parent;
-
        EEditorFindDialogPrivate *priv;
 };
 
@@ -62,10 +61,8 @@ struct _EEditorFindDialogClass {
        EEditorDialogClass parent_class;
 };
 
-GType          e_editor_find_dialog_get_type   (void);
-
-GtkWidget*     e_editor_find_dialog_new        (EEditor *editor);
-
+GType          e_editor_find_dialog_get_type   (void) G_GNUC_CONST;
+GtkWidget *    e_editor_find_dialog_new        (EEditor *editor);
 void           e_editor_find_dialog_find_next  (EEditorFindDialog *dialog);
 
 G_END_DECLS
diff --git a/e-util/e-editor-hrule-dialog.c b/e-util/e-editor-hrule-dialog.c
index bca6b20..c954277 100644
--- a/e-util/e-editor-hrule-dialog.c
+++ b/e-util/e-editor-hrule-dialog.c
@@ -30,10 +30,9 @@
 #include <webkit/webkitdom.h>
 #include <stdlib.h>
 
-G_DEFINE_TYPE (
-       EEditorHRuleDialog,
-       e_editor_hrule_dialog,
-       E_TYPE_EDITOR_DIALOG);
+#define E_EDITOR_HRULE_DIALOG_GET_PRIVATE(obj) \
+       (G_TYPE_INSTANCE_GET_PRIVATE \
+       ((obj), E_TYPE_EDITOR_HRULE_DIALOG, EEditorHRuleDialogPrivate))
 
 struct _EEditorHRuleDialogPrivate {
        GtkWidget *width_edit;
@@ -46,6 +45,11 @@ struct _EEditorHRuleDialogPrivate {
        WebKitDOMHTMLHRElement *hr_element;
 };
 
+G_DEFINE_TYPE (
+       EEditorHRuleDialog,
+       e_editor_hrule_dialog,
+       E_TYPE_EDITOR_DIALOG);
+
 static void
 editor_hrule_dialog_set_alignment (EEditorHRuleDialog *dialog)
 {
@@ -191,11 +195,15 @@ editor_hrule_dialog_get_shading (EEditorHRuleDialog *dialog)
 }
 
 static void
-editor_hrule_dialog_hide (GtkWidget *gtk_widget)
+editor_hrule_dialog_hide (GtkWidget *widget)
 {
-       E_EDITOR_HRULE_DIALOG (gtk_widget)->priv->hr_element = NULL;
+       EEditorHRuleDialogPrivate *priv;
 
-       GTK_WIDGET_CLASS (e_editor_hrule_dialog_parent_class)->hide (gtk_widget);
+       priv = E_EDITOR_HRULE_DIALOG_GET_PRIVATE (widget);
+
+       priv->hr_element = NULL;
+
+       GTK_WIDGET_CLASS (e_editor_hrule_dialog_parent_class)->hide (widget);
 }
 
 static void
@@ -272,14 +280,13 @@ editor_hrule_dialog_show (GtkWidget *widget)
 }
 
 static void
-e_editor_hrule_dialog_class_init (EEditorHRuleDialogClass *klass)
+e_editor_hrule_dialog_class_init (EEditorHRuleDialogClass *class)
 {
        GtkWidgetClass *widget_class;
 
-       g_type_class_peek_parent (klass);
-       g_type_class_add_private (klass, sizeof (EEditorHRuleDialogPrivate));
+       g_type_class_add_private (class, sizeof (EEditorHRuleDialogPrivate));
 
-       widget_class = GTK_WIDGET_CLASS (klass);
+       widget_class = GTK_WIDGET_CLASS (class);
        widget_class->show = editor_hrule_dialog_show;
        widget_class->hide = editor_hrule_dialog_hide;
 }
@@ -290,8 +297,7 @@ e_editor_hrule_dialog_init (EEditorHRuleDialog *dialog)
        GtkGrid *main_layout, *grid;
        GtkWidget *widget;
 
-       dialog->priv = G_TYPE_INSTANCE_GET_PRIVATE (
-               dialog, E_TYPE_EDITOR_HRULE_DIALOG, EEditorHRuleDialogPrivate);
+       dialog->priv = E_EDITOR_HRULE_DIALOG_GET_PRIVATE (dialog);
 
        main_layout = e_editor_dialog_get_container (E_EDITOR_DIALOG (dialog));
 
@@ -347,7 +353,6 @@ e_editor_hrule_dialog_init (EEditorHRuleDialog *dialog)
        gtk_label_set_mnemonic_widget (GTK_LABEL (widget), dialog->priv->size_edit);
        gtk_grid_attach (grid, widget, 0, 1, 1, 1);
 
-
        /* == Style == */
        widget = gtk_label_new ("");
        gtk_label_set_markup (GTK_LABEL (widget), _("<b>Style</b>"));
diff --git a/e-util/e-editor-hrule-dialog.h b/e-util/e-editor-hrule-dialog.h
index 46877f7..fad94fc 100644
--- a/e-util/e-editor-hrule-dialog.h
+++ b/e-util/e-editor-hrule-dialog.h
@@ -54,7 +54,6 @@ typedef struct _EEditorHRuleDialogPrivate EEditorHRuleDialogPrivate;
 
 struct _EEditorHRuleDialog {
        EEditorDialog parent;
-
        EEditorHRuleDialogPrivate *priv;
 };
 
@@ -62,9 +61,8 @@ struct _EEditorHRuleDialogClass {
        EEditorDialogClass parent_class;
 };
 
-GType          e_editor_hrule_dialog_get_type  (void);
-
-GtkWidget*     e_editor_hrule_dialog_new       (EEditor *editor);
+GType          e_editor_hrule_dialog_get_type  (void) G_GNUC_CONST;
+GtkWidget *    e_editor_hrule_dialog_new       (EEditor *editor);
 
 G_END_DECLS
 
diff --git a/e-util/e-editor-image-dialog.c b/e-util/e-editor-image-dialog.c
index d2d0f11..fc277df 100644
--- a/e-util/e-editor-image-dialog.c
+++ b/e-util/e-editor-image-dialog.c
@@ -30,10 +30,9 @@
 #include "e-editor-utils.h"
 #include "e-image-chooser-dialog.h"
 
-G_DEFINE_TYPE (
-       EEditorImageDialog,
-       e_editor_image_dialog,
-       E_TYPE_EDITOR_DIALOG);
+#define E_EDITOR_IMAGE_DIALOG_GET_PRIVATE(obj) \
+       (G_TYPE_INSTANCE_GET_PRIVATE \
+       ((obj), E_TYPE_EDITOR_IMAGE_DIALOG, EEditorImageDialogPrivate))
 
 struct _EEditorImageDialogPrivate {
        GtkWidget *file_chooser;
@@ -55,6 +54,11 @@ struct _EEditorImageDialogPrivate {
        WebKitDOMHTMLImageElement *image;
 };
 
+G_DEFINE_TYPE (
+       EEditorImageDialog,
+       e_editor_image_dialog,
+       E_TYPE_EDITOR_DIALOG);
+
 static void
 editor_image_dialog_set_src (EEditorImageDialog *dialog)
 {
@@ -116,7 +120,6 @@ editor_image_dialog_set_width_units (EEditorImageDialog *dialog)
        requested = gtk_spin_button_get_value_as_int (
                        GTK_SPIN_BUTTON (dialog->priv->width_edit));
 
-
        switch (gtk_combo_box_get_active (
                GTK_COMBO_BOX (dialog->priv->width_units))) {
 
@@ -193,7 +196,6 @@ editor_image_dialog_set_height_units (EEditorImageDialog *dialog)
        requested = gtk_spin_button_get_value_as_int (
                        GTK_SPIN_BUTTON (dialog->priv->height_edit));
 
-
        switch (gtk_combo_box_get_active (
                GTK_COMBO_BOX (dialog->priv->height_units))) {
 
@@ -328,14 +330,14 @@ editor_image_dialog_test_url (EEditorImageDialog *dialog)
 }
 
 static void
-editor_image_dialog_show (GtkWidget *gtk_widget)
+editor_image_dialog_show (GtkWidget *widget)
 {
        EEditorImageDialog *dialog;
        WebKitDOMElement *link;
        gchar *tmp;
        glong val;
 
-       dialog = E_EDITOR_IMAGE_DIALOG (gtk_widget);
+       dialog = E_EDITOR_IMAGE_DIALOG (widget);
 
        if (!dialog->priv->image) {
                return;
@@ -376,7 +378,6 @@ editor_image_dialog_show (GtkWidget *gtk_widget)
        gtk_spin_button_set_value (
                GTK_SPIN_BUTTON (dialog->priv->y_padding_edit), val);
 
-
        link = e_editor_dom_node_find_parent_element (
                        WEBKIT_DOM_NODE (dialog->priv->image), "A");
        if (link) {
@@ -387,26 +388,29 @@ editor_image_dialog_show (GtkWidget *gtk_widget)
        }
 
        /* Chain up to parent implementation */
-       GTK_WIDGET_CLASS (e_editor_image_dialog_parent_class)->show (gtk_widget);
+       GTK_WIDGET_CLASS (e_editor_image_dialog_parent_class)->show (widget);
 }
 
 static void
-editor_image_dialog_hide (GtkWidget *gtk_widget)
+editor_image_dialog_hide (GtkWidget *widget)
 {
-       E_EDITOR_IMAGE_DIALOG (gtk_widget)->priv->image = NULL;
+       EEditorImageDialogPrivate *priv;
 
-       GTK_WIDGET_CLASS (e_editor_image_dialog_parent_class)->hide (gtk_widget);
+       priv = E_EDITOR_IMAGE_DIALOG_GET_PRIVATE (widget);
+
+       priv->image = NULL;
+
+       GTK_WIDGET_CLASS (e_editor_image_dialog_parent_class)->hide (widget);
 }
 
 static void
-e_editor_image_dialog_class_init (EEditorImageDialogClass *klass)
+e_editor_image_dialog_class_init (EEditorImageDialogClass *class)
 {
        GtkWidgetClass *widget_class;
 
-       e_editor_image_dialog_parent_class = g_type_class_peek_parent (klass);
-       g_type_class_add_private (klass, sizeof (EEditorImageDialogPrivate));
+       g_type_class_add_private (class, sizeof (EEditorImageDialogPrivate));
 
-       widget_class = GTK_WIDGET_CLASS (klass);
+       widget_class = GTK_WIDGET_CLASS (class);
        widget_class->show = editor_image_dialog_show;
        widget_class->hide = editor_image_dialog_hide;
 }
@@ -418,8 +422,7 @@ e_editor_image_dialog_init (EEditorImageDialog *dialog)
        GtkWidget *widget;
        GtkFileFilter *file_filter;
 
-       dialog->priv = G_TYPE_INSTANCE_GET_PRIVATE (
-               dialog, E_TYPE_EDITOR_IMAGE_DIALOG, EEditorImageDialogPrivate);
+       dialog->priv = E_EDITOR_IMAGE_DIALOG_GET_PRIVATE (dialog);
 
        main_layout = e_editor_dialog_get_container (E_EDITOR_DIALOG (dialog));
 
@@ -473,7 +476,6 @@ e_editor_image_dialog_init (EEditorImageDialog *dialog)
        gtk_label_set_mnemonic_widget (GTK_LABEL (widget), dialog->priv->description_edit);
        gtk_grid_attach (grid, widget, 0, 1, 1, 1);
 
-
        /* == Layout == */
        widget = gtk_label_new ("");
        gtk_label_set_markup (GTK_LABEL (widget), _("<b>Layout</b>"));
@@ -647,9 +649,9 @@ e_editor_image_dialog_new (EEditor *editor)
 
 void
 e_editor_image_dialog_show (EEditorImageDialog *dialog,
-                           WebKitDOMNode *image)
+                            WebKitDOMNode *image)
 {
-       EEditorImageDialogClass *klass;
+       EEditorImageDialogClass *class;
 
        g_return_if_fail (E_IS_EDITOR_IMAGE_DIALOG (dialog));
 
@@ -659,6 +661,6 @@ e_editor_image_dialog_show (EEditorImageDialog *dialog,
                dialog->priv->image = NULL;
        }
 
-       klass = E_EDITOR_IMAGE_DIALOG_GET_CLASS (dialog);
-       GTK_WIDGET_CLASS (klass)->show (GTK_WIDGET (dialog));
+       class = E_EDITOR_IMAGE_DIALOG_GET_CLASS (dialog);
+       GTK_WIDGET_CLASS (class)->show (GTK_WIDGET (dialog));
 }
diff --git a/e-util/e-editor-image-dialog.h b/e-util/e-editor-image-dialog.h
index 21f7a93..aeb5aa1 100644
--- a/e-util/e-editor-image-dialog.h
+++ b/e-util/e-editor-image-dialog.h
@@ -54,7 +54,6 @@ typedef struct _EEditorImageDialogPrivate EEditorImageDialogPrivate;
 
 struct _EEditorImageDialog {
        EEditorDialog parent;
-
        EEditorImageDialogPrivate *priv;
 };
 
@@ -62,10 +61,8 @@ struct _EEditorImageDialogClass {
        EEditorDialogClass parent_class;
 };
 
-GType          e_editor_image_dialog_get_type  (void);
-
-GtkWidget*     e_editor_image_dialog_new       (EEditor *editor);
-
+GType          e_editor_image_dialog_get_type  (void) G_GNUC_CONST;
+GtkWidget *    e_editor_image_dialog_new       (EEditor *editor);
 void           e_editor_image_dialog_show      (EEditorImageDialog *dialog,
                                                 WebKitDOMNode *image);
 
diff --git a/e-util/e-editor-link-dialog.c b/e-util/e-editor-link-dialog.c
index ea75db8..1674e19 100644
--- a/e-util/e-editor-link-dialog.c
+++ b/e-util/e-editor-link-dialog.c
@@ -29,6 +29,10 @@
 
 #include <glib/gi18n-lib.h>
 
+#define E_EDITOR_LINK_DIALOG_GET_PRIVATE(obj) \
+       (G_TYPE_INSTANCE_GET_PRIVATE \
+       ((obj), E_TYPE_EDITOR_LINK_DIALOG, EEditorLinkDialogPrivate))
+
 G_DEFINE_TYPE (
        EEditorLinkDialog,
        e_editor_link_dialog,
@@ -128,7 +132,7 @@ editor_link_dialog_ok (EEditorLinkDialog *dialog)
                if ((webkit_dom_range_get_start_container (range, NULL) !=
                        webkit_dom_range_get_end_container (range, NULL)) ||
                    (webkit_dom_range_get_start_offset (range, NULL) !=
-                       webkit_dom_range_get_end_offset (range, NULL))) {
+                       webkit_dom_range_get_end_offset (range, NULL))) {
 
                        WebKitDOMDocumentFragment *fragment;
                        fragment = webkit_dom_range_extract_contents (range, NULL);
@@ -184,7 +188,7 @@ editor_link_dialog_ok (EEditorLinkDialog *dialog)
 
 static gboolean
 editor_link_dialog_entry_key_pressed (EEditorLinkDialog *dialog,
-                                     GdkEventKey *event)
+                                      GdkEventKey *event)
 {
        /* We can't do thins in key_released, because then you could not open
         * this dialog from main menu by pressing enter on Insert->Link action */
@@ -196,7 +200,6 @@ editor_link_dialog_entry_key_pressed (EEditorLinkDialog *dialog,
        return FALSE;
 }
 
-
 static void
 editor_link_dialog_show (GtkWidget *widget)
 {
@@ -238,7 +241,7 @@ editor_link_dialog_show (GtkWidget *widget)
                if ((webkit_dom_range_get_start_container (range, NULL) !=
                        webkit_dom_range_get_end_container (range, NULL)) ||
                    (webkit_dom_range_get_start_offset (range, NULL) !=
-                       webkit_dom_range_get_end_offset (range, NULL))) {
+                       webkit_dom_range_get_end_offset (range, NULL))) {
 
                        WebKitDOMDocumentFragment *fragment;
                        fragment = webkit_dom_range_clone_contents (range, NULL);
@@ -284,14 +287,13 @@ editor_link_dialog_show (GtkWidget *widget)
 }
 
 static void
-e_editor_link_dialog_class_init (EEditorLinkDialogClass *klass)
+e_editor_link_dialog_class_init (EEditorLinkDialogClass *class)
 {
        GtkWidgetClass *widget_class;
 
-       e_editor_link_dialog_parent_class  = g_type_class_peek_parent (klass);
-       g_type_class_add_private (klass, sizeof (EEditorLinkDialogPrivate));
+       g_type_class_add_private (class, sizeof (EEditorLinkDialogPrivate));
 
-       widget_class = GTK_WIDGET_CLASS (klass);
+       widget_class = GTK_WIDGET_CLASS (class);
        widget_class->show = editor_link_dialog_show;
 }
 
@@ -302,9 +304,7 @@ e_editor_link_dialog_init (EEditorLinkDialog *dialog)
        GtkBox *button_box;
        GtkWidget *widget;
 
-       dialog->priv = G_TYPE_INSTANCE_GET_PRIVATE (
-                               dialog, E_TYPE_EDITOR_LINK_DIALOG,
-                               EEditorLinkDialogPrivate);
+       dialog->priv = E_EDITOR_LINK_DIALOG_GET_PRIVATE (dialog);
 
        main_layout = e_editor_dialog_get_container (E_EDITOR_DIALOG (dialog));
 
diff --git a/e-util/e-editor-link-dialog.h b/e-util/e-editor-link-dialog.h
index 921d718..99141b0 100644
--- a/e-util/e-editor-link-dialog.h
+++ b/e-util/e-editor-link-dialog.h
@@ -54,7 +54,6 @@ typedef struct _EEditorLinkDialogPrivate EEditorLinkDialogPrivate;
 
 struct _EEditorLinkDialog {
        EEditorDialog parent;
-
        EEditorLinkDialogPrivate *priv;
 };
 
@@ -62,9 +61,8 @@ struct _EEditorLinkDialogClass {
        EEditorDialogClass parent_class;
 };
 
-GType          e_editor_link_dialog_get_type   (void);
-
-GtkWidget*     e_editor_link_dialog_new        (EEditor *editor);
+GType          e_editor_link_dialog_get_type   (void) G_GNUC_CONST;
+GtkWidget *    e_editor_link_dialog_new        (EEditor *editor);
 
 G_END_DECLS
 
diff --git a/e-util/e-editor-page-dialog.c b/e-util/e-editor-page-dialog.c
index a5681e3..1932872 100644
--- a/e-util/e-editor-page-dialog.c
+++ b/e-util/e-editor-page-dialog.c
@@ -29,10 +29,9 @@
 #include "e-color-combo.h"
 #include "e-misc-utils.h"
 
-G_DEFINE_TYPE (
-       EEditorPageDialog,
-       e_editor_page_dialog,
-       E_TYPE_EDITOR_DIALOG);
+#define E_EDITOR_PAGE_DIALOG_GET_PRIVATE(obj) \
+       (G_TYPE_INSTANCE_GET_PRIVATE \
+       ((obj), E_TYPE_EDITOR_PAGE_DIALOG, EEditorPageDialogPrivate))
 
 struct _EEditorPageDialogPrivate {
        GtkWidget *text_color_picker;
@@ -134,9 +133,13 @@ static const Template templates[] = {
                { 1.0 , 1.0 , 1.0 , 1 },
                0
        }
-
 };
 
+G_DEFINE_TYPE (
+       EEditorPageDialog,
+       e_editor_page_dialog,
+       E_TYPE_EDITOR_DIALOG);
+
 static void
 editor_page_dialog_set_text_color (EEditorPageDialog *dialog)
 {
@@ -147,7 +150,7 @@ editor_page_dialog_set_text_color (EEditorPageDialog *dialog)
        GdkRGBA rgba;
        gchar *color;
 
-       editor = e_editor_dialog_get_editor(E_EDITOR_DIALOG (dialog));
+       editor = e_editor_dialog_get_editor (E_EDITOR_DIALOG (dialog));
        widget = e_editor_get_editor_widget (editor);
        document = webkit_web_view_get_dom_document (WEBKIT_WEB_VIEW (widget));
        body = webkit_dom_document_get_body (document);
@@ -155,7 +158,7 @@ editor_page_dialog_set_text_color (EEditorPageDialog *dialog)
        e_color_combo_get_current_color (
                E_COLOR_COMBO (dialog->priv->text_color_picker), &rgba);
 
-       color = g_strdup_printf("#%06x", e_rgba_to_value (&rgba));
+       color = g_strdup_printf ("#%06x", e_rgba_to_value (&rgba));
        webkit_dom_html_body_element_set_text (
                (WebKitDOMHTMLBodyElement *) body, color);
 
@@ -172,7 +175,7 @@ editor_page_dialog_set_link_color (EEditorPageDialog *dialog)
        GdkRGBA rgba;
        gchar *color;
 
-       editor = e_editor_dialog_get_editor(E_EDITOR_DIALOG (dialog));
+       editor = e_editor_dialog_get_editor (E_EDITOR_DIALOG (dialog));
        widget = e_editor_get_editor_widget (editor);
        document = webkit_web_view_get_dom_document (WEBKIT_WEB_VIEW (widget));
        body = webkit_dom_document_get_body (document);
@@ -180,7 +183,7 @@ editor_page_dialog_set_link_color (EEditorPageDialog *dialog)
        e_color_combo_get_current_color (
                E_COLOR_COMBO (dialog->priv->link_color_picker), &rgba);
 
-       color = g_strdup_printf("#%06x", e_rgba_to_value (&rgba));
+       color = g_strdup_printf ("#%06x", e_rgba_to_value (&rgba));
        webkit_dom_html_body_element_set_link (
                (WebKitDOMHTMLBodyElement *) body, color);
 
@@ -197,7 +200,7 @@ editor_page_dialog_set_background_color (EEditorPageDialog *dialog)
        GdkRGBA rgba;
        gchar *color;
 
-       editor = e_editor_dialog_get_editor(E_EDITOR_DIALOG (dialog));
+       editor = e_editor_dialog_get_editor (E_EDITOR_DIALOG (dialog));
        widget = e_editor_get_editor_widget (editor);
        document = webkit_web_view_get_dom_document (WEBKIT_WEB_VIEW (widget));
        body = webkit_dom_document_get_body (document);
@@ -205,7 +208,7 @@ editor_page_dialog_set_background_color (EEditorPageDialog *dialog)
        e_color_combo_get_current_color (
                E_COLOR_COMBO (dialog->priv->background_color_picker), &rgba);
 
-       color = g_strdup_printf("#%06x", e_rgba_to_value (&rgba));
+       color = g_strdup_printf ("#%06x", e_rgba_to_value (&rgba));
 
        webkit_dom_html_body_element_set_bg_color (
                (WebKitDOMHTMLBodyElement *) body, color);
@@ -222,7 +225,6 @@ editor_page_dialog_set_background_from_template (EEditorPageDialog *dialog)
                gtk_combo_box_get_active (
                        GTK_COMBO_BOX (dialog->priv->background_template_combo))];
 
-
        /* Special case - 'none' template */
        if (tmplt->filename == NULL) {
                gtk_file_chooser_unselect_all (
@@ -259,7 +261,7 @@ editor_page_dialog_set_background_image (EEditorPageDialog *dialog)
        WebKitDOMHTMLElement *body;
        gchar *uri;
 
-       editor = e_editor_dialog_get_editor(E_EDITOR_DIALOG (dialog));
+       editor = e_editor_dialog_get_editor (E_EDITOR_DIALOG (dialog));
        widget = e_editor_get_editor_widget (editor);
        document = webkit_web_view_get_dom_document (WEBKIT_WEB_VIEW (widget));
        body = webkit_dom_document_get_body (document);
@@ -369,19 +371,17 @@ editor_page_dialog_show (GtkWidget *widget)
        e_color_combo_set_current_color (
                E_COLOR_COMBO (dialog->priv->background_color_picker), &rgba);
 
-
        GTK_WIDGET_CLASS (e_editor_page_dialog_parent_class)->show (widget);
 }
 
 static void
-e_editor_page_dialog_class_init (EEditorPageDialogClass *klass)
+e_editor_page_dialog_class_init (EEditorPageDialogClass *class)
 {
        GtkWidgetClass *widget_class;
 
-       e_editor_page_dialog_parent_class = g_type_class_peek_parent (klass);
-       g_type_class_add_private (klass, sizeof (EEditorPageDialogPrivate));
+       g_type_class_add_private (class, sizeof (EEditorPageDialogPrivate));
 
-       widget_class = GTK_WIDGET_CLASS (klass);
+       widget_class = GTK_WIDGET_CLASS (class);
        widget_class->show = editor_page_dialog_show;
 }
 
@@ -392,8 +392,7 @@ e_editor_page_dialog_init (EEditorPageDialog *dialog)
        GtkWidget *widget;
        gint ii;
 
-       dialog->priv = G_TYPE_INSTANCE_GET_PRIVATE (
-               dialog, E_TYPE_EDITOR_PAGE_DIALOG, EEditorPageDialogPrivate);
+       dialog->priv = E_EDITOR_PAGE_DIALOG_GET_PRIVATE (dialog);
 
        main_layout = e_editor_dialog_get_container (E_EDITOR_DIALOG (dialog));
 
@@ -502,7 +501,6 @@ e_editor_page_dialog_init (EEditorPageDialog *dialog)
        gtk_widget_show_all (GTK_WIDGET (main_layout));
 }
 
-
 GtkWidget *
 e_editor_page_dialog_new (EEditor *editor)
 {
diff --git a/e-util/e-editor-page-dialog.h b/e-util/e-editor-page-dialog.h
index 145a092..b794cb5 100644
--- a/e-util/e-editor-page-dialog.h
+++ b/e-util/e-editor-page-dialog.h
@@ -54,7 +54,6 @@ typedef struct _EEditorPageDialogPrivate EEditorPageDialogPrivate;
 
 struct _EEditorPageDialog {
        EEditorDialog parent;
-
        EEditorPageDialogPrivate *priv;
 };
 
@@ -62,9 +61,8 @@ struct _EEditorPageDialogClass {
        EEditorDialogClass parent_class;
 };
 
-GType          e_editor_page_dialog_get_type   (void);
-
-GtkWidget*     e_editor_page_dialog_new        (EEditor *editor);
+GType          e_editor_page_dialog_get_type   (void) G_GNUC_CONST;
+GtkWidget *    e_editor_page_dialog_new        (EEditor *editor);
 
 G_END_DECLS
 
diff --git a/e-util/e-editor-paragraph-dialog.c b/e-util/e-editor-paragraph-dialog.c
index 477ce10..1a12976 100644
--- a/e-util/e-editor-paragraph-dialog.c
+++ b/e-util/e-editor-paragraph-dialog.c
@@ -28,6 +28,10 @@
 
 #include "e-action-combo-box.h"
 
+#define E_EDITOR_PARAGRAPH_DIALOG_GET_PRIVATE(obj) \
+       (G_TYPE_INSTANCE_GET_PRIVATE \
+       ((obj), E_TYPE_EDITOR_PARAGRAPH_DIALOG, EEditorParagraphDialogPrivate))
+
 G_DEFINE_TYPE (
        EEditorParagraphDialog,
        e_editor_paragraph_dialog,
@@ -121,22 +125,21 @@ editor_paragraph_dialog_constructed (GObject *object)
 }
 
 static void
-e_editor_paragraph_dialog_class_init (EEditorParagraphDialogClass *klass)
+e_editor_paragraph_dialog_class_init (EEditorParagraphDialogClass *class)
 {
        GObjectClass *object_class;
 
-       e_editor_paragraph_dialog_parent_class = g_type_class_peek_parent (klass);
-       g_type_class_add_private (klass, sizeof (EEditorParagraphDialogPrivate));
+       g_type_class_add_private (
+               class, sizeof (EEditorParagraphDialogPrivate));
 
-       object_class = G_OBJECT_CLASS (klass);
+       object_class = G_OBJECT_CLASS (class);
        object_class->constructed = editor_paragraph_dialog_constructed;
 }
 
 static void
 e_editor_paragraph_dialog_init (EEditorParagraphDialog *dialog)
 {
-       dialog->priv = G_TYPE_INSTANCE_GET_PRIVATE (
-               dialog, E_TYPE_EDITOR_PARAGRAPH_DIALOG, EEditorParagraphDialogPrivate);
+       dialog->priv = E_EDITOR_PARAGRAPH_DIALOG_GET_PRIVATE (dialog);
 }
 
 GtkWidget *
diff --git a/e-util/e-editor-paragraph-dialog.h b/e-util/e-editor-paragraph-dialog.h
index 1c8f0e7..ed5e4f5 100644
--- a/e-util/e-editor-paragraph-dialog.h
+++ b/e-util/e-editor-paragraph-dialog.h
@@ -54,7 +54,6 @@ typedef struct _EEditorParagraphDialogPrivate EEditorParagraphDialogPrivate;
 
 struct _EEditorParagraphDialog {
        EEditorDialog parent;
-
        EEditorParagraphDialogPrivate *priv;
 };
 
@@ -62,9 +61,9 @@ struct _EEditorParagraphDialogClass {
        EEditorDialogClass parent_class;
 };
 
-GType          e_editor_paragraph_dialog_get_type      (void);
-
-GtkWidget*     e_editor_paragraph_dialog_new           (EEditor *editor);
+GType          e_editor_paragraph_dialog_get_type
+                                               (void) G_GNUC_CONST;
+GtkWidget *    e_editor_paragraph_dialog_new   (EEditor *editor);
 
 G_END_DECLS
 
diff --git a/e-util/e-editor-private.h b/e-util/e-editor-private.h
index e62f825..cf313f6 100644
--- a/e-util/e-editor-private.h
+++ b/e-util/e-editor-private.h
@@ -42,7 +42,6 @@
 #include <X11/XF86keysym.h>
 #endif
 
-
 #define ACTION(name) (E_EDITOR_ACTION_##name (editor))
 #define WIDGET(name) (E_EDITOR_WIDGETS_##name (editor))
 
@@ -93,7 +92,7 @@ struct _EEditorPrivate {
        WebKitDOMNode *image;
        WebKitDOMNode *table_cell;
 
-       int editor_layout_row;
+       gint editor_layout_row;
 };
 
 void           editor_actions_init             (EEditor *editor);
diff --git a/e-util/e-editor-replace-dialog.c b/e-util/e-editor-replace-dialog.c
index 295ca34..a9dbb39 100644
--- a/e-util/e-editor-replace-dialog.c
+++ b/e-util/e-editor-replace-dialog.c
@@ -26,6 +26,10 @@
 
 #include <glib/gi18n-lib.h>
 
+#define E_EDITOR_REPLACE_DIALOG_GET_PRIVATE(obj) \
+       (G_TYPE_INSTANCE_GET_PRIVATE \
+       ((obj), E_TYPE_EDITOR_REPLACE_DIALOG, EEditorReplaceDialogPrivate))
+
 G_DEFINE_TYPE (
        EEditorReplaceDialog,
        e_editor_replace_dialog,
@@ -129,7 +133,7 @@ editor_replace_dialog_replace_all_cb (EEditorReplaceDialog *dialog)
        while (jump (dialog)) {
                e_editor_selection_replace (selection, replacement);
                i++;
-               
+
                /* Jump behind the word */
                e_editor_selection_move (selection, TRUE, E_EDITOR_SELECTION_GRANULARITY_WORD);
        }
@@ -167,42 +171,14 @@ editor_replace_dialog_show (GtkWidget *widget)
 }
 
 static void
-editor_replace_dialog_set_property (GObject *object,
-                                   guint property_id,
-                                   const GValue *value,
-                                   GParamSpec *pspec)
-{
-       switch (property_id) {
-               case PROP_EDITOR:
-                       E_EDITOR_REPLACE_DIALOG (object)->priv->editor =
-                               g_object_ref (g_value_get_object (value));
-                       return;
-       }
-
-       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-}
-
-static void
-editor_replace_dialog_finalize (GObject *object)
-{
-       EEditorReplaceDialogPrivate *priv = E_EDITOR_REPLACE_DIALOG (object)->priv;
-
-       g_clear_object (&priv->editor);
-
-       /* Chain up to parent implementation */
-       G_OBJECT_CLASS (e_editor_replace_dialog_parent_class)->finalize (object);
-}
-
-static void
-e_editor_replace_dialog_class_init (EEditorReplaceDialogClass *klass)
+e_editor_replace_dialog_class_init (EEditorReplaceDialogClass *class)
 {
        GObjectClass *object_class;
        GtkWidgetClass *widget_class;
 
-       e_editor_replace_dialog_parent_class = g_type_class_peek_parent (klass);
-       g_type_class_add_private (klass, sizeof (EEditorReplaceDialogPrivate));
+       g_type_class_add_private (class, sizeof (EEditorReplaceDialogPrivate));
 
-       widget_class = GTK_WIDGET_CLASS (klass);
+       widget_class = GTK_WIDGET_CLASS (class);
        widget_class->show = editor_replace_dialog_show;
 
        object_class = G_OBJECT_CLASS (klass);
@@ -227,9 +203,7 @@ e_editor_replace_dialog_init (EEditorReplaceDialog *dialog)
        GtkWidget *widget, *layout;
        GtkBox *button_box;
 
-       dialog->priv = G_TYPE_INSTANCE_GET_PRIVATE (
-                               dialog, E_TYPE_EDITOR_REPLACE_DIALOG,
-                               EEditorReplaceDialogPrivate);
+       dialog->priv = E_EDITOR_REPLACE_DIALOG_GET_PRIVATE (dialog);
 
        main_layout = e_editor_dialog_get_container (E_EDITOR_DIALOG (dialog));
 
diff --git a/e-util/e-editor-replace-dialog.h b/e-util/e-editor-replace-dialog.h
index f6c80ee..4ee9f7e 100644
--- a/e-util/e-editor-replace-dialog.h
+++ b/e-util/e-editor-replace-dialog.h
@@ -54,7 +54,6 @@ typedef struct _EEditorReplaceDialogPrivate EEditorReplaceDialogPrivate;
 
 struct _EEditorReplaceDialog {
        EEditorDialog parent;
-
        EEditorReplaceDialogPrivate *priv;
 };
 
@@ -62,9 +61,9 @@ struct _EEditorReplaceDialogClass {
        EEditorDialogClass parent_class;
 };
 
-GType          e_editor_replace_dialog_get_type        (void);
-
-GtkWidget*     e_editor_replace_dialog_new             (EEditor *editor);
+GType          e_editor_replace_dialog_get_type
+                                               (void) G_GNUC_CONST;
+GtkWidget *    e_editor_replace_dialog_new     (EEditor *editor);
 
 G_END_DECLS
 
diff --git a/e-util/e-editor-selection.c b/e-util/e-editor-selection.c
index ab7156c..6d5a8d9 100644
--- a/e-util/e-editor-selection.c
+++ b/e-util/e-editor-selection.c
@@ -41,19 +41,12 @@
 
 #define WORD_WRAP_LENGTH 71
 
-
-G_DEFINE_TYPE (
-       EEditorSelection,
-       e_editor_selection,
-       G_TYPE_OBJECT
-);
-
 /**
  * EEditorSelection:
  *
  * The #EEditorSelection object represents current position of the cursor
  * with the editor or current text selection within the editor. To obtain
- * valid #EEditorSelection, call #e_editor_widget_get_selection().
+ * valid #EEditorSelection, call e_editor_widget_get_selection().
  */
 
 struct _EEditorSelectionPrivate {
@@ -70,14 +63,14 @@ struct _EEditorSelectionPrivate {
 
 enum {
        PROP_0,
-       PROP_EDITOR_WIDGET,
        PROP_ALIGNMENT,
        PROP_BACKGROUND_COLOR,
+       PROP_BLOCK_FORMAT,
        PROP_BOLD,
+       PROP_EDITOR_WIDGET,
+       PROP_FONT_COLOR,
        PROP_FONT_NAME,
        PROP_FONT_SIZE,
-       PROP_FONT_COLOR,
-       PROP_BLOCK_FORMAT,
        PROP_INDENTED,
        PROP_ITALIC,
        PROP_MONOSPACED,
@@ -85,11 +78,17 @@ enum {
        PROP_SUBSCRIPT,
        PROP_SUPERSCRIPT,
        PROP_TEXT,
-       PROP_UNDERLINE,
+       PROP_UNDERLINE
 };
 
 static const GdkRGBA black = { 0 };
 
+G_DEFINE_TYPE (
+       EEditorSelection,
+       e_editor_selection,
+       G_TYPE_OBJECT
+);
+
 static WebKitDOMRange *
 editor_selection_get_current_range (EEditorSelection *selection)
 {
@@ -99,21 +98,19 @@ editor_selection_get_current_range (EEditorSelection *selection)
 
        document = webkit_web_view_get_dom_document (selection->priv->webview);
        window = webkit_dom_document_get_default_view (document);
-       if (!window) {
+       if (window == NULL)
                return NULL;
-       }
 
        dom_selection = webkit_dom_dom_window_get_selection (window);
-       if (webkit_dom_dom_selection_get_range_count (dom_selection) < 1) {
+       if (webkit_dom_dom_selection_get_range_count (dom_selection) < 1)
                return NULL;
-       }
 
        return webkit_dom_dom_selection_get_range_at (dom_selection, 0, NULL);
 }
 
 static gboolean
 get_has_style (EEditorSelection *selection,
-              const gchar *style_tag)
+               const gchar *style_tag)
 {
        WebKitDOMNode *node;
        WebKitDOMElement *element;
@@ -121,18 +118,15 @@ get_has_style (EEditorSelection *selection,
        gboolean result;
        gint tag_len;
 
-
        range = editor_selection_get_current_range (selection);
-       if (!range) {
+       if (range == NULL)
                return FALSE;
-       }
 
        node = webkit_dom_range_get_start_container (range, NULL);
-       if (!WEBKIT_DOM_IS_ELEMENT (node)) {
-               element = webkit_dom_node_get_parent_element (node);
-       } else {
+       if (WEBKIT_DOM_IS_ELEMENT (node))
                element = WEBKIT_DOM_ELEMENT (node);
-       }
+       else
+               element = webkit_dom_node_get_parent_element (node);
 
        tag_len = strlen (style_tag);
        result = FALSE;
@@ -167,12 +161,11 @@ get_has_style (EEditorSelection *selection,
 
                g_free (element_tag);
 
-               if (result) {
+               if (result)
                        break;
-               }
 
                element = webkit_dom_node_get_parent_element (
-                               WEBKIT_DOM_NODE (element));
+                       WEBKIT_DOM_NODE (element));
        }
 
        return result;
@@ -180,7 +173,7 @@ get_has_style (EEditorSelection *selection,
 
 static gchar *
 get_font_property (EEditorSelection *selection,
-                  const gchar *font_property)
+                   const gchar *font_property)
 {
        WebKitDOMRange *range;
        WebKitDOMNode *node;
@@ -188,15 +181,13 @@ get_font_property (EEditorSelection *selection,
        gchar *value;
 
        range = editor_selection_get_current_range (selection);
-       if (!range) {
+       if (range == NULL)
                return NULL;
-       }
 
        node = webkit_dom_range_get_common_ancestor_container (range, NULL);
        element = e_editor_dom_node_find_parent_element (node, "FONT");
-       if (!element) {
+       if (element == NULL)
                return NULL;
-       }
 
        g_object_get (G_OBJECT (element), font_property, &value, NULL);
 
@@ -204,9 +195,11 @@ get_font_property (EEditorSelection *selection,
 }
 
 static void
-webview_selection_changed (WebKitWebView *webview,
-                          EEditorSelection *selection)
+editor_selection_selection_changed_cb (WebKitWebView *webview,
+                                       EEditorSelection *selection)
 {
+       g_object_freeze_notify (G_OBJECT (selection));
+
        g_object_notify (G_OBJECT (selection), "alignment");
        g_object_notify (G_OBJECT (selection), "background-color");
        g_object_notify (G_OBJECT (selection), "bold");
@@ -222,102 +215,135 @@ webview_selection_changed (WebKitWebView *webview,
        g_object_notify (G_OBJECT (selection), "superscript");
        g_object_notify (G_OBJECT (selection), "text");
        g_object_notify (G_OBJECT (selection), "underline");
+
+       g_object_thaw_notify (G_OBJECT (selection));
 }
 
 static void
 editor_selection_set_editor_widget (EEditorSelection *selection,
-                                   EEditorWidget *editor_widget)
+                                    EEditorWidget *editor_widget)
 {
-       selection->priv->webview = g_object_ref (E_EDITOR_WIDGET (editor_widget));
+       g_return_if_fail (E_IS_EDITOR_WIDGET (editor_widget));
+       g_return_if_fail (selection->priv->webview == NULL);
+
+       selection->priv->webview = g_object_ref (editor_widget);
+
        g_signal_connect (
                editor_widget, "selection-changed",
-               G_CALLBACK (webview_selection_changed), selection);
+               G_CALLBACK (editor_selection_selection_changed_cb), selection);
 }
 
-
 static void
-e_editor_selection_get_property (GObject *object,
-                                guint property_id,
-                                GValue *value,
-                                GParamSpec *pspec)
+editor_selection_get_property (GObject *object,
+                               guint property_id,
+                               GValue *value,
+                               GParamSpec *pspec)
 {
        GdkRGBA rgba = { 0 };
-       EEditorSelection *selection = E_EDITOR_SELECTION (object);
 
        switch (property_id) {
                case PROP_ALIGNMENT:
-                       g_value_set_int (value,
-                               e_editor_selection_get_alignment (selection));
+                       g_value_set_int (
+                               value,
+                               e_editor_selection_get_alignment (
+                               E_EDITOR_SELECTION (object)));
                        return;
 
                case PROP_BACKGROUND_COLOR:
-                       g_value_set_string (value,
-                               e_editor_selection_get_background_color (selection));
-                       return;
-
-               case PROP_BOLD:
-                       g_value_set_boolean (value,
-                               e_editor_selection_is_bold (selection));
+                       g_value_set_string (
+                               value,
+                               e_editor_selection_get_background_color (
+                               E_EDITOR_SELECTION (object)));
                        return;
 
-               case PROP_FONT_NAME:
-                       g_value_set_string (value,
-                               e_editor_selection_get_font_name (selection));
+               case PROP_BLOCK_FORMAT:
+                       g_value_set_int (
+                               value,
+                               e_editor_selection_get_block_format (
+                               E_EDITOR_SELECTION (object)));
                        return;
 
-               case PROP_FONT_SIZE:
-                       g_value_set_int (value,
-                               e_editor_selection_get_font_size (selection));
+               case PROP_BOLD:
+                       g_value_set_boolean (
+                               value,
+                               e_editor_selection_is_bold (
+                               E_EDITOR_SELECTION (object)));
                        return;
 
                case PROP_FONT_COLOR:
-                       e_editor_selection_get_font_color (selection, &rgba);
+                       e_editor_selection_get_font_color (
+                               E_EDITOR_SELECTION (object), &rgba);
                        g_value_set_boxed (value, &rgba);
                        return;
 
-               case PROP_BLOCK_FORMAT:
-                       g_value_set_int (value,
-                               e_editor_selection_get_block_format (selection));
+               case PROP_FONT_NAME:
+                       g_value_set_string (
+                               value,
+                               e_editor_selection_get_font_name (
+                               E_EDITOR_SELECTION (object)));
+                       return;
+
+               case PROP_FONT_SIZE:
+                       g_value_set_int (
+                               value,
+                               e_editor_selection_get_font_size (
+                               E_EDITOR_SELECTION (object)));
                        return;
 
                case PROP_INDENTED:
-                       g_value_set_boolean (value,
-                               e_editor_selection_is_indented (selection));
+                       g_value_set_boolean (
+                               value,
+                               e_editor_selection_is_indented (
+                               E_EDITOR_SELECTION (object)));
                        return;
 
                case PROP_ITALIC:
-                       g_value_set_boolean (value,
-                               e_editor_selection_is_italic (selection));
+                       g_value_set_boolean (
+                               value,
+                               e_editor_selection_is_italic (
+                               E_EDITOR_SELECTION (object)));
                        return;
 
                case PROP_MONOSPACED:
-                       g_value_set_boolean (value,
-                               e_editor_selection_is_monospaced (selection));
+                       g_value_set_boolean (
+                               value,
+                               e_editor_selection_is_monospaced (
+                               E_EDITOR_SELECTION (object)));
                        return;
 
                case PROP_STRIKE_THROUGH:
-                       g_value_set_boolean (value,
-                               e_editor_selection_is_strike_through (selection));
+                       g_value_set_boolean (
+                               value,
+                               e_editor_selection_is_strike_through (
+                               E_EDITOR_SELECTION (object)));
                        return;
 
                case PROP_SUBSCRIPT:
-                       g_value_set_boolean (value,
-                               e_editor_selection_is_subscript (selection));
+                       g_value_set_boolean (
+                               value,
+                               e_editor_selection_is_subscript (
+                               E_EDITOR_SELECTION (object)));
                        return;
 
                case PROP_SUPERSCRIPT:
-                       g_value_set_boolean (value,
-                               e_editor_selection_is_superscript (selection));
+                       g_value_set_boolean (
+                               value,
+                               e_editor_selection_is_superscript (
+                               E_EDITOR_SELECTION (object)));
                        return;
 
                case PROP_TEXT:
-                       g_value_set_string (value,
-                               e_editor_selection_get_string (selection));
+                       g_value_set_string (
+                               value,
+                               e_editor_selection_get_string (
+                               E_EDITOR_SELECTION (object)));
                        break;
 
                case PROP_UNDERLINE:
-                       g_value_set_boolean (value,
-                               e_editor_selection_is_underline (selection));
+                       g_value_set_boolean (
+                               value,
+                               e_editor_selection_is_underline (
+                               E_EDITOR_SELECTION (object)));
                        return;
        }
 
@@ -325,82 +351,94 @@ e_editor_selection_get_property (GObject *object,
 }
 
 static void
-e_editor_selection_set_property (GObject *object,
-                                guint property_id,
-                                const GValue *value,
-                                GParamSpec *pspec)
+editor_selection_set_property (GObject *object,
+                               guint property_id,
+                               const GValue *value,
+                               GParamSpec *pspec)
 {
-       EEditorSelection *selection = E_EDITOR_SELECTION (object);
-
        switch (property_id) {
-               case PROP_EDITOR_WIDGET:
-                       editor_selection_set_editor_widget (
-                               selection, g_value_get_object (value));
-                       return;
-
                case PROP_ALIGNMENT:
                        e_editor_selection_set_alignment (
-                               selection, g_value_get_int (value));
+                               E_EDITOR_SELECTION (object),
+                               g_value_get_int (value));
                        return;
 
                case PROP_BACKGROUND_COLOR:
                        e_editor_selection_set_background_color (
-                               selection, g_value_get_string (value));
+                               E_EDITOR_SELECTION (object),
+                               g_value_get_string (value));
                        return;
 
                case PROP_BOLD:
                        e_editor_selection_set_bold (
-                               selection, g_value_get_boolean (value));
+                               E_EDITOR_SELECTION (object),
+                               g_value_get_boolean (value));
+                       return;
+
+               case PROP_EDITOR_WIDGET:
+                       editor_selection_set_editor_widget (
+                               E_EDITOR_SELECTION (object),
+                               g_value_get_object (value));
                        return;
 
                case PROP_FONT_COLOR:
                        e_editor_selection_set_font_color (
-                               selection, g_value_get_boxed (value));
+                               E_EDITOR_SELECTION (object),
+                               g_value_get_boxed (value));
                        return;
 
                case PROP_BLOCK_FORMAT:
                        e_editor_selection_set_block_format (
-                               selection, g_value_get_int (value));
+                               E_EDITOR_SELECTION (object),
+                               g_value_get_int (value));
                        return;
 
                case PROP_FONT_NAME:
                        e_editor_selection_set_font_name (
-                               selection, g_value_get_string (value));
+                               E_EDITOR_SELECTION (object),
+                               g_value_get_string (value));
                        return;
 
                case PROP_FONT_SIZE:
                        e_editor_selection_set_font_size (
-                               selection, g_value_get_int (value));
+                               E_EDITOR_SELECTION (object),
+                               g_value_get_int (value));
                        return;
 
                case PROP_ITALIC:
                        e_editor_selection_set_italic (
-                               selection, g_value_get_boolean (value));
+                               E_EDITOR_SELECTION (object),
+                               g_value_get_boolean (value));
                        return;
 
                case PROP_MONOSPACED:
                        e_editor_selection_set_monospaced (
-                               selection, g_value_get_boolean (value));
+                               E_EDITOR_SELECTION (object),
+                               g_value_get_boolean (value));
                        return;
 
                case PROP_STRIKE_THROUGH:
                        e_editor_selection_set_strike_through (
-                               selection, g_value_get_boolean (value));
+                               E_EDITOR_SELECTION (object),
+                               g_value_get_boolean (value));
                        return;
 
                case PROP_SUBSCRIPT:
                        e_editor_selection_set_subscript (
-                               selection, g_value_get_boolean (value));
+                               E_EDITOR_SELECTION (object),
+                               g_value_get_boolean (value));
                        return;
 
                case PROP_SUPERSCRIPT:
                        e_editor_selection_set_superscript (
-                               selection, g_value_get_boolean (value));
+                               E_EDITOR_SELECTION (object),
+                               g_value_get_boolean (value));
                        return;
 
                case PROP_UNDERLINE:
                        e_editor_selection_set_underline (
-                               selection, g_value_get_boolean (value));
+                               E_EDITOR_SELECTION (object),
+                               g_value_get_boolean (value));
                        return;
        }
 
@@ -408,38 +446,41 @@ e_editor_selection_set_property (GObject *object,
 }
 
 static void
-e_editor_selection_finalize (GObject *object)
+editor_selection_dispose (GObject *object)
 {
-       EEditorSelection *selection = E_EDITOR_SELECTION (object);
+       EEditorSelectionPrivate *priv;
 
-       g_clear_object (&selection->priv->webview);
+       priv = E_EDITOR_SELECTION_GET_PRIVATE (object);
+
+       g_clear_object (&priv->webview);
+
+       /* Chain up to parent's dispose() method. */
+       G_OBJECT_CLASS (e_editor_selection_parent_class)->dispose (object);
+}
+
+static void
+editor_selection_finalize (GObject *object)
+{
+       EEditorSelection *selection = E_EDITOR_SELECTION (object);
 
        g_free (selection->priv->text);
-       selection->priv->text = NULL;
+
+       /* Chain up to parent's finalize() method. */
+       G_OBJECT_CLASS (e_editor_selection_parent_class)->finalize (object);
 }
 
 static void
-e_editor_selection_class_init (EEditorSelectionClass *klass)
+e_editor_selection_class_init (EEditorSelectionClass *class)
 {
        GObjectClass *object_class;
 
-       g_type_class_add_private (klass, sizeof (EEditorSelectionPrivate));
+       g_type_class_add_private (class, sizeof (EEditorSelectionPrivate));
 
-       object_class = G_OBJECT_CLASS (klass);
-       object_class->get_property = e_editor_selection_get_property;
-       object_class->set_property = e_editor_selection_set_property;
-       object_class->finalize = e_editor_selection_finalize;
-
-       g_object_class_install_property (
-               object_class,
-               PROP_EDITOR_WIDGET,
-               g_param_spec_object (
-                       "editor-widget",
-                       NULL,
-                       NULL,
-                       E_TYPE_EDITOR_WIDGET,
-                       G_PARAM_WRITABLE |
-                       G_PARAM_CONSTRUCT_ONLY));
+       object_class = G_OBJECT_CLASS (class);
+       object_class->get_property = editor_selection_get_property;
+       object_class->set_property = editor_selection_set_property;
+       object_class->dispose = editor_selection_dispose;
+       object_class->finalize = editor_selection_finalize;
 
        /**
         * EEditorSelection:alignment
@@ -470,10 +511,31 @@ e_editor_selection_class_init (EEditorSelectionClass *klass)
                PROP_BACKGROUND_COLOR,
                g_param_spec_string (
                        "background-color",
-                       NULL,
-                       NULL,
-                       NULL,
-                       G_PARAM_READWRITE));
+                       NULL,
+                       NULL,
+                       NULL,
+                       G_PARAM_READWRITE));
+
+       /**
+        * EEditorSelection:block-format
+        *
+        * Holds block format of current paragraph. See
+        * #EEditorSelectionBlockFormat for valid values.
+        */
+       /* FIXME Convert the EEditorSelectionBlockFormat
+        *       enum to a proper type. */
+       g_object_class_install_property (
+               object_class,
+               PROP_BLOCK_FORMAT,
+               g_param_spec_int (
+                       "block-format",
+                       NULL,
+                       NULL,
+                       0,
+                       G_MAXINT,
+                       0,
+                       G_PARAM_READWRITE |
+                       G_PARAM_STATIC_STRINGS));
 
        /**
         * EEditorSelection:bold
@@ -489,73 +551,71 @@ e_editor_selection_class_init (EEditorSelectionClass *klass)
                        NULL,
                        NULL,
                        FALSE,
-                       G_PARAM_READWRITE));
+                       G_PARAM_READWRITE |
+                       G_PARAM_STATIC_STRINGS));
 
-       /**
-        * EEditorSelection:font-name
-        *
-        * Holds name of font in current selection or at current cursor position.
-        */
        g_object_class_install_property (
                object_class,
-               PROP_FONT_NAME,
-               g_param_spec_string (
-                       "font-name",
-                       NULL,
-                       NULL,
-                       NULL,
-                       G_PARAM_READWRITE));
+               PROP_EDITOR_WIDGET,
+               g_param_spec_object (
+                       "editor-widget",
+                       NULL,
+                       NULL,
+                       E_TYPE_EDITOR_WIDGET,
+                       G_PARAM_WRITABLE |
+                       G_PARAM_CONSTRUCT_ONLY |
+                       G_PARAM_STATIC_STRINGS));
 
        /**
-        * EEditorSelection:font-size
+        * EEditorSelection:font-color
         *
-        * Holds point size of current selection or at current cursor position.
+        * Holds font color of current selection or at current cursor position.
         */
        g_object_class_install_property (
                object_class,
-               PROP_FONT_SIZE,
-               g_param_spec_int (
-                       "font-size",
+               PROP_FONT_COLOR,
+               g_param_spec_boxed (
+                       "font-color",
                        NULL,
                        NULL,
-                       1,
-                       7,
-                       3,
-                       G_PARAM_READWRITE));
+                       GDK_TYPE_RGBA,
+                       G_PARAM_READWRITE |
+                       G_PARAM_STATIC_STRINGS));
 
        /**
-        * EEditorSelection:font-color
+        * EEditorSelection:font-name
         *
-        * Holds font color of current selection or at current cursor position
+        * Holds name of font in current selection or at current cursor
+        * position.
         */
        g_object_class_install_property (
                object_class,
-               PROP_FONT_COLOR,
-               g_param_spec_boxed (
-                       "font-color",
+               PROP_FONT_NAME,
+               g_param_spec_string (
+                       "font-name",
                        NULL,
                        NULL,
-                       GDK_TYPE_RGBA,
-                       G_PARAM_READWRITE));
+                       NULL,
+                       G_PARAM_READWRITE |
+                       G_PARAM_STATIC_STRINGS));
 
        /**
-        * EEditorSelection:block-format
+        * EEditorSelection:font-size
         *
-        * Holds block format of current paragraph. See #EEditorSelectionBlockFormat
-        * for valid values.
+        * Holds point size of current selection or at current cursor position.
         */
-       /* FIXME: Convert the EEditorSelectionBlockFormat enum to a propert type */
        g_object_class_install_property (
                object_class,
-               PROP_BLOCK_FORMAT,
+               PROP_FONT_SIZE,
                g_param_spec_int (
-                       "block-format",
+                       "font-size",
                        NULL,
                        NULL,
-                       0,
-                       G_MAXINT,
-                       0,
-                       G_PARAM_READWRITE));
+                       1,
+                       7,
+                       3,
+                       G_PARAM_READWRITE |
+                       G_PARAM_STATIC_STRINGS));
 
        /**
         * EEditorSelection:indented
@@ -571,7 +631,8 @@ e_editor_selection_class_init (EEditorSelectionClass *klass)
                        NULL,
                        NULL,
                        FALSE,
-                       G_PARAM_READABLE));
+                       G_PARAM_READABLE |
+                       G_PARAM_STATIC_STRINGS));
 
        /**
         * EEditorSelection:italic
@@ -587,7 +648,8 @@ e_editor_selection_class_init (EEditorSelectionClass *klass)
                        NULL,
                        NULL,
                        FALSE,
-                       G_PARAM_READWRITE));
+                       G_PARAM_READWRITE |
+                       G_PARAM_STATIC_STRINGS));
 
        /**
         * EEditorSelection:monospaced
@@ -603,7 +665,8 @@ e_editor_selection_class_init (EEditorSelectionClass *klass)
                        NULL,
                        NULL,
                        FALSE,
-                       G_PARAM_READWRITE));
+                       G_PARAM_READWRITE |
+                       G_PARAM_STATIC_STRINGS));
 
        /**
         * EEditorSelection:strike-through
@@ -619,7 +682,8 @@ e_editor_selection_class_init (EEditorSelectionClass *klass)
                        NULL,
                        NULL,
                        FALSE,
-                       G_PARAM_READWRITE));
+                       G_PARAM_READWRITE |
+                       G_PARAM_STATIC_STRINGS));
 
        /**
         * EEditorSelection:superscript
@@ -635,7 +699,8 @@ e_editor_selection_class_init (EEditorSelectionClass *klass)
                        NULL,
                        NULL,
                        FALSE,
-                       G_PARAM_READWRITE));
+                       G_PARAM_READWRITE |
+                       G_PARAM_STATIC_STRINGS));
 
        /**
         * EEditorSelection:subscript
@@ -651,7 +716,8 @@ e_editor_selection_class_init (EEditorSelectionClass *klass)
                        NULL,
                        NULL,
                        FALSE,
-                       G_PARAM_READWRITE));
+                       G_PARAM_READWRITE |
+                       G_PARAM_STATIC_STRINGS));
 
        /**
         * EEditorSelection:text
@@ -663,10 +729,11 @@ e_editor_selection_class_init (EEditorSelectionClass *klass)
                PROP_TEXT,
                g_param_spec_string (
                        "text",
-                      NULL,
-                      NULL,
-                      NULL,
-                      G_PARAM_READABLE));
+                       NULL,
+                       NULL,
+                       NULL,
+                       G_PARAM_READABLE |
+                       G_PARAM_STATIC_STRINGS));
 
        /**
         * EEditorSelection:underline
@@ -682,10 +749,10 @@ e_editor_selection_class_init (EEditorSelectionClass *klass)
                        NULL,
                        NULL,
                        FALSE,
-                       G_PARAM_READWRITE));
+                       G_PARAM_READWRITE |
+                       G_PARAM_STATIC_STRINGS));
 }
 
-
 static void
 e_editor_selection_init (EEditorSelection *selection)
 {
@@ -711,20 +778,17 @@ e_editor_selection_has_text (EEditorSelection *selection)
        range = editor_selection_get_current_range (selection);
 
        node = webkit_dom_range_get_start_container (range, NULL);
-       if (webkit_dom_node_get_node_type (node) == 3) {
+       if (webkit_dom_node_get_node_type (node) == 3)
                return TRUE;
-       }
 
        node = webkit_dom_range_get_end_container (range, NULL);
-       if (webkit_dom_node_get_node_type (node) == 3) {
+       if (webkit_dom_node_get_node_type (node) == 3)
                return TRUE;
-       }
 
        node = WEBKIT_DOM_NODE (webkit_dom_range_clone_contents (range, NULL));
        while (node) {
-               if (webkit_dom_node_get_node_type (node) == 3) {
+               if (webkit_dom_node_get_node_type (node) == 3)
                        return TRUE;
-               }
 
                if (webkit_dom_node_has_child_nodes (node)) {
                        node = webkit_dom_node_get_first_child (node);
@@ -775,7 +839,7 @@ e_editor_selection_get_caret_word (EEditorSelection *selection)
  */
 void
 e_editor_selection_replace_caret_word (EEditorSelection *selection,
-                                      const gchar *replacement)
+                                       const gchar *replacement)
 {
        WebKitDOMDocument *document;
        WebKitDOMDOMWindow *window;
@@ -825,7 +889,7 @@ e_editor_selection_get_string(EEditorSelection *selection)
  */
 void
 e_editor_selection_replace (EEditorSelection *selection,
-                           const gchar *new_string)
+                            const gchar *new_string)
 {
        g_return_if_fail (E_IS_EDITOR_SELECTION (selection));
 
@@ -858,24 +922,21 @@ e_editor_selection_get_alignment (EEditorSelection *selection)
                E_EDITOR_SELECTION_ALIGNMENT_LEFT);
 
        range = editor_selection_get_current_range (selection);
-       if (!range) {
+       if (range == NULL)
                return E_EDITOR_SELECTION_ALIGNMENT_LEFT;
-       }
 
        node = webkit_dom_range_get_start_container (range, NULL);
-       if (!node) {
+       if (node == NULL)
                return E_EDITOR_SELECTION_ALIGNMENT_LEFT;
-       }
 
-       if (!WEBKIT_DOM_IS_ELEMENT (node)) {
-               element = webkit_dom_node_get_parent_element (node);
-       } else {
+       if (WEBKIT_DOM_IS_ELEMENT (node))
                element = WEBKIT_DOM_ELEMENT (node);
-       }
+       else
+               element = webkit_dom_node_get_parent_element (node);
 
        style = webkit_dom_element_get_style (element);
        value = webkit_dom_css_style_declaration_get_property_value (
-                               style, "text-align");
+               style, "text-align");
 
        if (!value || !*value ||
            (g_ascii_strncasecmp (value, "left", 4) == 0)) {
@@ -902,15 +963,14 @@ e_editor_selection_get_alignment (EEditorSelection *selection)
  */
 void
 e_editor_selection_set_alignment (EEditorSelection *selection,
-                                 EEditorSelectionAlignment alignment)
+                                  EEditorSelectionAlignment alignment)
 {
        EEditorWidgetCommand command;
 
        g_return_if_fail (E_IS_EDITOR_SELECTION (selection));
 
-       if (e_editor_selection_get_alignment (selection) == alignment) {
+       if (e_editor_selection_get_alignment (selection) == alignment)
                return;
-       }
 
        switch (alignment) {
                case E_EDITOR_SELECTION_ALIGNMENT_CENTER:
@@ -970,10 +1030,10 @@ e_editor_selection_get_background_color (EEditorSelection *selection)
  */
 void
 e_editor_selection_set_background_color (EEditorSelection *selection,
-                                       const gchar *color)
+                                        const gchar *color)
 {
        g_return_if_fail (E_IS_EDITOR_SELECTION (selection));
-       g_return_if_fail (color && *color);
+       g_return_if_fail (color != NULL && *color != '\0');
 
        e_editor_widget_exec_command (
                E_EDITOR_WIDGET (selection->priv->webview),
@@ -998,13 +1058,13 @@ e_editor_selection_get_block_format (EEditorSelection *selection)
        WebKitDOMElement *element;
        EEditorSelectionBlockFormat result;
 
-       g_return_val_if_fail (E_IS_EDITOR_SELECTION (selection),
-                             E_EDITOR_SELECTION_BLOCK_FORMAT_PARAGRAPH);
+       g_return_val_if_fail (
+               E_IS_EDITOR_SELECTION (selection),
+               E_EDITOR_SELECTION_BLOCK_FORMAT_PARAGRAPH);
 
        range = editor_selection_get_current_range (selection);
-       if (!range) {
+       if (range == NULL)
                return E_EDITOR_SELECTION_BLOCK_FORMAT_PARAGRAPH;
-       }
 
        node = webkit_dom_range_get_start_container (range, NULL);
 
@@ -1014,7 +1074,7 @@ e_editor_selection_get_block_format (EEditorSelection *selection)
                if (webkit_dom_element_has_attribute (element, "type")) {
                        gchar *type;
 
-                       type = webkit_dom_element_get_attribute(element, "type");
+                       type = webkit_dom_element_get_attribute (element, "type");
                        if (type && ((*type == 'a') || (*type == 'A'))) {
                                result = E_EDITOR_SELECTION_BLOCK_FORMAT_ORDERED_LIST_ALPHA;
                        } else if (type && ((*type == 'i') || (*type == 'I'))) {
@@ -1063,7 +1123,7 @@ e_editor_selection_get_block_format (EEditorSelection *selection)
  */
 void
 e_editor_selection_set_block_format (EEditorSelection *selection,
-                                    EEditorSelectionBlockFormat format)
+                                     EEditorSelectionBlockFormat format)
 {
        EEditorSelectionBlockFormat current_format;
        EEditorWidgetCommand command;
@@ -1134,14 +1194,13 @@ e_editor_selection_set_block_format (EEditorSelection *selection,
                        break;
        }
 
-
        /* First remove (un)ordered list before changing formatting */
        if (current_format == E_EDITOR_SELECTION_BLOCK_FORMAT_UNORDERED_LIST) {
                e_editor_widget_exec_command (
                        E_EDITOR_WIDGET (selection->priv->webview),
                        E_EDITOR_WIDGET_COMMAND_INSERT_UNORDERED_LIST, NULL);
-               /*                  ^-- not a typo, "insert" toggles the formatting
-                *                      if already present */
+               /*                  ^-- not a typo, "insert" toggles the
+                *                      formatting if already present */
        } else if (current_format >= E_EDITOR_SELECTION_BLOCK_FORMAT_ORDERED_LIST) {
                e_editor_widget_exec_command (
                        E_EDITOR_WIDGET (selection->priv->webview),
@@ -1155,18 +1214,18 @@ e_editor_selection_set_block_format (EEditorSelection *selection,
        if ((format == E_EDITOR_SELECTION_BLOCK_FORMAT_ORDERED_LIST_ALPHA) ||
            (format == E_EDITOR_SELECTION_BLOCK_FORMAT_ORDERED_LIST_ROMAN)) {
 
-               WebKitDOMRange *range = editor_selection_get_current_range (selection);
+               WebKitDOMRange *range;
                WebKitDOMNode *node;
                WebKitDOMElement *list;
 
+               range = editor_selection_get_current_range (selection);
                node = webkit_dom_range_get_start_container (range, NULL);
 
                list = e_editor_dom_node_find_child_element (node, "OL");
-               if (!list) {
+               if (list == NULL)
                        list = e_editor_dom_node_find_parent_element (node, "OL");
-               }
 
-               if (list) {
+               if (list != NULL) {
                        webkit_dom_element_set_attribute (
                                list, "type",
                                (format == E_EDITOR_SELECTION_BLOCK_FORMAT_ORDERED_LIST_ALPHA) ?
@@ -1187,7 +1246,7 @@ e_editor_selection_set_block_format (EEditorSelection *selection,
  */
 void
 e_editor_selection_get_font_color (EEditorSelection *selection,
-                                  GdkRGBA *rgba)
+                                   GdkRGBA *rgba)
 {
        gchar *color;
        g_return_if_fail (E_IS_EDITOR_SELECTION (selection));
@@ -1212,17 +1271,19 @@ e_editor_selection_get_font_color (EEditorSelection *selection,
  */
 void
 e_editor_selection_set_font_color (EEditorSelection *selection,
-                                  const GdkRGBA *rgba)
+                                   const GdkRGBA *rgba)
 {
+       guint32 rgba_value;
        gchar *color;
 
        g_return_if_fail (E_IS_EDITOR_SELECTION (selection));
 
-       if (!rgba) {
+       if (rgba == NULL)
                rgba = &black;
-       }
 
-       color = g_strdup_printf ("#%06x", e_rgba_to_value ((GdkRGBA *) rgba));
+       rgba_value = e_rgba_to_value ((GdkRGBA *) rgba);
+
+       color = g_strdup_printf ("#%06x", rgba_value);
 
        e_editor_widget_exec_command (
                E_EDITOR_WIDGET (selection->priv->webview),
@@ -1272,7 +1333,7 @@ e_editor_selection_get_font_name (EEditorSelection *selection)
  */
 void
 e_editor_selection_set_font_name (EEditorSelection *selection,
-                                 const gchar *font_name)
+                                  const gchar *font_name)
 {
        g_return_if_fail (E_IS_EDITOR_SELECTION (selection));
 
@@ -1280,7 +1341,6 @@ e_editor_selection_set_font_name (EEditorSelection *selection,
                E_EDITOR_WIDGET (selection->priv->webview),
                E_EDITOR_WIDGET_COMMAND_FONT_NAME, font_name);
 
-
        g_object_notify (G_OBJECT (selection), "font-name");
 }
 
@@ -1325,13 +1385,13 @@ e_editor_selection_get_font_size (EEditorSelection *selection)
  */
 void
 e_editor_selection_set_font_size (EEditorSelection *selection,
-                                 guint font_size)
+                                  guint font_size)
 {
        gchar *size_str;
 
        g_return_if_fail (E_IS_EDITOR_SELECTION (selection));
 
-       size_str = g_strdup_printf("%d", font_size);
+       size_str = g_strdup_printf ("%d", font_size);
 
        e_editor_widget_exec_command (
                E_EDITOR_WIDGET (selection->priv->webview),
@@ -1350,11 +1410,12 @@ e_editor_selection_set_font_size (EEditorSelection *selection,
  * Returns: @TRUE when current paragraph is a citation, @FALSE otherwise.
  */
 gboolean
-e_editor_selection_is_citation (EEditorSelection* selection)
+e_editor_selection_is_citation (EEditorSelection *selection)
 {
        g_return_val_if_fail (E_IS_EDITOR_SELECTION (selection), FALSE);
 
-       /* citation == <blockquote type='cite'> - special case handled in get_has_style() */
+       /* citation == <blockquote type='cite'>
+        * special case handled in get_has_style() */
        return get_has_style (selection, "citation");
 }
 
@@ -1362,8 +1423,9 @@ e_editor_selection_is_citation (EEditorSelection* selection)
  * e_editor_selection_is_indented:
  * @selection: an #EEditorSelection
  *
- * Returns whether current paragraph is indented. This does not include citations.
- * To check, whether paragraph is a citation, use #e_editor_selection_is_citation().
+ * Returns whether current paragraph is indented. This does not include
+ * citations.  To check, whether paragraph is a citation, use
+ * e_editor_selection_is_citation().
  *
  * Returns: @TRUE when current paragraph is indented, @FALSE otherwise.
  */
@@ -1390,7 +1452,6 @@ e_editor_selection_indent (EEditorSelection *selection)
                E_EDITOR_WIDGET (selection->priv->webview),
                E_EDITOR_WIDGET_COMMAND_INDENT, NULL);
 
-
        g_object_notify (G_OBJECT (selection), "indented");
 }
 
@@ -1409,7 +1470,6 @@ e_editor_selection_unindent (EEditorSelection *selection)
                E_EDITOR_WIDGET (selection->priv->webview),
                E_EDITOR_WIDGET_COMMAND_OUTDENT, NULL);
 
-
        g_object_notify (G_OBJECT (selection), "indented");
 }
 
@@ -1440,20 +1500,17 @@ e_editor_selection_is_bold (EEditorSelection *selection)
  */
 void
 e_editor_selection_set_bold (EEditorSelection *selection,
-                            gboolean bold)
+                             gboolean bold)
 {
        g_return_if_fail (E_IS_EDITOR_SELECTION (selection));
 
-       if ((e_editor_selection_is_bold (selection) ? TRUE : FALSE)
-                               == (bold ? TRUE : FALSE)) {
+       if (e_editor_selection_is_bold (selection) == bold)
                return;
-       }
 
        e_editor_widget_exec_command (
                E_EDITOR_WIDGET (selection->priv->webview),
                E_EDITOR_WIDGET_COMMAND_BOLD, NULL);
 
-
        g_object_notify (G_OBJECT (selection), "bold");
 }
 
@@ -1484,14 +1541,12 @@ e_editor_selection_is_italic (EEditorSelection *selection)
  */
 void
 e_editor_selection_set_italic (EEditorSelection *selection,
-                              gboolean italic)
+                               gboolean italic)
 {
        g_return_if_fail (E_IS_EDITOR_SELECTION (selection));
 
-       if ((e_editor_selection_is_italic (selection) ? TRUE : FALSE)
-                               == (italic ? TRUE : FALSE)) {
+       if (e_editor_selection_is_italic (selection) == italic)
                return;
-       }
 
        e_editor_widget_exec_command (
                E_EDITOR_WIDGET (selection->priv->webview),
@@ -1527,43 +1582,41 @@ e_editor_selection_is_monospaced (EEditorSelection *selection)
  */
 void
 e_editor_selection_set_monospaced (EEditorSelection *selection,
-                                  gboolean monospaced)
+                                   gboolean monospaced)
 {
        WebKitDOMDocument *document;
        WebKitDOMRange *range;
-       gboolean is_monospaced;
 
        g_return_if_fail (E_IS_EDITOR_SELECTION (selection));
 
-       is_monospaced = e_editor_selection_is_monospaced (selection) ? TRUE : FALSE;
-       if ((is_monospaced ? TRUE : FALSE) == (monospaced ? TRUE : FALSE)) {
+       if (e_editor_selection_is_monospaced (selection) == monospaced)
                return;
-       }
 
        range = editor_selection_get_current_range (selection);
-       if (!range) {
+       if (range == NULL)
                return;
-       }
 
        document = webkit_web_view_get_dom_document (selection->priv->webview);
        if (monospaced) {
                WebKitDOMElement *wrapper;
                gchar *html;
 
-               wrapper = webkit_dom_document_create_element (document, "TT", NULL);
+               wrapper = webkit_dom_document_create_element (
+                       document, "TT", NULL);
                webkit_dom_node_append_child (
                        WEBKIT_DOM_NODE (wrapper),
                        WEBKIT_DOM_NODE (webkit_dom_range_clone_contents (range, NULL)),
                        NULL);
 
                html = webkit_dom_html_element_get_outer_html (
-                               WEBKIT_DOM_HTML_ELEMENT (wrapper));
+                       WEBKIT_DOM_HTML_ELEMENT (wrapper));
                e_editor_selection_insert_html (selection, html);
        } else {
                /* XXX This removes _all_ formatting that the selection has.
-                *     In theory it's possible to write a code that would remove
-                *     the <TT> from selection using advanced DOM manipulation,
-                *     but right now I don't really feel like writing it all... */
+                *     In theory it's possible to write a code that would
+                *     remove the <TT> from selection using advanced DOM
+                *     manipulation, but right now I don't really feel like
+                *     writing it all. */
                e_editor_widget_exec_command (
                        E_EDITOR_WIDGET (selection->priv->webview),
                        E_EDITOR_WIDGET_COMMAND_REMOVE_FORMAT, NULL);
@@ -1599,14 +1652,12 @@ e_editor_selection_is_strike_through (EEditorSelection *selection)
  */
 void
 e_editor_selection_set_strike_through (EEditorSelection *selection,
-                                      gboolean strike_through)
+                                       gboolean strike_through)
 {
        g_return_if_fail (E_IS_EDITOR_SELECTION (selection));
 
-       if ((e_editor_selection_is_strike_through (selection) ? TRUE : FALSE)
-                               == (strike_through? TRUE : FALSE)) {
+       if (e_editor_selection_is_strike_through (selection) == strike_through)
                return;
-       }
 
        e_editor_widget_exec_command (
                E_EDITOR_WIDGET (selection->priv->webview),
@@ -1662,14 +1713,12 @@ e_editor_selection_is_subscript (EEditorSelection *selection)
  */
 void
 e_editor_selection_set_subscript (EEditorSelection *selection,
-                                 gboolean subscript)
+                                  gboolean subscript)
 {
        g_return_if_fail (E_IS_EDITOR_SELECTION (selection));
 
-       if ((e_editor_selection_is_subscript (selection) ? TRUE : FALSE)
-                               == (subscript? TRUE : FALSE)) {
+       if (e_editor_selection_is_subscript (selection) == subscript)
                return;
-       }
 
        e_editor_widget_exec_command (
                E_EDITOR_WIDGET (selection->priv->webview),
@@ -1725,14 +1774,12 @@ e_editor_selection_is_superscript (EEditorSelection *selection)
  */
 void
 e_editor_selection_set_superscript (EEditorSelection *selection,
-                                   gboolean superscript)
+                                    gboolean superscript)
 {
        g_return_if_fail (E_IS_EDITOR_SELECTION (selection));
 
-       if ((e_editor_selection_is_superscript (selection) ? TRUE : FALSE)
-                               == (superscript? TRUE : FALSE)) {
+       if (e_editor_selection_is_superscript (selection) == superscript)
                return;
-       }
 
        e_editor_widget_exec_command (
                E_EDITOR_WIDGET (selection->priv->webview),
@@ -1768,14 +1815,12 @@ e_editor_selection_is_underline (EEditorSelection *selection)
  */
 void
 e_editor_selection_set_underline (EEditorSelection *selection,
-                                 gboolean underline)
+                                  gboolean underline)
 {
        g_return_if_fail (E_IS_EDITOR_SELECTION (selection));
 
-       if ((e_editor_selection_is_underline (selection) ? TRUE : FALSE)
-                               == (underline? TRUE : FALSE)) {
+       if (e_editor_selection_is_underline (selection) == underline)
                return;
-       }
 
        e_editor_widget_exec_command (
                E_EDITOR_WIDGET (selection->priv->webview),
@@ -1810,7 +1855,7 @@ e_editor_selection_unlink (EEditorSelection *selection)
  */
 void
 e_editor_selection_create_link (EEditorSelection *selection,
-                               const gchar *uri)
+                                const gchar *uri)
 {
        g_return_if_fail (E_IS_EDITOR_SELECTION (selection));
        g_return_if_fail (uri && *uri);
@@ -1830,7 +1875,7 @@ e_editor_selection_create_link (EEditorSelection *selection,
  */
 void
 e_editor_selection_insert_text (EEditorSelection *selection,
-                               const gchar *plain_text)
+                                const gchar *plain_text)
 {
        g_return_if_fail (E_IS_EDITOR_SELECTION (selection));
        g_return_if_fail (plain_text != NULL);
@@ -1850,7 +1895,7 @@ e_editor_selection_insert_text (EEditorSelection *selection,
  */
 void
 e_editor_selection_insert_html (EEditorSelection *selection,
-                               const gchar *html_text)
+                                const gchar *html_text)
 {
        g_return_if_fail (E_IS_EDITOR_SELECTION (selection));
        g_return_if_fail (html_text != NULL);
@@ -1870,7 +1915,7 @@ e_editor_selection_insert_html (EEditorSelection *selection,
  */
 void
 e_editor_selection_insert_image (EEditorSelection *selection,
-                                const gchar *image_uri)
+                                 const gchar *image_uri)
 {
        g_return_if_fail (E_IS_EDITOR_SELECTION (selection));
        g_return_if_fail (image_uri != NULL);
@@ -1882,7 +1927,7 @@ e_editor_selection_insert_image (EEditorSelection *selection,
 
 static gint
 find_where_to_break_line (WebKitDOMNode *node,
-                         gint max_len)
+                          gint max_len)
 {
        gchar *str, *text_start;
        gunichar uc;
@@ -2002,7 +2047,7 @@ e_editor_selection_wrap_lines (EEditorSelection *selection)
                                        (WebKitDOMText *) node, len + offset, NULL);
 
                                element = webkit_dom_document_create_element (
-                                               document, "BR", NULL);
+                                       document, "BR", NULL);
 
                                /* WebKit throws warning when ref_child is NULL */
                                if (webkit_dom_node_get_next_sibling (node)) {
@@ -2044,7 +2089,7 @@ e_editor_selection_wrap_lines (EEditorSelection *selection)
 
        /* Get HTML code of the processed content */
        html = webkit_dom_html_element_get_inner_html (
-                       WEBKIT_DOM_HTML_ELEMENT (element));
+               WEBKIT_DOM_HTML_ELEMENT (element));
 
        /* Overwrite the current selection be the processed content, so that
         * "UNDO" and "REDO" buttons work as expected */
@@ -2058,30 +2103,34 @@ e_editor_selection_wrap_lines (EEditorSelection *selection)
  * @selection: an #EEditorSelection
  *
  * Saves current cursor position or current selection range. The selection can
- * be later restored by calling #e_editor_selection_restore().
+ * be later restored by calling e_editor_selection_restore().
  *
- * Note that calling #e_editor_selection_save() overwrites previously saved
+ * Note that calling e_editor_selection_save() overwrites previously saved
  * position.
  *
  * Note that this method inserts special markings into the HTML code that are
- * used to later restore the selection. It can happen that by deleting some segments
- * of the document some of the markings are deleted too. In that case restoring
- * the selection by #e_editor_selection_restore() can fail. Also by moving text
- * segments (Cut & Paste) can result in moving the markings elsewhere, thus
- * #e_editor_selection_restore() will restore the selection incorrectly.
+ * used to later restore the selection. It can happen that by deleting some
+ * segments of the document some of the markings are deleted too. In that case
+ * restoring the selection by e_editor_selection_restore() can fail. Also by
+ * moving text segments (Cut & Paste) can result in moving the markings
+ * elsewhere, thus e_editor_selection_restore() will restore the selection
+ * incorrectly.
  *
  * It is recommended to use this method only when you are not planning to make
  * bigger changes to content or structure of the document (formatting changes
  * are usually OK).
  */
 void
-e_editor_selection_save (EEditorSelection* selection)
+e_editor_selection_save (EEditorSelection *selection)
 {
        WebKitDOMDocument *document;
        WebKitDOMRange *range;
-       WebKitDOMNode *container, *split;
+       WebKitDOMNode *container;
        WebKitDOMElement *marker;
-
+       WebKitDOMNode *marker_node;
+       WebKitDOMNode *parent_node;
+       WebKitDOMNode *split_node;
+       glong start_offset;
 
        g_return_if_fail (E_IS_EDITOR_SELECTION (selection));
 
@@ -2089,54 +2138,74 @@ e_editor_selection_save (EEditorSelection* selection)
 
        /* First remove all markers (if present) */
        marker = webkit_dom_document_get_element_by_id (
-                       document, "-x-evolution-selection-start-marker");
-       if (marker) {
-             webkit_dom_node_remove_child (
-                   webkit_dom_node_get_parent_node (WEBKIT_DOM_NODE (marker)),
-                   WEBKIT_DOM_NODE (marker), NULL);
+               document, "-x-evolution-selection-start-marker");
+       if (marker != NULL) {
+               WebKitDOMNode *marker_node;
+               WebKitDOMNode *parent_node;
+
+               marker_node = WEBKIT_DOM_NODE (marker);
+               parent_node = webkit_dom_node_get_parent_node (marker_node);
+               webkit_dom_node_remove_child (parent_node, marker_node, NULL);
        }
 
        marker = webkit_dom_document_get_element_by_id (
-                       document, "-x-evolution-selection-end-marker");
-       if (marker) {
-             webkit_dom_node_remove_child (
-                   webkit_dom_node_get_parent_node (WEBKIT_DOM_NODE (marker)),
-                   WEBKIT_DOM_NODE (marker), NULL);
+               document, "-x-evolution-selection-end-marker");
+       if (marker != NULL) {
+               WebKitDOMNode *marker_node;
+               WebKitDOMNode *parent_node;
+
+               marker_node = WEBKIT_DOM_NODE (marker);
+               parent_node = webkit_dom_node_get_parent_node (marker_node);
+               webkit_dom_node_remove_child (parent_node, marker_node, NULL);
        }
 
        range = editor_selection_get_current_range (selection);
 
+       start_offset = webkit_dom_range_get_start_offset (range, NULL);
+
        marker = webkit_dom_document_create_element (document, "SPAN", NULL);
        webkit_dom_html_element_set_id (
-               WEBKIT_DOM_HTML_ELEMENT (marker), "-x-evolution-selection-start-marker");
+               WEBKIT_DOM_HTML_ELEMENT (marker),
+               "-x-evolution-selection-start-marker");
+
        container = webkit_dom_range_get_start_container (range, NULL);
-       if (!WEBKIT_DOM_IS_TEXT (container)) {
-             split = container;
+       if (WEBKIT_DOM_IS_TEXT (container)) {
+               WebKitDOMText *split_text;
+
+               split_text = webkit_dom_text_split_text (
+                       WEBKIT_DOM_TEXT (container), start_offset, NULL);
+               split_node = WEBKIT_DOM_NODE (split_text);
        } else {
-             split = WEBKIT_DOM_NODE (webkit_dom_text_split_text (
-                             (WebKitDOMText *) container,
-                             webkit_dom_range_get_start_offset (range, NULL),
-                             NULL));
+               split_node = container;
        }
+
+       marker_node = WEBKIT_DOM_NODE (marker);
+       parent_node = webkit_dom_node_get_parent_node (container);
+
        webkit_dom_node_insert_before (
-             webkit_dom_node_get_parent_node (container),
-             WEBKIT_DOM_NODE (marker), split, NULL);
+               parent_node, marker_node, split_node, NULL);
 
        marker = webkit_dom_document_create_element (document, "SPAN", NULL);
        webkit_dom_html_element_set_id (
-               WEBKIT_DOM_HTML_ELEMENT (marker), "-x-evolution-selection-end-marker");
+               WEBKIT_DOM_HTML_ELEMENT (marker),
+               "-x-evolution-selection-end-marker");
+
        container = webkit_dom_range_get_end_container (range, NULL);
-       if (!WEBKIT_DOM_IS_TEXT (container)) {
-             split = container;
+       if (WEBKIT_DOM_IS_TEXT (container)) {
+               WebKitDOMText *split_text;
+
+               split_text = webkit_dom_text_split_text (
+                       WEBKIT_DOM_TEXT (container), start_offset, NULL);
+               split_node = WEBKIT_DOM_NODE (split_text);
        } else {
-             split = WEBKIT_DOM_NODE (webkit_dom_text_split_text (
-                             (WebKitDOMText *) container,
-                             webkit_dom_range_get_start_offset (range, NULL),
-                             NULL));
+               split_node = container;
        }
+
+       marker_node = WEBKIT_DOM_NODE (marker);
+       parent_node = webkit_dom_node_get_parent_node (container);
+
        webkit_dom_node_insert_before (
-               webkit_dom_node_get_parent_node (container),
-               WEBKIT_DOM_NODE (marker), split, NULL);
+               parent_node, marker_node, split_node, NULL);
 }
 
 /**
@@ -2144,17 +2213,19 @@ e_editor_selection_save (EEditorSelection* selection)
  * @selection: an #EEditorSelection
  *
  * Restores cursor position or selection range that was saved by
- * #e_editor_selection_save().
+ * e_editor_selection_save().
  *
- * Note that calling this function without calling #e_editor_selection_save()
+ * Note that calling this function without calling e_editor_selection_save()
  * before is a programming error and the behavior is undefined.
  */
 void
-e_editor_selection_restore (EEditorSelection* selection)
+e_editor_selection_restore (EEditorSelection *selection)
 {
        WebKitDOMDocument *document;
        WebKitDOMRange *range;
        WebKitDOMElement *marker;
+       WebKitDOMNode *marker_node;
+       WebKitDOMNode *parent_node;
 
        g_return_if_fail (E_IS_EDITOR_SELECTION (selection));
 
@@ -2162,28 +2233,31 @@ e_editor_selection_restore (EEditorSelection* selection)
        range = editor_selection_get_current_range (selection);
 
        marker = webkit_dom_document_get_element_by_id (
-                       document, "-x-evolution-selection-start-marker");
+               document, "-x-evolution-selection-start-marker");
        g_return_if_fail (marker != NULL);
-       webkit_dom_range_set_start_after (range, WEBKIT_DOM_NODE (marker), NULL);
-       webkit_dom_node_remove_child (
-             webkit_dom_node_get_parent_node (WEBKIT_DOM_NODE (marker)),
-             WEBKIT_DOM_NODE (marker), NULL);
+
+       marker_node = WEBKIT_DOM_NODE (marker);
+       parent_node = webkit_dom_node_get_parent_node (marker_node);
+
+       webkit_dom_range_set_start_after (range, marker_node, NULL);
+       webkit_dom_node_remove_child (parent_node, marker_node, NULL);
 
        marker = webkit_dom_document_get_element_by_id (
-                       document, "-x-evolution-selection-end-marker");
+               document, "-x-evolution-selection-end-marker");
        g_return_if_fail (marker != NULL);
-       webkit_dom_range_set_end_before (range, WEBKIT_DOM_NODE (marker), NULL);
-       webkit_dom_node_remove_child (
-             webkit_dom_node_get_parent_node (WEBKIT_DOM_NODE (marker)),
-             WEBKIT_DOM_NODE (marker), NULL);
-}
 
+       marker_node = WEBKIT_DOM_NODE (marker);
+       parent_node = webkit_dom_node_get_parent_node (marker_node);
+
+       webkit_dom_range_set_end_before (range, marker_node, NULL);
+       webkit_dom_node_remove_child (parent_node, marker_node, NULL);
+}
 
 static void
 editor_selection_modify (EEditorSelection *selection,
-                        const gchar *alter,
-                        gboolean forward,
-                        EEditorSelectionGranularity granularity)
+                         const gchar *alter,
+                         gboolean forward,
+                         EEditorSelectionGranularity granularity)
 {
        WebKitDOMDocument *document;
        WebKitDOMDOMWindow *window;
@@ -2207,7 +2281,7 @@ editor_selection_modify (EEditorSelection *selection,
 
        webkit_dom_dom_selection_modify (
                dom_selection, alter,
-               (forward ? "forward" : "backward"),
+               forward ? "forward" : "backward",
                granularity_str);
 }
 
@@ -2220,9 +2294,9 @@ editor_selection_modify (EEditorSelection *selection,
  * Extends current selection in given direction by given granularity.
  */
 void
-e_editor_selection_extend (EEditorSelection* selection,
-                          gboolean forward,
-                          EEditorSelectionGranularity granularity)
+e_editor_selection_extend (EEditorSelection *selection,
+                           gboolean forward,
+                           EEditorSelectionGranularity granularity)
 {
        editor_selection_modify (selection, "extend", forward, granularity);
 }
@@ -2236,9 +2310,9 @@ e_editor_selection_extend (EEditorSelection* selection,
  * Moves current selection in given direction by given granularity
  */
 void
-e_editor_selection_move (EEditorSelection* selection,
-                        gboolean forward,
-                        EEditorSelectionGranularity granularity)
+e_editor_selection_move (EEditorSelection *selection,
+                         gboolean forward,
+                         EEditorSelectionGranularity granularity)
 {
        editor_selection_modify (selection, "move", forward, granularity);
 }
diff --git a/e-util/e-editor-selection.h b/e-util/e-editor-selection.h
index a7a5572..553b352 100644
--- a/e-util/e-editor-selection.h
+++ b/e-util/e-editor-selection.h
@@ -94,131 +94,109 @@ typedef enum {
 
 struct _EEditorSelection {
        GObject parent;
-
        EEditorSelectionPrivate *priv;
 };
 
 struct _EEditorSelectionClass {
        GObjectClass parent_class;
 };
-GType                  e_editor_selection_get_type     (void);
-
-gboolean               e_editor_selection_has_text     (EEditorSelection *selection);
 
-gchar *                        e_editor_selection_get_caret_word
-                                                       (EEditorSelection *selection);
-void                   e_editor_selection_replace_caret_word
-                                                       (EEditorSelection *selection,
-                                                        const gchar *replacement);
-void                   e_editor_selection_set_alignment
-                                                       (EEditorSelection *selection,
-                                                        EEditorSelectionAlignment alignment);
+GType          e_editor_selection_get_type     (void) G_GNUC_CONST;
+gboolean       e_editor_selection_has_text     (EEditorSelection *selection);
+gchar *                e_editor_selection_get_caret_word
+                                               (EEditorSelection *selection);
+void           e_editor_selection_replace_caret_word
+                                               (EEditorSelection *selection,
+                                                const gchar *replacement);
 EEditorSelectionAlignment
-                       e_editor_selection_get_alignment
-                                                       (EEditorSelection *selection);
-
-void                   e_editor_selection_set_background_color
-                                                       (EEditorSelection *selection,
-                                                        const gchar *color);
-const gchar*           e_editor_selection_get_background_color
-                                                       (EEditorSelection *selection);
-
-void                   e_editor_selection_set_font_name
-                                                       (EEditorSelection *selection,
-                                                        const gchar *font_name);
-const gchar *          e_editor_selection_get_font_name
-                                                       (EEditorSelection *selection);
-
-void                   e_editor_selection_set_font_size
-                                                       (EEditorSelection *selection,
-                                                        guint font_size);
-guint                  e_editor_selection_get_font_size
-                                                       (EEditorSelection *selection);
-
-void                   e_editor_selection_set_font_color
-                                                       (EEditorSelection *selection,
-                                                        const GdkRGBA *color);
-void                   e_editor_selection_get_font_color
-                                                       (EEditorSelection *selection,
-                                                        GdkRGBA *color);
-
-void                   e_editor_selection_set_block_format
-                                                       (EEditorSelection *selection,
-                                                        EEditorSelectionBlockFormat format);
+               e_editor_selection_get_alignment
+                                               (EEditorSelection *selection);
+void           e_editor_selection_set_alignment
+                                               (EEditorSelection *selection,
+                                                EEditorSelectionAlignment alignment);
+const gchar *  e_editor_selection_get_background_color
+                                               (EEditorSelection *selection);
+void           e_editor_selection_set_background_color
+                                               (EEditorSelection *selection,
+                                                const gchar *color);
+void           e_editor_selection_get_font_color
+                                               (EEditorSelection *selection,
+                                                GdkRGBA *color);
+void           e_editor_selection_set_font_color
+                                               (EEditorSelection *selection,
+                                                const GdkRGBA *color);
+const gchar *  e_editor_selection_get_font_name
+                                               (EEditorSelection *selection);
+void           e_editor_selection_set_font_name
+                                               (EEditorSelection *selection,
+                                                const gchar *font_name);
+guint          e_editor_selection_get_font_size
+                                               (EEditorSelection *selection);
+void           e_editor_selection_set_font_size
+                                               (EEditorSelection *selection,
+                                                guint font_size);
 EEditorSelectionBlockFormat
-                       e_editor_selection_get_block_format
-                                                       (EEditorSelection *selection);
-
-gboolean               e_editor_selection_is_citation  (EEditorSelection *selection);
-gboolean               e_editor_selection_is_indented  (EEditorSelection *selection);
-void                   e_editor_selection_indent       (EEditorSelection *selection);
-void                   e_editor_selection_unindent     (EEditorSelection *selection);
-
-void                   e_editor_selection_set_bold     (EEditorSelection *selection,
-                                                        gboolean bold);
-gboolean               e_editor_selection_is_bold      (EEditorSelection *selection);
-
-void                   e_editor_selection_set_italic   (EEditorSelection *selection,
-                                                        gboolean italic);
-gboolean               e_editor_selection_is_italic    (EEditorSelection *selection);
-
-void                   e_editor_selection_set_monospaced
-                                                       (EEditorSelection *selection,
-                                                        gboolean monospaced);
-gboolean               e_editor_selection_is_monospaced
-                                                       (EEditorSelection *selection);
-
-void                   e_editor_selection_set_strike_through
-                                                       (EEditorSelection *selection,
-                                                        gboolean strike_through);
-gboolean               e_editor_selection_is_strike_through
-                                                       (EEditorSelection *selection);
-
-void                   e_editor_selection_set_superscript
-                                                       (EEditorSelection *selection,
-                                                        gboolean superscript);
-gboolean               e_editor_selection_is_superscript
-                                                       (EEditorSelection *selection);
-
-void                   e_editor_selection_set_subscript
-                                                       (EEditorSelection *selection,
-                                                        gboolean subscript);
-gboolean               e_editor_selection_is_subscript
-                                                       (EEditorSelection *selection);
-
-void                   e_editor_selection_set_underline
-                                                       (EEditorSelection *selection,
-                                                        gboolean underline);
-gboolean               e_editor_selection_is_underline
-                                                       (EEditorSelection *selection);
-
-void                   e_editor_selection_unlink       (EEditorSelection *selection);
-
-void                   e_editor_selection_create_link  (EEditorSelection *selection,
-                                                        const gchar *uri);
-
-const gchar *          e_editor_selection_get_string   (EEditorSelection *selection);
-
-void                   e_editor_selection_replace      (EEditorSelection *selection,
-                                                        const gchar *new_string);
-
-void                   e_editor_selection_insert_html  (EEditorSelection *selection,
-                                                        const gchar *html_text);
-void                   e_editor_selection_insert_image (EEditorSelection *selection,
-                                                        const gchar *image_uri);
-void                   e_editor_selection_insert_text  (EEditorSelection *selection,
-                                                        const gchar *plain_text);
-void                   e_editor_selection_wrap_lines   (EEditorSelection *selection);
-
-void                   e_editor_selection_save         (EEditorSelection *selection);
-void                   e_editor_selection_restore      (EEditorSelection *selection);
-
-void                   e_editor_selection_move         (EEditorSelection *selection,
-                                                        gboolean forward,
-                                                        EEditorSelectionGranularity granularity);
-void                   e_editor_selection_extend       (EEditorSelection *selection,
-                                                        gboolean forward,
-                                                        EEditorSelectionGranularity granularity);
+               e_editor_selection_get_block_format
+                                               (EEditorSelection *selection);
+void           e_editor_selection_set_block_format
+                                               (EEditorSelection *selection,
+                                                EEditorSelectionBlockFormat format);
+gboolean       e_editor_selection_is_citation  (EEditorSelection *selection);
+gboolean       e_editor_selection_is_indented  (EEditorSelection *selection);
+void           e_editor_selection_indent       (EEditorSelection *selection);
+void           e_editor_selection_unindent     (EEditorSelection *selection);
+gboolean       e_editor_selection_is_bold      (EEditorSelection *selection);
+void           e_editor_selection_set_bold     (EEditorSelection *selection,
+                                                gboolean bold);
+gboolean       e_editor_selection_is_italic    (EEditorSelection *selection);
+void           e_editor_selection_set_italic   (EEditorSelection *selection,
+                                                gboolean italic);
+gboolean       e_editor_selection_is_monospaced
+                                               (EEditorSelection *selection);
+void           e_editor_selection_set_monospaced
+                                               (EEditorSelection *selection,
+                                                gboolean monospaced);
+gboolean       e_editor_selection_is_strike_through
+                                               (EEditorSelection *selection);
+void           e_editor_selection_set_strike_through
+                                               (EEditorSelection *selection,
+                                                gboolean strike_through);
+gboolean       e_editor_selection_is_superscript
+                                               (EEditorSelection *selection);
+void           e_editor_selection_set_superscript
+                                               (EEditorSelection *selection,
+                                                gboolean superscript);
+gboolean       e_editor_selection_is_subscript
+                                               (EEditorSelection *selection);
+void           e_editor_selection_set_subscript
+                                               (EEditorSelection *selection,
+                                                gboolean subscript);
+gboolean       e_editor_selection_is_underline
+                                               (EEditorSelection *selection);
+void           e_editor_selection_set_underline
+                                               (EEditorSelection *selection,
+                                                gboolean underline);
+void           e_editor_selection_unlink       (EEditorSelection *selection);
+void           e_editor_selection_create_link  (EEditorSelection *selection,
+                                                const gchar *uri);
+const gchar *  e_editor_selection_get_string   (EEditorSelection *selection);
+void           e_editor_selection_replace      (EEditorSelection *selection,
+                                                const gchar *new_string);
+void           e_editor_selection_insert_html  (EEditorSelection *selection,
+                                                const gchar *html_text);
+void           e_editor_selection_insert_image (EEditorSelection *selection,
+                                                const gchar *image_uri);
+void           e_editor_selection_insert_text  (EEditorSelection *selection,
+                                                const gchar *plain_text);
+void           e_editor_selection_wrap_lines   (EEditorSelection *selection);
+void           e_editor_selection_save         (EEditorSelection *selection);
+void           e_editor_selection_restore      (EEditorSelection *selection);
+void           e_editor_selection_move         (EEditorSelection *selection,
+                                                gboolean forward,
+                                                EEditorSelectionGranularity granularity);
+void           e_editor_selection_extend       (EEditorSelection *selection,
+                                                gboolean forward,
+                                                EEditorSelectionGranularity granularity);
 
 G_END_DECLS
 
diff --git a/e-util/e-editor-spell-check-dialog.c b/e-util/e-editor-spell-check-dialog.c
index a303482..1b102f7 100644
--- a/e-util/e-editor-spell-check-dialog.c
+++ b/e-util/e-editor-spell-check-dialog.c
@@ -31,16 +31,9 @@
 #include "e-spell-checker.h"
 #include "e-spell-dictionary.h"
 
-G_DEFINE_TYPE (
-       EEditorSpellCheckDialog,
-       e_editor_spell_check_dialog,
-       E_TYPE_EDITOR_DIALOG
-);
-
-enum {
-       COMBO_COLUMN_DICTIONARY,        /* E_TYPE_SPELL_DICTIONARY */
-       COMBO_COLUMN_TEXT               /* G_TYPE_STRING */
-};
+#define E_EDITOR_SPELL_CHECK_DIALOG_GET_PRIVATE(obj) \
+       (G_TYPE_INSTANCE_GET_PRIVATE \
+       ((obj), E_TYPE_EDITOR_SPELL_CHECK_DIALOG, EEditorSpellCheckDialogPrivate))
 
 struct _EEditorSpellCheckDialogPrivate {
        GtkWidget *add_word_button;
@@ -60,19 +53,30 @@ struct _EEditorSpellCheckDialogPrivate {
        ESpellDictionary *current_dict;
 };
 
+enum {
+       COLUMN_NAME,
+       COLUMN_DICTIONARY,
+       NUM_COLUMNS
+};
+
+G_DEFINE_TYPE (
+       EEditorSpellCheckDialog,
+       e_editor_spell_check_dialog,
+       E_TYPE_EDITOR_DIALOG)
+
 static void
 editor_spell_check_dialog_set_word (EEditorSpellCheckDialog *dialog,
-                                   const gchar *word)
+                                    const gchar *word)
 {
        EEditor *editor;
        EEditorWidget *editor_widget;
+       GtkTreeView *tree_view;
        GtkListStore *store;
        gchar *markup;
-       GList *suggestions, *iter;
+       GList *list, *link;
 
-       if (word == NULL) {
+       if (word == NULL)
                return;
-       }
 
        if (dialog->priv->word != word) {
                g_free (dialog->priv->word);
@@ -84,22 +88,22 @@ editor_spell_check_dialog_set_word (EEditorSpellCheckDialog *dialog,
                GTK_LABEL (dialog->priv->suggestion_label), markup);
        g_free (markup);
 
-       store = GTK_LIST_STORE (
-                       gtk_tree_view_get_model (
-                               GTK_TREE_VIEW (dialog->priv->tree_view)));
+       tree_view = GTK_TREE_VIEW (dialog->priv->tree_view);
+       store = GTK_LIST_STORE (gtk_tree_view_get_model (tree_view));
        gtk_list_store_clear (store);
 
-       suggestions = e_spell_dictionary_get_suggestions (
-                       dialog->priv->current_dict, word, -1);
-       for (iter = suggestions; iter; iter = g_list_next (iter)) {
-               GtkTreeIter tree_iter;
-               gchar *suggestion = iter->data;
+       list = e_spell_dictionary_get_suggestions (
+               dialog->priv->current_dict, word, -1);
 
-               gtk_list_store_append (store, &tree_iter);
-               gtk_list_store_set (store, &tree_iter, 0, suggestion, -1);
+       for (link = list; link != NULL; link = g_list_next (link)) {
+               GtkTreeIter iter;
+               gchar *suggestion = link->data;
+
+               gtk_list_store_append (store, &iter);
+               gtk_list_store_set (store, &iter, 0, suggestion, -1);
        }
 
-       e_spell_dictionary_free_suggestions (suggestions);
+       e_spell_dictionary_free_suggestions (list);
 
        /* We give focus to WebKit so that the currently selected word
         * is highlited. Without focus selection is not visible (at
@@ -145,7 +149,6 @@ select_next_word (EEditorSpellCheckDialog *dialog)
                                dialog->priv->selection)));
 }
 
-
 static gboolean
 editor_spell_check_dialog_next (EEditorSpellCheckDialog *dialog)
 {
@@ -158,13 +161,13 @@ editor_spell_check_dialog_next (EEditorSpellCheckDialog *dialog)
        } else {
                /* Remember last selected word */
                start = webkit_dom_dom_selection_get_anchor_node (
-                                       dialog->priv->selection);
+                       dialog->priv->selection);
                end = webkit_dom_dom_selection_get_focus_node (
-                                       dialog->priv->selection);
+                       dialog->priv->selection);
                start_offset = webkit_dom_dom_selection_get_anchor_offset (
-                                       dialog->priv->selection);
+                       dialog->priv->selection);
                end_offset = webkit_dom_dom_selection_get_focus_offset (
-                                       dialog->priv->selection);
+                       dialog->priv->selection);
        }
 
        while (select_next_word (dialog)) {
@@ -173,7 +176,8 @@ editor_spell_check_dialog_next (EEditorSpellCheckDialog *dialog)
                gint loc, len;
                gchar *word;
 
-               range = webkit_dom_dom_selection_get_range_at (dialog->priv->selection, 0, NULL);
+               range = webkit_dom_dom_selection_get_range_at (
+                       dialog->priv->selection, 0, NULL);
                word = webkit_dom_range_get_text (range);
 
                checker = WEBKIT_SPELL_CHECKER (webkit_get_text_checker ());
@@ -199,18 +203,22 @@ editor_spell_check_dialog_next (EEditorSpellCheckDialog *dialog)
        }
 
        /* Close the dialog */
-       gtk_widget_hide (GTK_WIDGET (dialog));
+       gtk_widget_hide (GTK_WIDGET (dialog));
        return FALSE;
 }
 
 static gboolean
 select_previous_word (EEditorSpellCheckDialog *dialog)
 {
-       WebKitDOMNode *anchor;
-       gulong anchor_offset;
+       WebKitDOMNode *old_anchor_node;
+       WebKitDOMNode *new_anchor_node;
+       gulong old_anchor_offset;
+       gulong new_anchor_offset;
 
-       anchor = webkit_dom_dom_selection_get_anchor_node (dialog->priv->selection);
-       anchor_offset = webkit_dom_dom_selection_get_anchor_offset (dialog->priv->selection);
+       old_anchor_node = webkit_dom_dom_selection_get_anchor_node (
+               dialog->priv->selection);
+       old_anchor_offset = webkit_dom_dom_selection_get_anchor_offset (
+               dialog->priv->selection);
 
        /* Jump on the beginning of current word */
        webkit_dom_dom_selection_modify (
@@ -224,10 +232,14 @@ select_previous_word (EEditorSpellCheckDialog *dialog)
 
        /* If the selection start didn't change, then we have most probably
         * reached the beginnig of document. Return FALSE */
-       return ((anchor != webkit_dom_dom_selection_get_anchor_node (
-                               dialog->priv->selection)) ||
-               (anchor_offset != webkit_dom_dom_selection_get_anchor_offset (
-                               dialog->priv->selection)));
+
+       new_anchor_node = webkit_dom_dom_selection_get_anchor_node (
+               dialog->priv->selection);
+       new_anchor_offset = webkit_dom_dom_selection_get_anchor_offset (
+               dialog->priv->selection);
+
+       return (new_anchor_node != old_anchor_node) ||
+               (new_anchor_offset != old_anchor_offset);
 }
 
 static gboolean
@@ -238,19 +250,21 @@ editor_spell_check_dialog_prev (EEditorSpellCheckDialog *dialog)
 
        if (dialog->priv->word == NULL) {
                webkit_dom_dom_selection_modify (
-                       dialog->priv->selection, "move", "right", "documentboundary");
+                       dialog->priv->selection,
+                       "move", "right", "documentboundary");
                webkit_dom_dom_selection_modify (
-                       dialog->priv->selection, "extend", "backward", "word");
+                       dialog->priv->selection,
+                       "extend", "backward", "word");
        } else {
                /* Remember last selected word */
                start = webkit_dom_dom_selection_get_anchor_node (
-                                       dialog->priv->selection);
+                       dialog->priv->selection);
                end = webkit_dom_dom_selection_get_focus_node (
-                                       dialog->priv->selection);
+                       dialog->priv->selection);
                start_offset = webkit_dom_dom_selection_get_anchor_offset (
-                                       dialog->priv->selection);
+                       dialog->priv->selection);
                end_offset = webkit_dom_dom_selection_get_focus_offset (
-                                       dialog->priv->selection);
+                       dialog->priv->selection);
        }
 
        while (select_previous_word (dialog)) {
@@ -259,12 +273,13 @@ editor_spell_check_dialog_prev (EEditorSpellCheckDialog *dialog)
                gint loc, len;
                gchar *word;
 
-               range = webkit_dom_dom_selection_get_range_at (dialog->priv->selection, 0, NULL);
+               range = webkit_dom_dom_selection_get_range_at (
+                       dialog->priv->selection, 0, NULL);
                word = webkit_dom_range_get_text (range);
 
                checker = WEBKIT_SPELL_CHECKER (webkit_get_text_checker ());
                webkit_spell_checker_check_spelling_of_string (
-                               checker, word, &loc, &len);
+                       checker, word, &loc, &len);
 
                /* Found misspelled word! */
                if (loc != -1) {
@@ -305,7 +320,7 @@ editor_spell_check_dialog_replace (EEditorSpellCheckDialog *dialog)
        editor_selection = e_editor_widget_get_selection (widget);
 
        selection = gtk_tree_view_get_selection (
-                       GTK_TREE_VIEW (dialog->priv->tree_view));
+               GTK_TREE_VIEW (dialog->priv->tree_view));
        gtk_tree_selection_get_selected (selection, &model, &iter);
        gtk_tree_model_get (model, &iter, 0, &replacement, -1);
 
@@ -332,7 +347,7 @@ editor_spell_check_dialog_replace_all (EEditorSpellCheckDialog *dialog)
        editor_selection = e_editor_widget_get_selection (widget);
 
        selection = gtk_tree_view_get_selection (
-                       GTK_TREE_VIEW (dialog->priv->tree_view));
+               GTK_TREE_VIEW (dialog->priv->tree_view));
        gtk_tree_selection_get_selected (selection, &model, &iter);
        gtk_tree_model_get (model, &iter, 0, &replacement, -1);
 
@@ -345,7 +360,6 @@ editor_spell_check_dialog_replace_all (EEditorSpellCheckDialog *dialog)
 
                e_editor_selection_insert_html (
                        editor_selection, replacement);
-
        }
 
        g_free (replacement);
@@ -355,9 +369,8 @@ editor_spell_check_dialog_replace_all (EEditorSpellCheckDialog *dialog)
 static void
 editor_spell_check_dialog_ignore (EEditorSpellCheckDialog *dialog)
 {
-       if (dialog->priv->word == NULL) {
+       if (dialog->priv->word == NULL)
                return;
-       }
 
        e_spell_dictionary_ignore_word (
                dialog->priv->current_dict, dialog->priv->word, -1);
@@ -368,9 +381,8 @@ editor_spell_check_dialog_ignore (EEditorSpellCheckDialog *dialog)
 static void
 editor_spell_check_dialog_learn (EEditorSpellCheckDialog *dialog)
 {
-       if (dialog->priv->word == NULL) {
+       if (dialog->priv->word == NULL)
                return;
-       }
 
        e_spell_dictionary_learn_word (
                dialog->priv->current_dict, dialog->priv->word, -1);
@@ -381,14 +393,14 @@ editor_spell_check_dialog_learn (EEditorSpellCheckDialog *dialog)
 static void
 editor_spell_check_dialog_set_dictionary (EEditorSpellCheckDialog *dialog)
 {
+       GtkComboBox *combo_box;
        GtkTreeModel *model;
        GtkTreeIter iter;
        ESpellDictionary *dictionary;
 
-       gtk_combo_box_get_active_iter (
-                       GTK_COMBO_BOX (dialog->priv->dictionary_combo), &iter);
-       model = gtk_combo_box_get_model (
-                       GTK_COMBO_BOX (dialog->priv->dictionary_combo));
+       combo_box = GTK_COMBO_BOX (dialog->priv->dictionary_combo);
+       gtk_combo_box_get_active_iter (combo_box, &iter);
+       model = gtk_combo_box_get_model (combo_box);
 
        gtk_tree_model_get (model, &iter, 1, &dictionary, -1);
 
@@ -399,17 +411,13 @@ editor_spell_check_dialog_set_dictionary (EEditorSpellCheckDialog *dialog)
 }
 
 static void
-editor_spell_check_dialog_show (GtkWidget *gtk_widget)
+editor_spell_check_dialog_show (GtkWidget *widget)
 {
        EEditorSpellCheckDialog *dialog;
-       EEditor *editor;
-       EEditorWidget *widget;
        WebKitDOMDocument *document;
        WebKitDOMDOMWindow *window;
 
-       dialog = E_EDITOR_SPELL_CHECK_DIALOG (gtk_widget);
-       editor = e_editor_dialog_get_editor (E_EDITOR_DIALOG (dialog));
-       widget = e_editor_get_editor_widget (editor);
+       dialog = E_EDITOR_SPELL_CHECK_DIALOG (widget);
 
        g_free (dialog->priv->word);
        dialog->priv->word = NULL;
@@ -420,34 +428,38 @@ editor_spell_check_dialog_show (GtkWidget *gtk_widget)
 
        /* Select the first word or quit */
        if (editor_spell_check_dialog_next (dialog)) {
-               GTK_WIDGET_CLASS (e_editor_spell_check_dialog_parent_class)->show (gtk_widget);
+               GTK_WIDGET_CLASS (e_editor_spell_check_dialog_parent_class)->
+                       show (widget);
        }
 }
 
 static void
 editor_spell_check_dialog_finalize (GObject *object)
 {
-       EEditorSpellCheckDialog *dialog;
+       EEditorSpellCheckDialogPrivate *priv;
 
-       dialog = E_EDITOR_SPELL_CHECK_DIALOG (object);
+       priv = E_EDITOR_SPELL_CHECK_DIALOG_GET_PRIVATE (object);
 
-       g_free (dialog->priv->word);
-       dialog->priv->word = NULL;
+       g_free (priv->word);
+
+       /* Chain up to parent's finalize() method. */
+       G_OBJECT_CLASS (e_editor_spell_check_dialog_parent_class)->
+               finalize (object);
 }
 
 static void
-e_editor_spell_check_dialog_class_init (EEditorSpellCheckDialogClass *klass)
+e_editor_spell_check_dialog_class_init (EEditorSpellCheckDialogClass *class)
 {
        GtkWidgetClass *widget_class;
        GObjectClass *object_class;
 
-       e_editor_spell_check_dialog_parent_class = g_type_class_peek_parent (klass);
-       g_type_class_add_private (klass, sizeof (EEditorSpellCheckDialogPrivate));
+       g_type_class_add_private (
+               class, sizeof (EEditorSpellCheckDialogPrivate));
 
-       object_class = G_OBJECT_CLASS (klass);
+       object_class = G_OBJECT_CLASS (class);
        object_class->finalize = editor_spell_check_dialog_finalize;
 
-       widget_class = GTK_WIDGET_CLASS (klass);
+       widget_class = GTK_WIDGET_CLASS (class);
        widget_class->show = editor_spell_check_dialog_show;
 }
 
@@ -455,13 +467,12 @@ static void
 e_editor_spell_check_dialog_init (EEditorSpellCheckDialog *dialog)
 {
        GtkWidget *widget;
-       GtkGrid *main_layout;
+       GtkGrid *main_layout;
        GtkListStore *store;
        GtkTreeViewColumn *column;
        GtkCellRenderer *renderer;
 
-       dialog->priv = G_TYPE_INSTANCE_GET_PRIVATE (
-               dialog, E_TYPE_EDITOR_SPELL_CHECK_DIALOG, EEditorSpellCheckDialogPrivate);
+       dialog->priv = E_EDITOR_SPELL_CHECK_DIALOG_GET_PRIVATE (dialog);
 
        main_layout = e_editor_dialog_get_container (E_EDITOR_DIALOG (dialog));
 
@@ -481,7 +492,7 @@ e_editor_spell_check_dialog_init (EEditorSpellCheckDialog *dialog)
 
        /* Column */
        column = gtk_tree_view_column_new_with_attributes (
-                       "", gtk_cell_renderer_text_new (), "text", 0, NULL);
+               "", gtk_cell_renderer_text_new (), "text", 0, NULL);
        gtk_tree_view_append_column (GTK_TREE_VIEW (widget), column);
 
        /* Store */
@@ -605,12 +616,11 @@ e_editor_spell_check_dialog_init (EEditorSpellCheckDialog *dialog)
 GtkWidget *
 e_editor_spell_check_dialog_new (EEditor *editor)
 {
-       return GTK_WIDGET (
-               g_object_new (
-                       E_TYPE_EDITOR_SPELL_CHECK_DIALOG,
-                       "editor", editor,
-                       "title", N_("Spell Checking"),
-                       NULL));
+       return g_object_new (
+               E_TYPE_EDITOR_SPELL_CHECK_DIALOG,
+               "editor", editor,
+               "title", N_("Spell Checking"),
+               NULL);
 }
 
 GList *
@@ -623,7 +633,7 @@ e_editor_spell_check_dialog_get_dictionaries (EEditorSpellCheckDialog *dialog)
 
 void
 e_editor_spell_check_dialog_set_dictionaries (EEditorSpellCheckDialog *dialog,
-                                             GList *dictionaries)
+                                              GList *dictionaries)
 {
        GtkComboBox *combo_box;
        GtkListStore *store;
@@ -631,8 +641,6 @@ e_editor_spell_check_dialog_set_dictionaries (EEditorSpellCheckDialog *dialog,
 
        g_return_if_fail (E_IS_EDITOR_SPELL_CHECK_DIALOG (dialog));
 
-       combo_box = GTK_COMBO_BOX (dialog->priv->dictionary_combo);
-
        /* Free the old list of spell checkers. */
        g_list_free (dialog->priv->dictionaries);
 
@@ -643,22 +651,31 @@ e_editor_spell_check_dialog_set_dictionaries (EEditorSpellCheckDialog *dialog,
        dialog->priv->dictionaries = list;
 
        /* Populate a list store for the combo box. */
-       store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_POINTER);
+       store = gtk_list_store_new (
+               NUM_COLUMNS,
+               G_TYPE_STRING,                  /* COLUMN_NAME */
+               E_TYPE_SPELL_DICTIONARY);       /* COLUMN_DICTIONARY */
 
        while (list != NULL) {
                ESpellDictionary *dictionary = list->data;
                GtkTreeIter iter;
+               const gchar *name;
+
+               dictionary = E_SPELL_DICTIONARY (list->data);
+               name = e_spell_dictionary_get_name (dictionary);
 
                gtk_list_store_append (store, &iter);
                gtk_list_store_set (
                        store, &iter,
-                       0, e_spell_dictionary_get_name (dictionary),
-                       1, dictionary, -1);
+                       COLUMN_NAME, name,
+                       COLUMN_DICTIONARY, dictionary,
+                       -1);
 
                list = g_list_next (list);
        }
 
-       /* FIXME: Try to restore selection */
+       /* FIXME Try to restore selection. */
+       combo_box = GTK_COMBO_BOX (dialog->priv->dictionary_combo);
        gtk_combo_box_set_model (combo_box, GTK_TREE_MODEL (store));
        gtk_combo_box_set_active (combo_box, 0);
 
diff --git a/e-util/e-editor-spell-check-dialog.h b/e-util/e-editor-spell-check-dialog.h
index a8202e2..1df962e 100644
--- a/e-util/e-editor-spell-check-dialog.h
+++ b/e-util/e-editor-spell-check-dialog.h
@@ -54,7 +54,6 @@ typedef struct _EEditorSpellCheckDialogPrivate EEditorSpellCheckDialogPrivate;
 
 struct _EEditorSpellCheckDialog {
        EEditorDialog parent;
-
        EEditorSpellCheckDialogPrivate *priv;
 };
 
@@ -62,14 +61,14 @@ struct _EEditorSpellCheckDialogClass {
        EEditorDialogClass parent_class;
 };
 
-GType          e_editor_spell_check_dialog_get_type    (void);
-GtkWidget *    e_editor_spell_check_dialog_new         (EEditor *editor);
-
+GType          e_editor_spell_check_dialog_get_type
+                                               (void) G_GNUC_CONST;
+GtkWidget *    e_editor_spell_check_dialog_new (EEditor *editor);
 GList *                e_editor_spell_check_dialog_get_dictionaries
-                                                       (EEditorSpellCheckDialog *dialog);
+                                               (EEditorSpellCheckDialog *dialog);
 void           e_editor_spell_check_dialog_set_dictionaries
-                                                       (EEditorSpellCheckDialog *dialog,
-                                                        GList *dictionaries);
+                                               (EEditorSpellCheckDialog *dialog,
+                                                GList *dictionaries);
 
 G_END_DECLS
 
diff --git a/e-util/e-editor-table-dialog.c b/e-util/e-editor-table-dialog.c
index cce1edd..64ad2f5 100644
--- a/e-util/e-editor-table-dialog.c
+++ b/e-util/e-editor-table-dialog.c
@@ -31,10 +31,9 @@
 #include "e-image-chooser-dialog.h"
 #include "e-misc-utils.h"
 
-G_DEFINE_TYPE (
-       EEditorTableDialog,
-       e_editor_table_dialog,
-       E_TYPE_EDITOR_DIALOG);
+#define E_EDITOR_TABLE_DIALOG_GET_PRIVATE(obj) \
+       (G_TYPE_INSTANCE_GET_PRIVATE \
+       ((obj), E_TYPE_EDITOR_TABLE_DIALOG, EEditorTableDialogPrivate))
 
 struct _EEditorTableDialogPrivate {
        GtkWidget *rows_edit;
@@ -59,6 +58,11 @@ struct _EEditorTableDialogPrivate {
 
 static GdkRGBA white = { 1, 1, 1, 1 };
 
+G_DEFINE_TYPE (
+       EEditorTableDialog,
+       e_editor_table_dialog,
+       E_TYPE_EDITOR_DIALOG);
+
 static WebKitDOMElement *
 editor_table_dialog_create_table (EEditorTableDialog *dialog)
 {
@@ -290,7 +294,8 @@ editor_table_dialog_set_padding (EEditorTableDialog *dialog)
 
        g_return_if_fail (dialog->priv->table_element);
 
-       padding = g_strdup_printf ("%d",
+       padding = g_strdup_printf (
+               "%d",
                        gtk_spin_button_get_value_as_int (
                                GTK_SPIN_BUTTON (dialog->priv->padding_edit)));
 
@@ -329,7 +334,8 @@ editor_table_dialog_set_spacing (EEditorTableDialog *dialog)
 
        g_return_if_fail (dialog->priv->table_element);
 
-       spacing = g_strdup_printf ("%d",
+       spacing = g_strdup_printf (
+               "%d",
                        gtk_spin_button_get_value_as_int (
                                GTK_SPIN_BUTTON (dialog->priv->spacing_edit)));
 
@@ -368,7 +374,8 @@ editor_table_dialog_set_border (EEditorTableDialog *dialog)
 
        g_return_if_fail (dialog->priv->table_element);
 
-       border = g_strdup_printf ("%d",
+       border = g_strdup_printf (
+               "%d",
                        gtk_spin_button_get_value_as_int (
                                GTK_SPIN_BUTTON (dialog->priv->border_edit)));
 
@@ -467,7 +474,7 @@ editor_table_dialog_get_background_image (EEditorTableDialog *dialog)
        if (!webkit_dom_element_has_attribute (
                WEBKIT_DOM_ELEMENT (dialog->priv->table_element), "background")) {
 
-               gtk_file_chooser_unselect_all(
+               gtk_file_chooser_unselect_all (
                        GTK_FILE_CHOOSER (dialog->priv->background_image_button));
                return;
        } else {
@@ -538,7 +545,6 @@ editor_table_dialog_reset_values (EEditorTableDialog *dialog)
        editor_table_dialog_set_background_image (dialog);
 }
 
-
 static void
 editor_table_dialog_show (GtkWidget *widget)
 {
@@ -582,20 +588,23 @@ editor_table_dialog_show (GtkWidget *widget)
 static void
 editor_table_dialog_hide (GtkWidget *widget)
 {
-       E_EDITOR_TABLE_DIALOG (widget)->priv->table_element = NULL;
+       EEditorTableDialogPrivate *priv;
+
+       priv = E_EDITOR_TABLE_DIALOG_GET_PRIVATE (widget);
+
+       priv->table_element = NULL;
 
        GTK_WIDGET_CLASS (e_editor_table_dialog_parent_class)->hide (widget);
 }
 
 static void
-e_editor_table_dialog_class_init (EEditorTableDialogClass *klass)
+e_editor_table_dialog_class_init (EEditorTableDialogClass *class)
 {
        GtkWidgetClass *widget_class;
 
-       g_type_class_peek_parent (klass);
-       g_type_class_add_private (klass, sizeof (EEditorTableDialogPrivate));
+       g_type_class_add_private (class, sizeof (EEditorTableDialogPrivate));
 
-       widget_class = GTK_WIDGET_CLASS (klass);
+       widget_class = GTK_WIDGET_CLASS (class);
        widget_class->show = editor_table_dialog_show;
        widget_class->hide = editor_table_dialog_hide;
 }
@@ -607,8 +616,7 @@ e_editor_table_dialog_init (EEditorTableDialog *dialog)
        GtkWidget *widget;
        GtkFileFilter *file_filter;
 
-       dialog->priv = G_TYPE_INSTANCE_GET_PRIVATE (
-               dialog, E_TYPE_EDITOR_TABLE_DIALOG, EEditorTableDialogPrivate);
+       dialog->priv = E_EDITOR_TABLE_DIALOG_GET_PRIVATE (dialog);
 
        main_layout = e_editor_dialog_get_container (E_EDITOR_DIALOG (dialog));
 
@@ -658,7 +666,6 @@ e_editor_table_dialog_init (EEditorTableDialog *dialog)
        gtk_label_set_mnemonic_widget (GTK_LABEL (widget), dialog->priv->columns_edit);
        gtk_grid_attach (grid, widget, 4, 0, 1, 1);
 
-
        /* == Layout == */
        widget = gtk_label_new ("");
        gtk_label_set_markup (GTK_LABEL (widget), _("<b>Layout</b>"));
@@ -811,7 +818,6 @@ e_editor_table_dialog_init (EEditorTableDialog *dialog)
                G_CALLBACK (editor_table_dialog_set_background_image), dialog);
        dialog->priv->background_image_button = widget;
 
-
        widget =gtk_label_new_with_mnemonic (_("Image:"));
        gtk_label_set_justify (GTK_LABEL (widget), GTK_JUSTIFY_RIGHT);
        gtk_label_set_mnemonic_widget (
diff --git a/e-util/e-editor-table-dialog.h b/e-util/e-editor-table-dialog.h
index e3262f6..834b3c4 100644
--- a/e-util/e-editor-table-dialog.h
+++ b/e-util/e-editor-table-dialog.h
@@ -54,7 +54,6 @@ typedef struct _EEditorTableDialogPrivate EEditorTableDialogPrivate;
 
 struct _EEditorTableDialog {
        EEditorDialog parent;
-
        EEditorTableDialogPrivate *priv;
 };
 
@@ -62,9 +61,8 @@ struct _EEditorTableDialogClass {
        EEditorDialogClass parent_class;
 };
 
-GType          e_editor_table_dialog_get_type  (void);
-
-GtkWidget*     e_editor_table_dialog_new       (EEditor *editor);
+GType          e_editor_table_dialog_get_type  (void) G_GNUC_CONST;
+GtkWidget *    e_editor_table_dialog_new       (EEditor *editor);
 
 G_END_DECLS
 
diff --git a/e-util/e-editor-text-dialog.c b/e-util/e-editor-text-dialog.c
index 9668200..78cc052 100644
--- a/e-util/e-editor-text-dialog.c
+++ b/e-util/e-editor-text-dialog.c
@@ -28,10 +28,9 @@
 
 #include "e-color-combo.h"
 
-G_DEFINE_TYPE (
-       EEditorTextDialog,
-       e_editor_text_dialog,
-       E_TYPE_EDITOR_DIALOG);
+#define E_EDITOR_TEXT_DIALOG_GET_PRIVATE(obj) \
+       (G_TYPE_INSTANCE_GET_PRIVATE \
+       ((obj), E_TYPE_EDITOR_TEXT_DIALOG, EEditorTextDialogPrivate))
 
 struct _EEditorTextDialogPrivate {
        GtkWidget *bold_check;
@@ -43,6 +42,10 @@ struct _EEditorTextDialogPrivate {
        GtkWidget *size_check;
 };
 
+G_DEFINE_TYPE (
+       EEditorTextDialog,
+       e_editor_text_dialog,
+       E_TYPE_EDITOR_DIALOG);
 
 static void
 editor_text_dialog_set_bold (EEditorTextDialog *dialog)
@@ -146,18 +149,18 @@ editor_text_dialog_set_size (EEditorTextDialog *dialog)
 }
 
 static void
-editor_text_dialog_show (GtkWidget *gtk_widget)
+editor_text_dialog_show (GtkWidget *widget)
 {
        EEditorTextDialog *dialog;
        EEditor *editor;
-       EEditorWidget *widget;
+       EEditorWidget *editor_widget;
        EEditorSelection *selection;
        GdkRGBA rgba;
 
-       dialog = E_EDITOR_TEXT_DIALOG (gtk_widget);
+       dialog = E_EDITOR_TEXT_DIALOG (widget);
        editor = e_editor_dialog_get_editor (E_EDITOR_DIALOG (dialog));
-       widget = e_editor_get_editor_widget (editor);
-       selection = e_editor_widget_get_selection (widget);
+       editor_widget = e_editor_get_editor_widget (editor);
+       selection = e_editor_widget_get_selection (editor_widget);
 
        gtk_toggle_button_set_active (
                GTK_TOGGLE_BUTTON (dialog->priv->bold_check),
@@ -180,18 +183,17 @@ editor_text_dialog_show (GtkWidget *gtk_widget)
        e_color_combo_set_current_color (
                E_COLOR_COMBO (dialog->priv->color_check), &rgba);
 
-       GTK_WIDGET_CLASS (e_editor_text_dialog_parent_class)->show (gtk_widget);
+       GTK_WIDGET_CLASS (e_editor_text_dialog_parent_class)->show (widget);
 }
 
 static void
-e_editor_text_dialog_class_init (EEditorTextDialogClass *klass)
+e_editor_text_dialog_class_init (EEditorTextDialogClass *class)
 {
        GtkWidgetClass *widget_class;
 
-       e_editor_text_dialog_parent_class = g_type_class_peek_parent (klass);
-       g_type_class_add_private (klass, sizeof (EEditorTextDialogPrivate));
+       g_type_class_add_private (class, sizeof (EEditorTextDialogPrivate));
 
-       widget_class = GTK_WIDGET_CLASS (klass);
+       widget_class = GTK_WIDGET_CLASS (class);
        widget_class->show = editor_text_dialog_show;
 }
 
@@ -201,8 +203,7 @@ e_editor_text_dialog_init (EEditorTextDialog *dialog)
        GtkGrid *main_layout;
        GtkWidget *widget;
 
-       dialog->priv = G_TYPE_INSTANCE_GET_PRIVATE (
-               dialog, E_TYPE_EDITOR_TEXT_DIALOG, EEditorTextDialogPrivate);
+       dialog->priv = E_EDITOR_TEXT_DIALOG_GET_PRIVATE (dialog);
 
        main_layout = e_editor_dialog_get_container (E_EDITOR_DIALOG (dialog));
 
@@ -285,7 +286,6 @@ e_editor_text_dialog_init (EEditorTextDialog *dialog)
        gtk_widget_show_all (GTK_WIDGET (main_layout));
 }
 
-
 GtkWidget *
 e_editor_text_dialog_new (EEditor *editor)
 {
diff --git a/e-util/e-editor-text-dialog.h b/e-util/e-editor-text-dialog.h
index 2eea996..2acaf30 100644
--- a/e-util/e-editor-text-dialog.h
+++ b/e-util/e-editor-text-dialog.h
@@ -54,7 +54,6 @@ typedef struct _EEditorTextDialogPrivate EEditorTextDialogPrivate;
 
 struct _EEditorTextDialog {
        EEditorDialog parent;
-
        EEditorTextDialogPrivate *priv;
 };
 
@@ -62,9 +61,8 @@ struct _EEditorTextDialogClass {
        EEditorDialogClass parent_class;
 };
 
-GType          e_editor_text_dialog_get_type   (void);
-
-GtkWidget*     e_editor_text_dialog_new        (EEditor *editor);
+GType          e_editor_text_dialog_get_type   (void) G_GNUC_CONST;
+GtkWidget *    e_editor_text_dialog_new        (EEditor *editor);
 
 G_END_DECLS
 
diff --git a/e-util/e-editor-utils.c b/e-util/e-editor-utils.c
index ee872b5..d4f6308 100644
--- a/e-util/e-editor-utils.c
+++ b/e-util/e-editor-utils.c
@@ -39,7 +39,7 @@
  */
 WebKitDOMElement *
 e_editor_dom_node_find_parent_element (WebKitDOMNode *node,
-                                      const gchar *tagname)
+                                       const gchar *tagname)
 {
        gint taglen = strlen (tagname);
 
@@ -81,7 +81,7 @@ e_editor_dom_node_find_parent_element (WebKitDOMNode *node,
  */
 WebKitDOMElement *
 e_editor_dom_node_find_child_element (WebKitDOMNode *node,
-                                     const gchar *tagname)
+                                      const gchar *tagname)
 {
        WebKitDOMNode *start_node = node;
        gint taglen = strlen (tagname);
diff --git a/e-util/e-editor-utils.h b/e-util/e-editor-utils.h
index fb4d313..b41a9ab 100644
--- a/e-util/e-editor-utils.h
+++ b/e-util/e-editor-utils.h
@@ -27,12 +27,18 @@
 
 #include <webkit/webkitdom.h>
 
-WebKitDOMElement *     e_editor_dom_node_find_parent_element
-                                                       (WebKitDOMNode *node,
-                                                        const gchar *tagname);
+G_BEGIN_DECLS
 
-WebKitDOMElement *     e_editor_dom_node_find_child_element
-                                                       (WebKitDOMNode *node,
-                                                        const gchar *tagname);
+WebKitDOMElement *
+               e_editor_dom_node_find_parent_element
+                                               (WebKitDOMNode *node,
+                                                const gchar *tagname);
+
+WebKitDOMElement *
+               e_editor_dom_node_find_child_element
+                                               (WebKitDOMNode *node,
+                                                const gchar *tagname);
+
+G_END_DECLS
 
 #endif /* E_EDITOR_UTILS_H */
diff --git a/e-util/e-editor-widget.c b/e-util/e-editor-widget.c
index 1e12629..3e4085d 100644
--- a/e-util/e-editor-widget.c
+++ b/e-util/e-editor-widget.c
@@ -31,10 +31,9 @@
 #include <glib/gi18n-lib.h>
 #include <gdk/gdkkeysyms.h>
 
-G_DEFINE_TYPE (
-       EEditorWidget,
-       e_editor_widget,
-       WEBKIT_TYPE_WEB_VIEW);
+#define E_EDITOR_WIDGET_GET_PRIVATE(obj) \
+       (G_TYPE_INSTANCE_GET_PRIVATE \
+       ((obj), E_TYPE_EDITOR_WIDGET, EEditorWidgetPrivate))
 
 /**
  * EEditorWidget:
@@ -69,20 +68,19 @@ struct _EEditorWidgetPrivate {
        GQueue *postreload_operations;
 };
 
-
 enum {
        PROP_0,
+       PROP_CAN_COPY,
+       PROP_CAN_CUT,
+       PROP_CAN_PASTE,
+       PROP_CAN_REDO,
+       PROP_CAN_UNDO,
        PROP_CHANGED,
        PROP_HTML_MODE,
        PROP_INLINE_SPELLING,
        PROP_MAGIC_LINKS,
        PROP_MAGIC_SMILEYS,
-       PROP_SPELL_LANGUAGES,
-       PROP_CAN_COPY,
-       PROP_CAN_CUT,
-       PROP_CAN_PASTE,
-       PROP_CAN_REDO,
-       PROP_CAN_UNDO
+       PROP_SPELL_LANGUAGES
 };
 
 enum {
@@ -91,7 +89,7 @@ enum {
 };
 
 typedef void (*PostReloadOperationFunc)        (EEditorWidget *widget,
-                                        gpointer data);
+                                        gpointer data);
 
 typedef struct  {
        PostReloadOperationFunc func;
@@ -101,11 +99,16 @@ typedef struct  {
 
 static guint signals[LAST_SIGNAL] = { 0 };
 
+G_DEFINE_TYPE (
+       EEditorWidget,
+       e_editor_widget,
+       WEBKIT_TYPE_WEB_VIEW);
+
 static void
 editor_widget_queue_postreload_operation (EEditorWidget *widget,
-                                         PostReloadOperationFunc func,
-                                         gpointer data,
-                                         GDestroyNotify data_free_func)
+                                          PostReloadOperationFunc func,
+                                          gpointer data,
+                                          GDestroyNotify data_free_func)
 {
        PostReloadOperation *op;
 
@@ -142,20 +145,23 @@ editor_widget_get_dom_range (EEditorWidget *widget)
 
 static void
 editor_widget_user_changed_contents_cb (EEditorWidget *widget,
-                                       gpointer user_data)
+                                        gpointer user_data)
 {
+       WebKitWebView *web_view;
        gboolean can_redo, can_undo;
 
+       web_view = WEBKIT_WEB_VIEW (widget);
+
        e_editor_widget_set_changed (widget, TRUE);
 
-       can_redo = webkit_web_view_can_redo (WEBKIT_WEB_VIEW (widget));
-       if ((widget->priv->can_redo ? TRUE : FALSE) != (can_redo ? TRUE : FALSE)) {
+       can_redo = webkit_web_view_can_redo (web_view);
+       if (widget->priv->can_redo != can_redo) {
                widget->priv->can_redo = can_redo;
                g_object_notify (G_OBJECT (widget), "can-redo");
        }
 
-       can_undo = webkit_web_view_can_undo (WEBKIT_WEB_VIEW (widget));
-       if ((widget->priv->can_undo ? TRUE : FALSE) != (can_undo ? TRUE : FALSE)) {
+       can_undo = webkit_web_view_can_undo (web_view);
+       if (widget->priv->can_undo != can_undo) {
                widget->priv->can_undo = can_undo;
                g_object_notify (G_OBJECT (widget), "can-undo");
        }
@@ -163,32 +169,36 @@ editor_widget_user_changed_contents_cb (EEditorWidget *widget,
 
 static void
 editor_widget_selection_changed_cb (EEditorWidget *widget,
-                                   gpointer user_data)
+                                    gpointer user_data)
 {
+       WebKitWebView *web_view;
        gboolean can_copy, can_cut, can_paste;
 
-       /* When the webview is being (re)loaded, the document is in inconsitant
-        * state and there is no selection, so don't propagate the signal further
-        * to EEditorSelection and others and wait until the load is finished */
+       web_view = WEBKIT_WEB_VIEW (widget);
+
+       /* When the webview is being (re)loaded, the document is in an
+        * inconsistant state and there is no selection, so don't propagate
+        * the signal further to EEditorSelection and others and wait until
+        * the load is finished. */
        if (widget->priv->reload_in_progress) {
                g_signal_stop_emission_by_name (widget, "selection-changed");
                return;
        }
 
-       can_copy = webkit_web_view_can_copy_clipboard (WEBKIT_WEB_VIEW (widget));
-       if ((widget->priv->can_copy ? TRUE : FALSE) != (can_copy ? TRUE : FALSE)) {
+       can_copy = webkit_web_view_can_copy_clipboard (web_view);
+       if (widget->priv->can_copy != can_copy) {
                widget->priv->can_copy = can_copy;
                g_object_notify (G_OBJECT (widget), "can-copy");
        }
 
-       can_cut = webkit_web_view_can_cut_clipboard (WEBKIT_WEB_VIEW (widget));
-       if ((widget->priv->can_cut ? TRUE : FALSE) != (can_cut ? TRUE : FALSE)) {
+       can_cut = webkit_web_view_can_cut_clipboard (web_view);
+       if (widget->priv->can_cut != can_cut) {
                widget->priv->can_cut = can_cut;
                g_object_notify (G_OBJECT (widget), "can-cut");
        }
 
-       can_paste = webkit_web_view_can_paste_clipboard (WEBKIT_WEB_VIEW (widget));
-       if ((widget->priv->can_paste ? TRUE : FALSE) != (can_paste ? TRUE : FALSE)) {
+       can_paste = webkit_web_view_can_paste_clipboard (web_view);
+       if (widget->priv->can_paste != can_paste) {
                widget->priv->can_paste = can_paste;
                g_object_notify (G_OBJECT (widget), "can-paste");
        }
@@ -196,7 +206,7 @@ editor_widget_selection_changed_cb (EEditorWidget *widget,
 
 static gboolean
 editor_widget_should_show_delete_interface_for_element (EEditorWidget *widget,
-                                                       WebKitDOMHTMLElement *element)
+                                                        WebKitDOMHTMLElement *element)
 {
        return FALSE;
 }
@@ -250,8 +260,8 @@ editor_widget_load_status_changed (EEditorWidget *widget)
 
 static WebKitWebView *
 editor_widget_open_inspector (WebKitWebInspector *inspector,
-                             WebKitWebView *webview,
-                             gpointer user_data)
+                              WebKitWebView *webview,
+                              gpointer user_data)
 {
        GtkWidget *window;
        GtkWidget *inspector_view;
@@ -267,28 +277,6 @@ editor_widget_open_inspector (WebKitWebInspector *inspector,
        return WEBKIT_WEB_VIEW (inspector_view);
 }
 
-static gboolean
-editor_widget_button_press_event (GtkWidget *gtk_widget,
-                                 GdkEventButton *event)
-{
-       gboolean event_handled;
-
-       if (event->button != 3) {
-               event_handled = FALSE;
-       } else {
-               g_signal_emit (
-                       gtk_widget, signals[POPUP_EVENT],
-                       0, event, &event_handled);
-       }
-
-       if (event_handled) {
-               return TRUE;
-       }
-
-       /* Chain up to parent implementation */
-       return GTK_WIDGET_CLASS (e_editor_widget_parent_class)->button_press_event (gtk_widget, event);
-}
-
 /* Based on original use_pictograms() from GtkHTML */
 static const gchar *emoticons_chars =
        /*  0 */ "DO)(|/PQ*!"
@@ -334,7 +322,7 @@ static const gchar *emoticons_icon_names[] = {
 
 static void
 editor_widget_check_magic_smileys (EEditorWidget *widget,
-                                  WebKitDOMRange *range)
+                                   WebKitDOMRange *range)
 {
        gint pos;
        gint state;
@@ -436,7 +424,7 @@ editor_widget_check_magic_smileys (EEditorWidget *widget,
 
 static void
 editor_widget_set_links_active (EEditorWidget *widget,
-                               gboolean active)
+                                gboolean active)
 {
        WebKitDOMDocument *document;
        WebKitDOMElement *style;
@@ -467,110 +455,16 @@ editor_widget_set_links_active (EEditorWidget *widget,
        }
 }
 
-static gboolean
-editor_widget_key_press_event (GtkWidget *gtk_widget,
-                              GdkEventKey *event)
-{
-       EEditorWidget *editor = E_EDITOR_WIDGET (gtk_widget);
-
-       if ((event->keyval == GDK_KEY_Control_L) ||
-           (event->keyval == GDK_KEY_Control_R)) {
-
-               editor_widget_set_links_active (editor, TRUE);
-       }
-
-       if ((event->keyval == GDK_KEY_Return) ||
-           (event->keyval == GDK_KEY_KP_Enter)) {
-
-               /* When user presses ENTER in a citation block, WebKit does not
-                * break the citation automatically, so we need to use the special
-                * command to do it. */
-               EEditorSelection *selection = e_editor_widget_get_selection (E_EDITOR_WIDGET (gtk_widget));
-               if (e_editor_selection_is_citation (selection)) {
-                       return e_editor_widget_exec_command (
-                               editor, E_EDITOR_WIDGET_COMMAND_INSERT_NEW_LINE_IN_QUOTED_CONTENT, NULL);
-               }
-       }
-
-       /* Propagate the event to WebKit */
-       return GTK_WIDGET_CLASS (e_editor_widget_parent_class)->key_press_event (gtk_widget, event);
-}
-
-static gboolean
-editor_widget_key_release_event (GtkWidget *gtk_widget,
-                                GdkEventKey *event)
-{
-       WebKitDOMRange *range;
-       EEditorWidget *widget = E_EDITOR_WIDGET (gtk_widget);
-
-       range = editor_widget_get_dom_range (widget);
-
-       if (widget->priv->magic_smileys &&
-           widget->priv->html_mode) {
-               editor_widget_check_magic_smileys (widget, range);
-       }
-
-       if ((event->keyval == GDK_KEY_Control_L) ||
-           (event->keyval == GDK_KEY_Control_R)) {
-
-               editor_widget_set_links_active (widget, FALSE);
-       }
-
-       /* Propagate the event to WebKit */
-       return GTK_WIDGET_CLASS (e_editor_widget_parent_class)->key_release_event (gtk_widget, event);
-}
-
-static gboolean
-editor_widget_button_release_event (GtkWidget *gtk_widget,
-                                   GdkEventButton *event)
-{
-       WebKitWebView *webview;
-       WebKitHitTestResult *hit_test;
-       WebKitHitTestResultContext context;
-       gchar *uri;
-
-       webview = WEBKIT_WEB_VIEW (gtk_widget);
-       hit_test = webkit_web_view_get_hit_test_result (webview, event);
-
-       g_object_get (
-               hit_test,
-               "context", &context,
-               "link-uri", &uri,
-               NULL);
-
-       g_object_unref (hit_test);
-
-       /* Left click on a link */
-       if ((context & WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK) &&
-           (event->button == 1)) {
-
-               /* Ctrl + Left Click on link opens it, otherwise ignore the
-                * click completely */
-               if (event->state & GDK_CONTROL_MASK) {
-
-                       gtk_show_uri (
-                               gtk_window_get_screen (
-                                       GTK_WINDOW (gtk_widget_get_toplevel (gtk_widget))),
-                                       uri, event->time, NULL);
-               }
-
-               return TRUE;
-       }
-
-       /* Propagate the event to WebKit */
-       return GTK_WIDGET_CLASS (e_editor_widget_parent_class)->button_release_event (gtk_widget, event);
-}
-
 static void
 clipboard_text_received (GtkClipboard *clipboard,
-                        const gchar *text,
-                        EEditorWidget *widget)
+                         const gchar *text,
+                         EEditorWidget *widget)
 {
        gchar *html, *escaped_text;
        WebKitDOMDocument *document;
        WebKitDOMElement *element;
 
-       /* This is a little trick to escape any HTML characters (like <, > or &).
+       /* This is a trick to escape any HTML characters (like <, > or &).
         * <textarea> automatically replaces all these unsafe characters
         * by &lt;, &gt; etc. */
        document = webkit_web_view_get_dom_document (WEBKIT_WEB_VIEW (widget));
@@ -591,121 +485,111 @@ clipboard_text_received (GtkClipboard *clipboard,
 }
 
 static void
-editor_widget_paste_clipboard_quoted (EEditorWidget *widget)
-{
-       GtkClipboard *clipboard;
-
-       clipboard = gtk_clipboard_get_for_display (
-                       gdk_display_get_default (),
-                       GDK_SELECTION_CLIPBOARD);
-
-       gtk_clipboard_request_text (
-               clipboard,
-               (GtkClipboardTextReceivedFunc) clipboard_text_received,
-               widget);
-}
-
-static void
-e_editor_widget_get_property (GObject *object,
-                             guint property_id,
-                             GValue *value,
-                             GParamSpec *pspec)
+editor_widget_set_property (GObject *object,
+                            guint property_id,
+                            const GValue *value,
+                            GParamSpec *pspec)
 {
        switch (property_id) {
+               case PROP_CHANGED:
+                       e_editor_widget_set_changed (
+                               E_EDITOR_WIDGET (object),
+                               g_value_get_boolean (value));
+                       return;
 
                case PROP_HTML_MODE:
-                       g_value_set_boolean (
-                               value, e_editor_widget_get_html_mode (
-                               E_EDITOR_WIDGET (object)));
+                       e_editor_widget_set_html_mode (
+                               E_EDITOR_WIDGET (object),
+                               g_value_get_boolean (value));
                        return;
 
                case PROP_INLINE_SPELLING:
-                       g_value_set_boolean (
-                               value, e_editor_widget_get_inline_spelling (
-                               E_EDITOR_WIDGET (object)));
+                       e_editor_widget_set_inline_spelling (
+                               E_EDITOR_WIDGET (object),
+                               g_value_get_boolean (value));
                        return;
 
                case PROP_MAGIC_LINKS:
-                       g_value_set_boolean (
-                               value, e_editor_widget_get_magic_links (
-                               E_EDITOR_WIDGET (object)));
+                       e_editor_widget_set_magic_links (
+                               E_EDITOR_WIDGET (object),
+                               g_value_get_boolean (value));
                        return;
 
                case PROP_MAGIC_SMILEYS:
-                       g_value_set_boolean (
-                               value, e_editor_widget_get_magic_smileys (
-                               E_EDITOR_WIDGET (object)));
-                       return;
-               case PROP_CHANGED:
-                       g_value_set_boolean (
-                               value, e_editor_widget_get_changed (
-                               E_EDITOR_WIDGET (object)));
+                       e_editor_widget_set_magic_smileys (
+                               E_EDITOR_WIDGET (object),
+                               g_value_get_boolean (value));
                        return;
+       }
+
+       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+}
+
+static void
+editor_widget_get_property (GObject *object,
+                            guint property_id,
+                            GValue *value,
+                            GParamSpec *pspec)
+{
+       switch (property_id) {
                case PROP_CAN_COPY:
                        g_value_set_boolean (
                                value, webkit_web_view_can_copy_clipboard (
                                WEBKIT_WEB_VIEW (object)));
                        return;
+
                case PROP_CAN_CUT:
                        g_value_set_boolean (
                                value, webkit_web_view_can_cut_clipboard (
                                WEBKIT_WEB_VIEW (object)));
                        return;
+
                case PROP_CAN_PASTE:
                        g_value_set_boolean (
                                value, webkit_web_view_can_paste_clipboard (
                                WEBKIT_WEB_VIEW (object)));
                        return;
+
                case PROP_CAN_REDO:
                        g_value_set_boolean (
                                value, webkit_web_view_can_redo (
                                WEBKIT_WEB_VIEW (object)));
                        return;
+
                case PROP_CAN_UNDO:
                        g_value_set_boolean (
                                value, webkit_web_view_can_undo (
                                WEBKIT_WEB_VIEW (object)));
                        return;
-       }
-
-       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-}
 
-static void
-e_editor_widget_set_property (GObject *object,
-                             guint property_id,
-                             const GValue *value,
-                             GParamSpec *pspec)
-{
-       switch (property_id) {
+               case PROP_CHANGED:
+                       g_value_set_boolean (
+                               value, e_editor_widget_get_changed (
+                               E_EDITOR_WIDGET (object)));
+                       return;
 
                case PROP_HTML_MODE:
-                       e_editor_widget_set_html_mode (
-                               E_EDITOR_WIDGET (object),
-                               g_value_get_boolean (value));
+                       g_value_set_boolean (
+                               value, e_editor_widget_get_html_mode (
+                               E_EDITOR_WIDGET (object)));
                        return;
 
                case PROP_INLINE_SPELLING:
-                       e_editor_widget_set_inline_spelling (
-                               E_EDITOR_WIDGET (object),
-                               g_value_get_boolean (value));
+                       g_value_set_boolean (
+                               value, e_editor_widget_get_inline_spelling (
+                               E_EDITOR_WIDGET (object)));
                        return;
 
                case PROP_MAGIC_LINKS:
-                       e_editor_widget_set_magic_links (
-                               E_EDITOR_WIDGET (object),
-                               g_value_get_boolean (value));
+                       g_value_set_boolean (
+                               value, e_editor_widget_get_magic_links (
+                               E_EDITOR_WIDGET (object)));
                        return;
 
                case PROP_MAGIC_SMILEYS:
-                       e_editor_widget_set_magic_smileys (
-                               E_EDITOR_WIDGET (object),
-                               g_value_get_boolean (value));
-                       return;
-               case PROP_CHANGED:
-                       e_editor_widget_set_changed (
-                               E_EDITOR_WIDGET (object),
-                               g_value_get_boolean (value));
+                       g_value_set_boolean (
+                               value, e_editor_widget_get_magic_smileys (
+                               E_EDITOR_WIDGET (object)));
                        return;
        }
 
@@ -713,117 +597,178 @@ e_editor_widget_set_property (GObject *object,
 }
 
 static void
-e_editor_widget_finalize (GObject *object)
+editor_widget_dispose (GObject *object)
 {
-       EEditorWidgetPrivate *priv = E_EDITOR_WIDGET (object)->priv;
+       EEditorWidgetPrivate *priv;
+
+       priv = E_EDITOR_WIDGET_GET_PRIVATE (object);
 
        g_clear_object (&priv->selection);
 
-       /* Chain up to parent's implementation */
-       G_OBJECT_CLASS (e_editor_widget_parent_class)->finalize (object);
+       /* Chain up to parent's dispose() method. */
+       G_OBJECT_CLASS (e_editor_widget_parent_class)->dispose (object);
+}
+
+static gboolean
+editor_widget_button_press_event (GtkWidget *widget,
+                                  GdkEventButton *event)
+{
+       gboolean event_handled;
+
+       if (event->button != 3) {
+               event_handled = FALSE;
+       } else {
+               g_signal_emit (
+                       widget, signals[POPUP_EVENT],
+                       0, event, &event_handled);
+       }
+
+       if (event_handled)
+               return TRUE;
+
+       /* Chain up to parent's button_press_event() method. */
+       return GTK_WIDGET_CLASS (e_editor_widget_parent_class)->
+               button_press_event (widget, event);
+}
+
+static gboolean
+editor_widget_button_release_event (GtkWidget *widget,
+                                    GdkEventButton *event)
+{
+       WebKitWebView *webview;
+       WebKitHitTestResult *hit_test;
+       WebKitHitTestResultContext context;
+       gchar *uri;
+
+       webview = WEBKIT_WEB_VIEW (widget);
+       hit_test = webkit_web_view_get_hit_test_result (webview, event);
+
+       g_object_get (
+               hit_test,
+               "context", &context,
+               "link-uri", &uri,
+               NULL);
+
+       g_object_unref (hit_test);
+
+       /* Left click on a link */
+       if ((context & WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK) &&
+           (event->button == 1)) {
+
+               /* Ctrl + Left Click on link opens it, otherwise ignore the
+                * click completely */
+               if (event->state & GDK_CONTROL_MASK) {
+                       GtkWidget *toplevel;
+                       GdkScreen *screen;
+
+                       toplevel = gtk_widget_get_toplevel (widget);
+                       screen = gtk_window_get_screen (GTK_WINDOW (toplevel));
+                       gtk_show_uri (screen, uri, event->time, NULL);
+               }
+
+               return TRUE;
+       }
+
+       /* Chain up to parent's button_release_event() method. */
+       return GTK_WIDGET_CLASS (e_editor_widget_parent_class)->
+               button_release_event (widget, event);
+}
+
+static gboolean
+editor_widget_key_press_event (GtkWidget *widget,
+                               GdkEventKey *event)
+{
+       EEditorWidget *editor = E_EDITOR_WIDGET (widget);
+
+       if ((event->keyval == GDK_KEY_Control_L) ||
+           (event->keyval == GDK_KEY_Control_R)) {
+
+               editor_widget_set_links_active (editor, TRUE);
+       }
+
+       if ((event->keyval == GDK_KEY_Return) ||
+           (event->keyval == GDK_KEY_KP_Enter)) {
+
+               /* When user presses ENTER in a citation block, WebKit does
+                * not break the citation automatically, so we need to use
+                * the special command to do it. */
+               EEditorSelection *selection;
+
+               selection = e_editor_widget_get_selection (editor);
+               if (e_editor_selection_is_citation (selection)) {
+                       return e_editor_widget_exec_command (
+                               editor,
+                               E_EDITOR_WIDGET_COMMAND_INSERT_NEW_LINE_IN_QUOTED_CONTENT,
+                               NULL);
+               }
+       }
+
+       /* Chain up to parent's key_press_event() method. */
+       return GTK_WIDGET_CLASS (e_editor_widget_parent_class)->
+               key_press_event (widget, event);
+}
+
+static gboolean
+editor_widget_key_release_event (GtkWidget *widget,
+                                 GdkEventKey *event)
+{
+       WebKitDOMRange *range;
+       EEditorWidget *editor_widget;
+
+       editor_widget = E_EDITOR_WIDGET (widget);
+       range = editor_widget_get_dom_range (editor_widget);
+
+       if (editor_widget->priv->magic_smileys &&
+           editor_widget->priv->html_mode) {
+               editor_widget_check_magic_smileys (editor_widget, range);
+       }
+
+       if ((event->keyval == GDK_KEY_Control_L) ||
+           (event->keyval == GDK_KEY_Control_R)) {
+
+               editor_widget_set_links_active (editor_widget, FALSE);
+       }
+
+       /* Chain up to parent's key_release_event() method. */
+       return GTK_WIDGET_CLASS (e_editor_widget_parent_class)->
+               key_release_event (widget, event);
+}
+
+static void
+editor_widget_paste_clipboard_quoted (EEditorWidget *widget)
+{
+       GtkClipboard *clipboard;
+
+       clipboard = gtk_clipboard_get_for_display (
+               gdk_display_get_default (),
+               GDK_SELECTION_CLIPBOARD);
+
+       gtk_clipboard_request_text (
+               clipboard,
+               (GtkClipboardTextReceivedFunc) clipboard_text_received,
+               widget);
 }
 
 static void
-e_editor_widget_class_init (EEditorWidgetClass *klass)
+e_editor_widget_class_init (EEditorWidgetClass *class)
 {
        GObjectClass *object_class;
        GtkWidgetClass *widget_class;
 
-       g_type_class_add_private (klass, sizeof (EEditorWidgetPrivate));
+       g_type_class_add_private (class, sizeof (EEditorWidgetPrivate));
 
-       object_class = G_OBJECT_CLASS (klass);
-       object_class->get_property = e_editor_widget_get_property;
-       object_class->set_property = e_editor_widget_set_property;
-       object_class->finalize = e_editor_widget_finalize;
+       object_class = G_OBJECT_CLASS (class);
+       object_class->get_property = editor_widget_get_property;
+       object_class->set_property = editor_widget_set_property;
+       object_class->dispose = editor_widget_dispose;
 
-       widget_class = GTK_WIDGET_CLASS (klass);
+       widget_class = GTK_WIDGET_CLASS (class);
        widget_class->button_press_event = editor_widget_button_press_event;
        widget_class->button_release_event = editor_widget_button_release_event;
        widget_class->key_press_event = editor_widget_key_press_event;
        widget_class->key_release_event = editor_widget_key_release_event;
 
-       klass->paste_clipboard_quoted = editor_widget_paste_clipboard_quoted;
-
-       /**
-        * EEditorWidget:html-mode
-        *
-        * Determines whether HTML or plain text mode is enabled.
-        **/
-       g_object_class_install_property (
-               object_class,
-               PROP_HTML_MODE,
-               g_param_spec_boolean (
-                       "html-mode",
-                       "HTML Mode",
-                       "Edit HTML or plain text",
-                       TRUE,
-                       G_PARAM_READWRITE |
-                       G_PARAM_CONSTRUCT));
-
-       /**
-        * EEditorWidget::inline-spelling
-        *
-        * Determines whether automatic spellchecking is enabled.
-        */
-       g_object_class_install_property (
-               object_class,
-               PROP_INLINE_SPELLING,
-               g_param_spec_boolean (
-                       "inline-spelling",
-                       "Inline Spelling",
-                       "Check your spelling as you type",
-                       TRUE,
-                       G_PARAM_READWRITE |
-                       G_PARAM_CONSTRUCT));
-
-       /**
-        * EEditorWidget:magic-links
-        *
-        * Determines whether automatic conversion of text links into
-        * HTML links is enabled.
-        */
-       g_object_class_install_property (
-               object_class,
-               PROP_MAGIC_LINKS,
-               g_param_spec_boolean (
-                       "magic-links",
-                       "Magic Links",
-                       "Make URIs clickable as you type",
-                       TRUE,
-                       G_PARAM_READWRITE |
-                       G_PARAM_CONSTRUCT));
-
-       /**
-        * EEditorWidget:magic-smileys
-        *
-        * Determines whether automatic conversion of text smileys into
-        * images is enabled.
-        */
-       g_object_class_install_property (
-               object_class,
-               PROP_MAGIC_SMILEYS,
-               g_param_spec_boolean (
-                       "magic-smileys",
-                       "Magic Smileys",
-                       "Convert emoticons to images as you type",
-                       TRUE,
-                       G_PARAM_READWRITE |
-                       G_PARAM_CONSTRUCT));
-
-       /**
-        * EEditorWidget:changed
-        *
-        * Determines whether document has been modified
-        */
-       g_object_class_install_property (
-               object_class,
-               PROP_CHANGED,
-               g_param_spec_boolean (
-                       "changed",
-                       _("Changed property"),
-                       _("Whether editor changed"),
-                       FALSE,
-                       G_PARAM_READWRITE));
+       class->paste_clipboard_quoted = editor_widget_paste_clipboard_quoted;
 
        /**
         * EEditorWidget:can-copy
@@ -839,7 +784,8 @@ e_editor_widget_class_init (EEditorWidgetClass *klass)
                        "Can Copy",
                        NULL,
                        FALSE,
-                       G_PARAM_READABLE));
+                       G_PARAM_READABLE |
+                       G_PARAM_STATIC_STRINGS));
 
        /**
         * EEditorWidget:can-cut
@@ -855,13 +801,15 @@ e_editor_widget_class_init (EEditorWidgetClass *klass)
                        "Can Cut",
                        NULL,
                        FALSE,
-                       G_PARAM_READABLE));
+                       G_PARAM_READABLE |
+                       G_PARAM_STATIC_STRINGS));
 
        /**
         * EEditorWidget:can-paste
         *
         * Determines whether it's possible to paste from clipboard. The action
-        * is usually disabled when there is no valid content in clipboard to paste.
+        * is usually disabled when there is no valid content in clipboard to
+        * paste.
         */
        g_object_class_install_property (
                object_class,
@@ -871,10 +819,11 @@ e_editor_widget_class_init (EEditorWidgetClass *klass)
                        "Can Paste",
                        NULL,
                        FALSE,
-                       G_PARAM_READABLE));
+                       G_PARAM_READABLE |
+                       G_PARAM_STATIC_STRINGS));
 
        /**
-        * EEditorWidget:can-redu
+        * EEditorWidget:can-redo
         *
         * Determines whether it's possible to redo previous action. The action
         * is usually disabled when there is no action to redo.
@@ -887,7 +836,8 @@ e_editor_widget_class_init (EEditorWidgetClass *klass)
                        "Can Redo",
                        NULL,
                        FALSE,
-                       G_PARAM_READABLE));
+                       G_PARAM_READABLE |
+                       G_PARAM_STATIC_STRINGS));
 
        /**
         * EEditorWidget:can-undo
@@ -903,7 +853,94 @@ e_editor_widget_class_init (EEditorWidgetClass *klass)
                        "Can Undo",
                        NULL,
                        FALSE,
-                       G_PARAM_READABLE));
+                       G_PARAM_READABLE |
+                       G_PARAM_STATIC_STRINGS));
+
+       /**
+        * EEditorWidget:changed
+        *
+        * Determines whether document has been modified
+        */
+       g_object_class_install_property (
+               object_class,
+               PROP_CHANGED,
+               g_param_spec_boolean (
+                       "changed",
+                       _("Changed property"),
+                       _("Whether editor changed"),
+                       FALSE,
+                       G_PARAM_READWRITE |
+                       G_PARAM_STATIC_STRINGS));
+
+       /**
+        * EEditorWidget:html-mode
+        *
+        * Determines whether HTML or plain text mode is enabled.
+        **/
+       g_object_class_install_property (
+               object_class,
+               PROP_HTML_MODE,
+               g_param_spec_boolean (
+                       "html-mode",
+                       "HTML Mode",
+                       "Edit HTML or plain text",
+                       TRUE,
+                       G_PARAM_READWRITE |
+                       G_PARAM_CONSTRUCT |
+                       G_PARAM_STATIC_STRINGS));
+
+       /**
+        * EEditorWidget::inline-spelling
+        *
+        * Determines whether automatic spellchecking is enabled.
+        */
+       g_object_class_install_property (
+               object_class,
+               PROP_INLINE_SPELLING,
+               g_param_spec_boolean (
+                       "inline-spelling",
+                       "Inline Spelling",
+                       "Check your spelling as you type",
+                       TRUE,
+                       G_PARAM_READWRITE |
+                       G_PARAM_CONSTRUCT |
+                       G_PARAM_STATIC_STRINGS));
+
+       /**
+        * EEditorWidget:magic-links
+        *
+        * Determines whether automatic conversion of text links into
+        * HTML links is enabled.
+        */
+       g_object_class_install_property (
+               object_class,
+               PROP_MAGIC_LINKS,
+               g_param_spec_boolean (
+                       "magic-links",
+                       "Magic Links",
+                       "Make URIs clickable as you type",
+                       TRUE,
+                       G_PARAM_READWRITE |
+                       G_PARAM_CONSTRUCT |
+                       G_PARAM_STATIC_STRINGS));
+
+       /**
+        * EEditorWidget:magic-smileys
+        *
+        * Determines whether automatic conversion of text smileys into
+        * images is enabled.
+        */
+       g_object_class_install_property (
+               object_class,
+               PROP_MAGIC_SMILEYS,
+               g_param_spec_boolean (
+                       "magic-smileys",
+                       "Magic Smileys",
+                       "Convert emoticons to images as you type",
+                       TRUE,
+                       G_PARAM_READWRITE |
+                       G_PARAM_CONSTRUCT |
+                       G_PARAM_STATIC_STRINGS));
 
        /**
         * EEditorWidget:spell-languages
@@ -917,7 +954,8 @@ e_editor_widget_class_init (EEditorWidgetClass *klass)
                        "spell-languages",
                        "Active spell checking languages",
                        NULL,
-                       G_PARAM_READWRITE));
+                       G_PARAM_READWRITE |
+                       G_PARAM_STATIC_STRINGS));
 
        /**
         * EEditorWidget:popup-event
@@ -926,7 +964,7 @@ e_editor_widget_class_init (EEditorWidgetClass *klass)
         */
        signals[POPUP_EVENT] = g_signal_new (
                "popup-event",
-               G_TYPE_FROM_CLASS (klass),
+               G_TYPE_FROM_CLASS (class),
                G_SIGNAL_RUN_LAST,
                G_STRUCT_OFFSET (EEditorWidgetClass, popup_event),
                g_signal_accumulator_true_handled, NULL,
@@ -944,8 +982,7 @@ e_editor_widget_init (EEditorWidget *editor)
        GSettingsSchema *settings_schema;
        ESpellChecker *checker;
 
-       editor->priv = G_TYPE_INSTANCE_GET_PRIVATE (
-               editor, E_TYPE_EDITOR_WIDGET, EEditorWidgetPrivate);
+       editor->priv = E_EDITOR_WIDGET_GET_PRIVATE (editor);
 
        webkit_web_view_set_editable (WEBKIT_WEB_VIEW (editor), TRUE);
        settings = webkit_web_view_get_settings (WEBKIT_WEB_VIEW (editor));
@@ -955,9 +992,9 @@ e_editor_widget_init (EEditorWidget *editor)
                "enable-developer-extras", TRUE,
                "enable-dom-paste", TRUE,
                "enable-file-access-from-file-uris", TRUE,
-               "enable-plugins", FALSE,
-               "enable-scripts", FALSE,
-               "enable-spell-checking", TRUE,
+               "enable-plugins", FALSE,
+               "enable-scripts", FALSE,
+               "enable-spell-checking", TRUE,
                NULL);
 
        webkit_web_view_set_settings (WEBKIT_WEB_VIEW (editor), settings);
@@ -972,23 +1009,28 @@ e_editor_widget_init (EEditorWidget *editor)
        e_editor_widget_exec_command (
                editor, E_EDITOR_WIDGET_COMMAND_STYLE_WITH_CSS, "false");
 
-       g_signal_connect (editor, "user-changed-contents",
+       g_signal_connect (
+               editor, "user-changed-contents",
                G_CALLBACK (editor_widget_user_changed_contents_cb), NULL);
-       g_signal_connect (editor, "selection-changed",
+       g_signal_connect (
+               editor, "selection-changed",
                G_CALLBACK (editor_widget_selection_changed_cb), NULL);
-       g_signal_connect (editor, "should-show-delete-interface-for-element",
+       g_signal_connect (
+               editor, "should-show-delete-interface-for-element",
                G_CALLBACK (editor_widget_should_show_delete_interface_for_element), NULL);
-       g_signal_connect (editor, "notify::load-status",
+       g_signal_connect (
+               editor, "notify::load-status",
                G_CALLBACK (editor_widget_load_status_changed), NULL);
 
        inspector = webkit_web_view_get_inspector (WEBKIT_WEB_VIEW (editor));
-       g_signal_connect (inspector, "inspect-web-view",
+       g_signal_connect (
+               inspector, "inspect-web-view",
                G_CALLBACK (editor_widget_open_inspector), NULL);
 
        editor->priv->selection = g_object_new (
-                                       E_TYPE_EDITOR_SELECTION,
-                                       "editor-widget", editor,
-                                       NULL);
+               E_TYPE_EDITOR_SELECTION,
+               "editor-widget", editor,
+               NULL);
 
        g_settings = g_settings_new ("org.gnome.desktop.interface");
        g_signal_connect_swapped (
@@ -1013,7 +1055,6 @@ e_editor_widget_init (EEditorWidget *editor)
 
        e_editor_widget_update_fonts (editor);
 
-
        /* Make WebKit think we are displaying a local file, so that it
         * does not block loading resources from file:// protocol */
        webkit_web_view_load_string (
@@ -1067,9 +1108,9 @@ e_editor_widget_get_selection (EEditorWidget *widget)
  * Returns: @TRUE when the command was succesfully executed, @FALSE otherwise.
  */
 gboolean
-e_editor_widget_exec_command (EEditorWidget* widget,
-                             EEditorWidgetCommand command,
-                             const gchar* value)
+e_editor_widget_exec_command (EEditorWidget *widget,
+                              EEditorWidgetCommand command,
+                              const gchar *value)
 {
        WebKitDOMDocument *document;
        const gchar *cmd_str = 0;
@@ -1086,55 +1127,55 @@ e_editor_widget_exec_command (EEditorWidget* widget,
        break;
 
        switch (command) {
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_BACKGROUND_COLOR, "BackColor", TRUE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_BOLD, "Bold", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_COPY, "Copy", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_CREATE_LINK, "CreateLink", TRUE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_CUT, "Cut", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_DEFAULT_PARAGRAPH_SEPARATOR, 
"DefaultParagraphSeparator", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_DELETE, "Delete", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_FIND_STRING, "FindString", TRUE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_FONT_NAME, "FontName", TRUE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_FONT_SIZE, "FontSize", TRUE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_FONT_SIZE_DELTA, "FontSizeDelta", TRUE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_FORE_COLOR, "ForeColor", TRUE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_FORMAT_BLOCK, "FormatBlock", TRUE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_FORWARD_DELETE, "ForwardDelete", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_HILITE_COLOR, "HiliteColor", TRUE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_INDENT, "Indent", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_INSERT_HORIZONTAL_RULE, "InsertHorizontalRule", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_INSERT_HTML, "InsertHTML", TRUE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_INSERT_IMAGE, "InsertImage", TRUE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_INSERT_LINE_BREAK, "InsertLineBreak", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_INSERT_NEW_LINE_IN_QUOTED_CONTENT, 
"InsertNewlineInQuotedContent", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_INSERT_ORDERED_LIST, "InsertOrderedList", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_INSERT_PARAGRAPH, "InsertParagraph", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_INSERT_TEXT, "InsertText", TRUE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_INSERT_UNORDERED_LIST, "InsertUnorderedList", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_ITALIC, "Italic", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_JUSTIFY_CENTER, "JustifyCenter", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_JUSTIFY_FULL, "JustifyFull", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_JUSTIFY_LEFT, "JustifyLeft", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_JUSTIFY_NONE, "JustifyNone", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_JUSTIFY_RIGHT, "JustifyRight", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_OUTDENT, "Outdent", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_PASTE, "Paste", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_PASTE_AND_MATCH_STYLE, "PasteAndMatchStyle", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_PASTE_AS_PLAIN_TEXT, "PasteAsPlainText", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_PRINT, "Print", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_REDO, "Redo", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_REMOVE_FORMAT, "RemoveFormat", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_SELECT_ALL, "SelectAll", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_STRIKETHROUGH, "Strikethrough", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_STYLE_WITH_CSS, "StyleWithCSS", TRUE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_SUBSCRIPT, "Subscript", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_SUPERSCRIPT, "Superscript", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_TRANSPOSE, "Transpose", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_UNDERLINE, "Underline", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_UNDO, "Undo", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_UNLINK, "Unlink", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_UNSELECT, "Unselect", FALSE)
-               CHECK_COMMAND(E_EDITOR_WIDGET_COMMAND_USE_CSS, "UseCSS", TRUE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_BACKGROUND_COLOR, "BackColor", TRUE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_BOLD, "Bold", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_COPY, "Copy", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_CREATE_LINK, "CreateLink", TRUE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_CUT, "Cut", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_DEFAULT_PARAGRAPH_SEPARATOR, 
"DefaultParagraphSeparator", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_DELETE, "Delete", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_FIND_STRING, "FindString", TRUE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_FONT_NAME, "FontName", TRUE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_FONT_SIZE, "FontSize", TRUE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_FONT_SIZE_DELTA, "FontSizeDelta", TRUE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_FORE_COLOR, "ForeColor", TRUE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_FORMAT_BLOCK, "FormatBlock", TRUE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_FORWARD_DELETE, "ForwardDelete", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_HILITE_COLOR, "HiliteColor", TRUE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_INDENT, "Indent", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_INSERT_HORIZONTAL_RULE, "InsertHorizontalRule", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_INSERT_HTML, "InsertHTML", TRUE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_INSERT_IMAGE, "InsertImage", TRUE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_INSERT_LINE_BREAK, "InsertLineBreak", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_INSERT_NEW_LINE_IN_QUOTED_CONTENT, 
"InsertNewlineInQuotedContent", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_INSERT_ORDERED_LIST, "InsertOrderedList", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_INSERT_PARAGRAPH, "InsertParagraph", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_INSERT_TEXT, "InsertText", TRUE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_INSERT_UNORDERED_LIST, "InsertUnorderedList", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_ITALIC, "Italic", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_JUSTIFY_CENTER, "JustifyCenter", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_JUSTIFY_FULL, "JustifyFull", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_JUSTIFY_LEFT, "JustifyLeft", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_JUSTIFY_NONE, "JustifyNone", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_JUSTIFY_RIGHT, "JustifyRight", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_OUTDENT, "Outdent", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_PASTE, "Paste", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_PASTE_AND_MATCH_STYLE, "PasteAndMatchStyle", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_PASTE_AS_PLAIN_TEXT, "PasteAsPlainText", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_PRINT, "Print", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_REDO, "Redo", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_REMOVE_FORMAT, "RemoveFormat", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_SELECT_ALL, "SelectAll", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_STRIKETHROUGH, "Strikethrough", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_STYLE_WITH_CSS, "StyleWithCSS", TRUE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_SUBSCRIPT, "Subscript", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_SUPERSCRIPT, "Superscript", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_TRANSPOSE, "Transpose", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_UNDERLINE, "Underline", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_UNDO, "Undo", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_UNLINK, "Unlink", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_UNSELECT, "Unselect", FALSE)
+               CHECK_COMMAND (E_EDITOR_WIDGET_COMMAND_USE_CSS, "UseCSS", TRUE)
        }
 
        document = webkit_web_view_get_dom_document (WEBKIT_WEB_VIEW (widget));
@@ -1169,11 +1210,11 @@ e_editor_widget_get_changed (EEditorWidget *widget)
  */
 void
 e_editor_widget_set_changed (EEditorWidget *widget,
-                            gboolean changed)
+                             gboolean changed)
 {
        g_return_if_fail (E_IS_EDITOR_WIDGET (widget));
 
-       if ((widget->priv->changed ? TRUE : FALSE) == (changed ? TRUE : FALSE))
+       if (widget->priv->changed == changed)
                return;
 
        widget->priv->changed = changed;
@@ -1211,27 +1252,27 @@ e_editor_widget_get_html_mode (EEditorWidget *widget)
  */
 void
 e_editor_widget_set_html_mode (EEditorWidget *widget,
-                              gboolean html_mode)
+                               gboolean html_mode)
 {
        g_return_if_fail (E_IS_EDITOR_WIDGET (widget));
 
        /* If toggling from HTML to plain text mode, ask user first */
        if (widget->priv->html_mode && !html_mode && widget->priv->changed) {
-               GtkWidget *parent, *dialog;
+               GtkWidget *toplevel, *dialog;
+               GtkWindow *parent = NULL;
 
-               parent = gtk_widget_get_toplevel (GTK_WIDGET (widget));
+               toplevel = gtk_widget_get_toplevel (GTK_WIDGET (widget));
 
-               if (!GTK_IS_WINDOW (parent)) {
-                       parent = NULL;
-               }
+               if (GTK_IS_WINDOW (toplevel))
+                       parent = GTK_WINDOW (toplevel);
 
                dialog = gtk_message_dialog_new (
-                               parent ? GTK_WINDOW (parent) : NULL,
-                               GTK_DIALOG_DESTROY_WITH_PARENT,
-                               GTK_MESSAGE_WARNING,
-                               GTK_BUTTONS_NONE,
-                               _("Turning HTML mode off will cause the text "
-                                 "to lose all formatting. Do you want to continue?"));
+                       parent,
+                       GTK_DIALOG_DESTROY_WITH_PARENT,
+                       GTK_MESSAGE_WARNING,
+                       GTK_BUTTONS_NONE,
+                       _("Turning HTML mode off will cause the text "
+                       "to lose all formatting. Do you want to continue?"));
                gtk_dialog_add_buttons (
                        GTK_DIALOG (dialog),
                        _("_Don't lose formatting"), GTK_RESPONSE_CANCEL,
@@ -1248,9 +1289,8 @@ e_editor_widget_set_html_mode (EEditorWidget *widget,
                gtk_widget_destroy (dialog);
        }
 
-       if ((widget->priv->html_mode ? 1 : 0) == (html_mode ? 1 : 0)) {
+       if (html_mode == widget->priv->html_mode)
                return;
-       }
 
        widget->priv->html_mode = html_mode;
 
@@ -1285,7 +1325,7 @@ e_editor_widget_set_html_mode (EEditorWidget *widget,
 
                g_free (plain);
        }
-       
+
        g_object_notify (G_OBJECT (widget), "html-mode");
 }
 
@@ -1316,11 +1356,11 @@ e_editor_widget_get_inline_spelling (EEditorWidget *widget)
  */
 void
 e_editor_widget_set_inline_spelling (EEditorWidget *widget,
-                                    gboolean inline_spelling)
+                                     gboolean inline_spelling)
 {
        g_return_if_fail (E_IS_EDITOR_WIDGET (widget));
 
-       if ((widget->priv->inline_spelling ? TRUE : FALSE) == (inline_spelling ? TRUE : FALSE))
+       if (widget->priv->inline_spelling == inline_spelling)
                return;
 
        widget->priv->inline_spelling = inline_spelling;
@@ -1354,11 +1394,11 @@ e_editor_widget_get_magic_links (EEditorWidget *widget)
  */
 void
 e_editor_widget_set_magic_links (EEditorWidget *widget,
-                                gboolean magic_links)
+                                 gboolean magic_links)
 {
        g_return_if_fail (E_IS_EDITOR_WIDGET (widget));
 
-       if ((widget->priv->magic_links ? TRUE : FALSE) == (magic_links ? TRUE : FALSE))
+       if (widget->priv->magic_links == magic_links)
                return;
 
        widget->priv->magic_links = magic_links;
@@ -1393,11 +1433,11 @@ e_editor_widget_get_magic_smileys (EEditorWidget *widget)
  */
 void
 e_editor_widget_set_magic_smileys (EEditorWidget *widget,
-                                  gboolean magic_smileys)
+                                   gboolean magic_smileys)
 {
        g_return_if_fail (E_IS_EDITOR_WIDGET (widget));
 
-       if ((widget->priv->magic_smileys ? TRUE : FALSE) == (magic_smileys ? TRUE : FALSE))
+       if (widget->priv->magic_smileys == magic_smileys)
                return;
 
        widget->priv->magic_smileys = magic_smileys;
@@ -1481,7 +1521,7 @@ e_editor_widget_get_text_html (EEditorWidget *widget)
 
 static void
 process_elements (WebKitDOMNode *node,
-                 GString *buffer)
+                  GString *buffer)
 {
        WebKitDOMDocument *document;
        WebKitDOMDOMWindow *window;
@@ -1496,9 +1536,9 @@ process_elements (WebKitDOMNode *node,
 
        /* Is this a block element? */
        style = webkit_dom_dom_window_get_computed_style (
-                       window, WEBKIT_DOM_ELEMENT (node), "");
+               window, WEBKIT_DOM_ELEMENT (node), "");
        display = webkit_dom_css_style_declaration_get_property_value (
-                       style, "display");
+               style, "display");
 
        tagname = webkit_dom_element_get_tag_name (WEBKIT_DOM_ELEMENT (node));
 
@@ -1511,12 +1551,12 @@ process_elements (WebKitDOMNode *node,
                        const EEmoticon *emoticon;
 
                        smiley_name = webkit_dom_element_get_attribute (
-                                       WEBKIT_DOM_ELEMENT (node), "x-evo-smiley");
+                               WEBKIT_DOM_ELEMENT (node), "x-evo-smiley");
                        emoticon = e_emoticon_chooser_lookup_emoticon (smiley_name);
-                       if (emoticon) {
+                       if (emoticon != NULL)
                                g_string_append_printf (
                                        buffer, " %s ", emoticon->text_face);
-                       }
+
                        g_free (smiley_name);
                        g_free (display);
 
@@ -1525,7 +1565,6 @@ process_elements (WebKitDOMNode *node,
                }
        }
 
-
        nodes = webkit_dom_node_get_child_nodes (node);
        length = webkit_dom_node_list_get_length (nodes);
        regex = g_regex_new ("\x9", 0, 0, NULL);
@@ -1540,7 +1579,7 @@ process_elements (WebKitDOMNode *node,
                        tmp = webkit_dom_node_get_text_content (child);
 
                        /* Replace tabs with 4 whitespaces, otherwise they got
-                          replaced by single whitespace */
+                        * replaced by single whitespace */
                        content = g_regex_replace (
                                regex, tmp, -1, 0, "    ",
                                0, NULL);
@@ -1567,10 +1606,11 @@ process_elements (WebKitDOMNode *node,
  * e_editor_widget_get_text_plain:
  * @widget: an #EEditorWidget
  *
- * Returns plain text content of the @widget. The algorithm removes any formatting
- * or styles from the document and keeps only the text and line breaks.
+ * Returns plain text content of the @widget. The algorithm removes any
+ * formatting or styles from the document and keeps only the text and line
+ * breaks.
  *
- * Returns: A newly allocated string with plain text content of the document. [transfer-full]
+ * Returns: A newly allocated string with plain text content of the document.
  */
 gchar *
 e_editor_widget_get_text_plain (EEditorWidget *widget)
@@ -1598,7 +1638,7 @@ e_editor_widget_get_text_plain (EEditorWidget *widget)
  */
 void
 e_editor_widget_set_text_html (EEditorWidget *widget,
-                              const gchar *text)
+                               const gchar *text)
 {
        widget->priv->reload_in_progress = TRUE;
 
@@ -1608,7 +1648,7 @@ e_editor_widget_set_text_html (EEditorWidget *widget,
 
 static void
 do_set_text_plain (EEditorWidget *widget,
-                  gpointer data)
+                   gpointer data)
 {
        e_editor_widget_exec_command (
                widget, E_EDITOR_WIDGET_COMMAND_INSERT_TEXT, data);
@@ -1623,7 +1663,7 @@ do_set_text_plain (EEditorWidget *widget,
  */
 void
 e_editor_widget_set_text_plain (EEditorWidget *widget,
-                               const gchar *text)
+                                const gchar *text)
 {
        widget->priv->reload_in_progress = TRUE;
 
@@ -1647,14 +1687,14 @@ e_editor_widget_set_text_plain (EEditorWidget *widget,
 void
 e_editor_widget_paste_clipboard_quoted (EEditorWidget *widget)
 {
-       EEditorWidgetClass *klass;
+       EEditorWidgetClass *class;
 
        g_return_if_fail (E_IS_EDITOR_WIDGET (widget));
 
-       klass = E_EDITOR_WIDGET_GET_CLASS (widget);
-       g_return_if_fail (klass->paste_clipboard_quoted != NULL);
+       class = E_EDITOR_WIDGET_GET_CLASS (widget);
+       g_return_if_fail (class->paste_clipboard_quoted != NULL);
 
-       klass->paste_clipboard_quoted (widget);
+       class->paste_clipboard_quoted (widget);
 }
 
 /**
@@ -1699,7 +1739,8 @@ e_editor_widget_update_fonts (EEditorWidget *widget)
        }
 
        stylesheet = g_string_new ("");
-       g_string_append_printf (stylesheet,
+       g_string_append_printf (
+               stylesheet,
                "body {\n"
                "  font-family: '%s';\n"
                "  font-size: %dpt;\n"
@@ -1731,7 +1772,8 @@ e_editor_widget_update_fonts (EEditorWidget *widget)
 
        g_string_append (stylesheet, "}\n");
 
-       g_string_append_printf (stylesheet,
+       g_string_append_printf (
+               stylesheet,
                "pre,code,.pre {\n"
                "  font-family: '%s';\n"
                "  font-size: %dpt;\n"
@@ -1744,7 +1786,8 @@ e_editor_widget_update_fonts (EEditorWidget *widget)
                styles[pango_font_description_get_style (ms)]);
 
        context = gtk_widget_get_style_context (GTK_WIDGET (widget));
-       gtk_style_context_get_style (context,
+       gtk_style_context_get_style (
+               context,
                "link-color", &link,
                "visited-link-color", &visited,
                NULL);
@@ -1759,7 +1802,8 @@ e_editor_widget_update_fonts (EEditorWidget *widget)
                visited->red = G_MAXINT16;
        }
 
-       g_string_append_printf (stylesheet,
+       g_string_append_printf (
+               stylesheet,
                "a {\n"
                "  color: #%06x;\n"
                "}\n"
@@ -1770,7 +1814,8 @@ e_editor_widget_update_fonts (EEditorWidget *widget)
                e_color_to_value (visited));
 
        /* See bug #689777 for details */
-       g_string_append_printf (stylesheet,
+       g_string_append_printf (
+               stylesheet,
                "p,pre,code,address {\n"
                "  margin: 0;\n"
                "}\n"
@@ -1790,7 +1835,8 @@ e_editor_widget_update_fonts (EEditorWidget *widget)
        g_free (base64);
 
        settings = webkit_web_view_get_settings (WEBKIT_WEB_VIEW (widget));
-       g_object_set (G_OBJECT (settings),
+       g_object_set (
+               G_OBJECT (settings),
                "default-font-size", pango_font_description_get_size (vw) / PANGO_SCALE,
                "default-font-family", pango_font_description_get_family (vw),
                "monospace-font-family", pango_font_description_get_family (ms),
diff --git a/e-util/e-editor-widget.h b/e-util/e-editor-widget.h
index 1c07d5d..4bc26e3 100644
--- a/e-util/e-editor-widget.h
+++ b/e-util/e-editor-widget.h
@@ -58,7 +58,6 @@ typedef enum {
        E_EDITOR_WIDGET_REPLACE_ANSWER_NEXT
 } EEditorWidgetReplaceAnswer;
 
-
 /**
  * EEditorWidgetCommand:
  * @E_EDITOR_WIDGET_COMMAND_BACKGROUND_COLOR: Sets background color to given value.
@@ -112,7 +111,7 @@ typedef enum {
  * @E_EDITOR_WIDGET_COMMAND_UNSELECT: Cancels current selection.
  * @E_EDITOR_WIDGET_COMMAND_USE_CSS: Whether to allow use of CSS or not depending on whether given value is 
"true" or "false".
  *
- * Used to identify DOM command to execute using #e_editor_widget_exec_command().
+ * Used to identify DOM command to execute using e_editor_widget_exec_command().
  * Some commands require value to be passed in, which is always stated in the documentation.
  */
 
@@ -174,38 +173,31 @@ typedef struct _EEditorWidgetPrivate EEditorWidgetPrivate;
 
 struct _EEditorWidget {
        WebKitWebView parent;
-
        EEditorWidgetPrivate *priv;
 };
 
 struct _EEditorWidgetClass {
        WebKitWebViewClass parent_class;
 
-       void            (*paste_clipboard_quoted)       (EEditorWidget *widget);
-
-       gboolean        (*popup_event)                  (EEditorWidget *widget,
-                                                        GdkEventButton *event);
+       void            (*paste_clipboard_quoted)
+                                               (EEditorWidget *widget);
+       gboolean        (*popup_event)          (EEditorWidget *widget,
+                                                GdkEventButton *event);
 };
 
-GType          e_editor_widget_get_type        (void);
-
+GType          e_editor_widget_get_type        (void) G_GNUC_CONST;
 EEditorWidget *        e_editor_widget_new             (void);
-
 EEditorSelection *
                e_editor_widget_get_selection   (EEditorWidget *widget);
-
 gboolean       e_editor_widget_exec_command    (EEditorWidget *widget,
                                                 EEditorWidgetCommand command,
                                                 const gchar *value);
-
 gboolean       e_editor_widget_get_changed     (EEditorWidget *widget);
 void           e_editor_widget_set_changed     (EEditorWidget *widget,
                                                 gboolean changed);
-
 gboolean       e_editor_widget_get_html_mode   (EEditorWidget *widget);
 void           e_editor_widget_set_html_mode   (EEditorWidget *widget,
                                                 gboolean html_mode);
-
 gboolean       e_editor_widget_get_inline_spelling
                                                (EEditorWidget *widget);
 void           e_editor_widget_set_inline_spelling
@@ -219,26 +211,21 @@ gboolean  e_editor_widget_get_magic_smileys
 void           e_editor_widget_set_magic_smileys
                                                (EEditorWidget *widget,
                                                 gboolean magic_smileys);
-
 GList *                e_editor_widget_get_spell_languages
                                                (EEditorWidget *widget);
 void           e_editor_widget_set_spell_languages
                                                (EEditorWidget *widget,
                                                 GList *spell_languages);
-
 ESpellChecker *        e_editor_widget_get_spell_checker
                                                (EEditorWidget *widget);
-
 gchar *                e_editor_widget_get_text_html   (EEditorWidget *widget);
 gchar *                e_editor_widget_get_text_plain  (EEditorWidget *widget);
 void           e_editor_widget_set_text_html   (EEditorWidget *widget,
                                                 const gchar *text);
 void           e_editor_widget_set_text_plain  (EEditorWidget *widget,
                                                 const gchar *text);
-
 void           e_editor_widget_paste_clipboard_quoted
                                                (EEditorWidget *widget);
-
 void           e_editor_widget_update_fonts    (EEditorWidget *widget);
 
 G_END_DECLS
diff --git a/e-util/e-editor-window.c b/e-util/e-editor-window.c
index cbf1005..c8c007b 100644
--- a/e-util/e-editor-window.c
+++ b/e-util/e-editor-window.c
@@ -24,18 +24,17 @@
 
 #include "e-editor-window.h"
 
-G_DEFINE_TYPE (
-       EEditorWindow,
-       e_editor_window,
-       GTK_TYPE_WINDOW)
+#define E_EDITOR_WINDOW_GET_PRIVATE(obj) \
+       (G_TYPE_INSTANCE_GET_PRIVATE \
+       ((obj), E_TYPE_EDITOR_WINDOW, EEditorWindowPrivate))
 
 /**
  * EEditorWindow:
  *
  * A #GtkWindow that contains main toolbars and an #EEditor. To create a
- * custom editor window, one can subclass this class and pack additional widgets
- * above and below the editor using #e_editor_window_pack_above() and
- * #e_editor_window_pack_below().
+ * custom editor window, one can subclass this class and pack additional
+ * widgets above and below the editor using e_editor_window_pack_above()
+ * and e_editor_window_pack_below().
  */
 
 struct _EEditorWindowPrivate {
@@ -53,16 +52,23 @@ enum {
        PROP_EDITOR
 };
 
+G_DEFINE_TYPE (
+       EEditorWindow,
+       e_editor_window,
+       GTK_TYPE_WINDOW)
+
 static void
 editor_window_get_property (GObject *object,
-                           guint property_id,
-                           GValue *value,
-                           GParamSpec *pspec)
+                            guint property_id,
+                            GValue *value,
+                            GParamSpec *pspec)
 {
        switch (property_id) {
                case PROP_EDITOR:
                        g_value_set_object (
-                               value, E_EDITOR_WINDOW (object)->priv->editor);
+                               value,
+                               e_editor_window_get_editor (
+                               E_EDITOR_WINDOW (object)));
                        return;
        }
 
@@ -70,14 +76,13 @@ editor_window_get_property (GObject *object,
 }
 
 static void
-e_editor_window_class_init (EEditorWindowClass *klass)
+e_editor_window_class_init (EEditorWindowClass *class)
 {
        GObjectClass *object_class;
 
-       e_editor_window_parent_class = g_type_class_peek_parent (klass);
-       g_type_class_add_private (klass, sizeof (EEditorWindowPrivate));
+       g_type_class_add_private (class, sizeof (EEditorWindowPrivate));
 
-       object_class = G_OBJECT_CLASS (klass);
+       object_class = G_OBJECT_CLASS (class);
        object_class->get_property = editor_window_get_property;
 
        g_object_class_install_property (
@@ -85,10 +90,10 @@ e_editor_window_class_init (EEditorWindowClass *klass)
                PROP_EDITOR,
                g_param_spec_object (
                        "editor",
-                       NULL,
-                       NULL,
-                       E_TYPE_EDITOR,
-                       G_PARAM_READABLE));
+                       NULL,
+                       NULL,
+                       E_TYPE_EDITOR,
+                       G_PARAM_READABLE));
 }
 
 static void
@@ -97,8 +102,7 @@ e_editor_window_init (EEditorWindow *window)
        EEditorWindowPrivate *priv;
        GtkWidget *widget;
 
-       window->priv = G_TYPE_INSTANCE_GET_PRIVATE (
-               window, E_TYPE_EDITOR_WINDOW, EEditorWindowPrivate);
+       window->priv = E_EDITOR_WINDOW_GET_PRIVATE (window);
 
        priv = window->priv;
        priv->editor = E_EDITOR (e_editor_new ());
@@ -176,7 +180,7 @@ e_editor_window_get_editor (EEditorWindow *window)
  */
 void
 e_editor_window_pack_above (EEditorWindow *window,
-                           GtkWidget *child)
+                            GtkWidget *child)
 {
        g_return_if_fail (E_IS_EDITOR_WINDOW (window));
        g_return_if_fail (GTK_IS_WIDGET (child));
@@ -201,7 +205,7 @@ e_editor_window_pack_above (EEditorWindow *window,
  */
 void
 e_editor_window_pack_below (EEditorWindow *window,
-                           GtkWidget *child)
+                            GtkWidget *child)
 {
        g_return_if_fail (E_IS_EDITOR_WINDOW (window));
        g_return_if_fail (GTK_IS_WIDGET (child));
@@ -221,8 +225,8 @@ e_editor_window_pack_below (EEditorWindow *window,
  * (immediatelly adjacent to the editor itself).
  */
 void
-e_editor_window_pack_inside (EEditorWindow* window,
-                            GtkWidget* child)
+e_editor_window_pack_inside (EEditorWindow *window,
+                             GtkWidget *child)
 {
        g_return_if_fail (E_IS_EDITOR_WINDOW (window));
        g_return_if_fail (GTK_IS_WIDGET (child));
diff --git a/e-util/e-editor-window.h b/e-util/e-editor-window.h
index f73acc0..97c4f44 100644
--- a/e-util/e-editor-window.h
+++ b/e-util/e-editor-window.h
@@ -55,7 +55,6 @@ typedef struct _EEditorWindowPrivate EEditorWindowPrivate;
 
 struct _EEditorWindow {
        GtkWindow parent;
-
        EEditorWindowPrivate *priv;
 };
 
@@ -63,18 +62,13 @@ struct _EEditorWindowClass {
        GtkWindowClass parent_class;
 };
 
-GType          e_editor_window_get_type        (void);
-
+GType          e_editor_window_get_type        (void) G_GNUC_CONST;
 GtkWidget *    e_editor_window_new             (GtkWindowType type);
-
 EEditor *      e_editor_window_get_editor      (EEditorWindow *window);
-
 void           e_editor_window_pack_above      (EEditorWindow *window,
                                                 GtkWidget *child);
-
 void           e_editor_window_pack_inside     (EEditorWindow *window,
                                                 GtkWidget *child);
-
 void           e_editor_window_pack_below      (EEditorWindow *window,
                                                 GtkWidget *child);
 
diff --git a/e-util/e-editor.c b/e-util/e-editor.c
index ecbaf28..a4cfae6 100644
--- a/e-util/e-editor.c
+++ b/e-util/e-editor.c
@@ -18,22 +18,18 @@
  * Boston, MA 02111-1307, USA.
  */
 
-#ifdef HAVE_CONFIG_H
 #include <config.h>
-#endif
+#include <glib/gi18n-lib.h>
+#include <enchant/enchant.h>
 
 #include "e-editor.h"
 #include "e-editor-private.h"
 #include "e-editor-utils.h"
 #include "e-editor-selection.h"
 
-#include <glib/gi18n-lib.h>
-#include <enchant/enchant.h>
-
-G_DEFINE_TYPE (
-       EEditor,
-       e_editor,
-       GTK_TYPE_GRID);
+#define E_EDITOR_GET_PRIVATE(obj) \
+       (G_TYPE_INSTANCE_GET_PRIVATE \
+       ((obj), E_TYPE_EDITOR, EEditorPrivate))
 
 /**
  * EEditor:
@@ -42,20 +38,6 @@ G_DEFINE_TYPE (
  * it's #EEditorSelection - i.e. toolbars and actions.
  */
 
-enum {
-       PROP_0,
-       PROP_FILENAME
-};
-
-enum {
-       UPDATE_ACTIONS,
-       SPELL_LANGUAGES_CHANGED,
-       LAST_SIGNAL
-};
-
-static guint signals[LAST_SIGNAL] = { 0 };
-
-
 /* This controls how spelling suggestions are divided between the primary
  * context menu and a secondary menu.  The idea is to prevent the primary
  * menu from growing too long.
@@ -76,6 +58,24 @@ static guint signals[LAST_SIGNAL] = { 0 };
 #define MAX_LEVEL1_SUGGESTIONS 4
 #define MIN_LEVEL2_SUGGESTIONS 3
 
+enum {
+       PROP_0,
+       PROP_FILENAME
+};
+
+enum {
+       UPDATE_ACTIONS,
+       SPELL_LANGUAGES_CHANGED,
+       LAST_SIGNAL
+};
+
+static guint signals[LAST_SIGNAL] = { 0 };
+
+G_DEFINE_TYPE (
+       EEditor,
+       e_editor,
+       GTK_TYPE_GRID)
+
 /* Action callback for context menu spelling suggestions.
  * XXX This should really be in e-editor-actions.c */
 static void
@@ -118,9 +118,8 @@ editor_inline_spelling_suggestions (EEditor *editor,
        checker = WEBKIT_SPELL_CHECKER (webkit_get_text_checker ());
 
        word = e_editor_selection_get_caret_word (selection);
-       if (!word || !*word) {
+       if (word == NULL || *word == '\0')
                return;
-       }
 
        suggestions = webkit_spell_checker_get_guesses_for_word (checker, word, NULL);
 
@@ -129,10 +128,7 @@ editor_inline_spelling_suggestions (EEditor *editor,
        action_group = editor->priv->suggestion_actions;
        merge_id = editor->priv->spell_suggestions_merge_id;
 
-       length = 0;
-       while (suggestions && suggestions[length]) {
-               length++;
-       }
+       length = (suggestions != NULL) ? g_strv_length (suggestions) : 0;
 
        /* Calculate how many suggestions to put directly in the
         * context menu.  The rest will go in a secondary menu. */
@@ -203,12 +199,12 @@ static void
 editor_spell_checkers_foreach (ESpellDictionary *dictionary,
                                EEditor *editor)
 {
-       EEditorWidget *widget;
+       EEditorWidget *editor_widget;
        EEditorSelection *selection;
        const gchar *language_code;
        GtkActionGroup *action_group;
        GtkUIManager *manager;
-       GList *suggestions, *iter;
+       GList *list, *link;
        gchar *path;
        gchar *word;
        gint ii = 0;
@@ -216,14 +212,13 @@ editor_spell_checkers_foreach (ESpellDictionary *dictionary,
 
        language_code = e_spell_dictionary_get_code (dictionary);
 
-       widget = e_editor_get_editor_widget (editor);
-       selection = e_editor_widget_get_selection (widget);
+       editor_widget = e_editor_get_editor_widget (editor);
+       selection = e_editor_widget_get_selection (editor_widget);
        word = e_editor_selection_get_caret_word (selection);
-       if (!word || !*word) {
+       if (word == NULL || *word == '\0')
                return;
-       }
 
-       suggestions = e_spell_dictionary_get_suggestions (dictionary, word, -1);
+       list = e_spell_dictionary_get_suggestions (dictionary, word, -1);
 
        manager = e_editor_get_ui_manager (editor);
        action_group = editor->priv->suggestion_actions;
@@ -233,8 +228,8 @@ editor_spell_checkers_foreach (ESpellDictionary *dictionary,
                "/context-menu/context-spell-suggest/"
                "context-spell-suggest-%s-menu", language_code);
 
-       for (iter = suggestions; iter; iter = iter->next) {
-               gchar *suggestion = iter->data;
+       for (link = list; link != NULL; link = g_list_next (link)) {
+               gchar *suggestion = link->data;
                gchar *action_name;
                gchar *action_label;
                GtkAction *action;
@@ -278,7 +273,7 @@ editor_spell_checkers_foreach (ESpellDictionary *dictionary,
                g_free (action_label);
        }
 
-       e_spell_dictionary_free_suggestions (suggestions);
+       e_spell_dictionary_free_suggestions (list);
 
        g_free (path);
        g_free (word);
@@ -286,7 +281,7 @@ editor_spell_checkers_foreach (ESpellDictionary *dictionary,
 
 static void
 editor_update_actions (EEditor *editor,
-                      GdkEventButton *event)
+                       GdkEventButton *event)
 {
        WebKitWebView *webview;
        WebKitSpellChecker *checker;
@@ -314,14 +309,13 @@ editor_update_actions (EEditor *editor,
        g_object_get (
                G_OBJECT (hit_test),
                "context", &context,
-               "inner-node", &node, NULL);
+               "inner-node", &node, NULL);
        g_object_unref (hit_test);
 
        visible = (context & WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE);
        gtk_action_set_visible (ACTION (CONTEXT_PROPERTIES_IMAGE), visible);
-       if (visible) {
+       if (visible)
                editor->priv->image = node;
-       }
 
        visible = (context & WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK);
        gtk_action_set_visible (ACTION (CONTEXT_PROPERTIES_LINK), visible);
@@ -344,13 +338,12 @@ editor_update_actions (EEditor *editor,
         *   - Cursor is on an image that has a URL or target.
         */
        visible = (WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT (node) ||
-                  (e_editor_dom_node_find_parent_element (node, "A") != NULL));
+               (e_editor_dom_node_find_parent_element (node, "A") != NULL));
        gtk_action_set_visible (ACTION (CONTEXT_REMOVE_LINK), visible);
 
-
        visible = (WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT (node) ||
-                  (e_editor_dom_node_find_parent_element (node, "TD") != NULL) ||
-                  (e_editor_dom_node_find_parent_element (node, "TH") != NULL));
+               (e_editor_dom_node_find_parent_element (node, "TD") != NULL) ||
+               (e_editor_dom_node_find_parent_element (node, "TH") != NULL));
        gtk_action_set_visible (ACTION (CONTEXT_DELETE_CELL), visible);
        gtk_action_set_visible (ACTION (CONTEXT_DELETE_COLUMN), visible);
        gtk_action_set_visible (ACTION (CONTEXT_DELETE_ROW), visible);
@@ -361,13 +354,12 @@ editor_update_actions (EEditor *editor,
        gtk_action_set_visible (ACTION (CONTEXT_INSERT_ROW_BELOW), visible);
        gtk_action_set_visible (ACTION (CONTEXT_INSERT_TABLE), visible);
        gtk_action_set_visible (ACTION (CONTEXT_PROPERTIES_CELL), visible);
-       if (visible) {
+       if (visible)
                editor->priv->table_cell = node;
-       }
 
        /* Note the |= (cursor must be in a table cell). */
        visible |= (WEBKIT_DOM_IS_HTML_TABLE_ELEMENT (node) ||
-                   (e_editor_dom_node_find_parent_element (node, "TABLE") != NULL));
+               (e_editor_dom_node_find_parent_element (node, "TABLE") != NULL));
        gtk_action_set_visible (ACTION (CONTEXT_PROPERTIES_TABLE), visible);
 
        /********************** Spell Check Suggestions **********************/
@@ -431,7 +423,7 @@ editor_update_actions (EEditor *editor,
 
 static void
 editor_spell_languages_changed (EEditor *editor,
-                               GList *dictionaries)
+                                GList *dictionaries)
 {
        ESpellChecker *checker;
        WebKitWebSettings *settings;
@@ -448,9 +440,8 @@ editor_spell_languages_changed (EEditor *editor,
        for (iter = dictionaries; iter; iter = iter->next) {
                ESpellDictionary *dictionary = iter->data;
 
-               if (iter != dictionaries) {
+               if (languages->len > 0)
                        g_string_append (languages, ",");
-               }
 
                g_string_append (
                        languages,
@@ -459,7 +450,8 @@ editor_spell_languages_changed (EEditor *editor,
 
        /* Set the languages for webview to highlight misspelled words */
        settings = webkit_web_view_get_settings (
-                       WEBKIT_WEB_VIEW (editor->priv->editor_widget));
+               WEBKIT_WEB_VIEW (editor->priv->editor_widget));
+
        g_object_set (
                G_OBJECT (settings),
                "spell-checking-languages", languages->str,
@@ -476,14 +468,14 @@ editor_spell_languages_changed (EEditor *editor,
 
 static gboolean
 editor_show_popup (EEditor *editor,
-                  GdkEventButton *event,
-                  gpointer user_data)
+                   GdkEventButton *event,
+                   gpointer user_data)
 {
        GtkWidget *menu;
 
        menu = e_editor_get_managed_widget (editor, "/context-menu");
 
-       g_signal_emit(editor, signals[UPDATE_ACTIONS], 0, event);
+       g_signal_emit (editor, signals[UPDATE_ACTIONS], 0, event);
 
        if (event != NULL)
                gtk_menu_popup (
@@ -523,7 +515,7 @@ editor_find_ui_file (const gchar *basename)
 
 static void
 editor_parent_changed (GtkWidget *widget,
-                      GtkWidget *previous_parent)
+                       GtkWidget *previous_parent)
 {
        GtkWidget *top_level;
        EEditor *editor = E_EDITOR (widget);
@@ -539,14 +531,14 @@ editor_parent_changed (GtkWidget *widget,
 
 static void
 editor_set_property (GObject *object,
-                    guint property_id,
-                    const GValue *value,
-                    GParamSpec *pspec)
+                     guint property_id,
+                     const GValue *value,
+                     GParamSpec *pspec)
 {
        switch (property_id) {
-
                case PROP_FILENAME:
-                       e_editor_set_filename (E_EDITOR (object),
+                       e_editor_set_filename (
+                               E_EDITOR (object),
                                g_value_get_string (value));
                        return;
 
@@ -557,17 +549,16 @@ editor_set_property (GObject *object,
 
 static void
 editor_get_property (GObject *object,
-                    guint property_id,
-                    GValue *value,
-                    GParamSpec *pspec)
+                     guint property_id,
+                     GValue *value,
+                     GParamSpec *pspec)
 {
        switch (property_id) {
-
                case PROP_FILENAME:
                        g_value_set_string (
-                               value, e_editor_get_filename(
+                               value, e_editor_get_filename (
                                E_EDITOR (object)));
-               return;
+                       return;
        }
 
        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -584,7 +575,8 @@ editor_constructed (GObject *object)
        GtkToolbar *toolbar;
        GtkToolItem *tool_item;
 
-       /* Construct main window widgets. */
+       /* Construct the editing toolbars. */
+
        widget = e_editor_get_managed_widget (editor, "/edit-toolbar");
        gtk_widget_set_hexpand (widget, TRUE);
        gtk_toolbar_set_style (GTK_TOOLBAR (widget), GTK_TOOLBAR_BOTH_HORIZ);
@@ -599,6 +591,8 @@ editor_constructed (GObject *object)
        priv->html_toolbar = g_object_ref (widget);
        gtk_widget_show (widget);
 
+       /* Construct the main editing area. */
+
        widget = gtk_scrolled_window_new (NULL, NULL);
        gtk_scrolled_window_set_policy (
                GTK_SCROLLED_WINDOW (widget),
@@ -614,7 +608,8 @@ editor_constructed (GObject *object)
        widget = GTK_WIDGET (e_editor_get_editor_widget (editor));
        gtk_container_add (GTK_CONTAINER (priv->scrolled_window), widget);
        gtk_widget_show (widget);
-       g_signal_connect_swapped (widget, "popup-event",
+       g_signal_connect_swapped (
+               widget, "popup-event",
                G_CALLBACK (editor_show_popup), editor);
 
        /* Add some combo boxes to the "edit" toolbar. */
@@ -689,8 +684,9 @@ editor_constructed (GObject *object)
 static void
 editor_dispose (GObject *object)
 {
-       EEditor *editor = E_EDITOR (object);
-       EEditorPrivate *priv = editor->priv;
+       EEditorPrivate *priv;
+
+       priv = E_EDITOR_GET_PRIVATE (object);
 
        g_clear_object (&priv->manager);
        g_clear_object (&priv->core_actions);
@@ -717,41 +713,45 @@ editor_dispose (GObject *object)
        g_clear_object (&priv->scrolled_window);
 
        g_clear_object (&priv->editor_widget);
+
+       /* Chain up to parent's dispose() method. */
+       G_OBJECT_CLASS (e_editor_parent_class)->dispose (object);
 }
 
 static void
-e_editor_class_init (EEditorClass *klass)
+e_editor_class_init (EEditorClass *class)
 {
        GObjectClass *object_class;
        GtkWidgetClass *widget_class;
 
-       g_type_class_add_private (klass, sizeof (EEditorPrivate));
+       g_type_class_add_private (class, sizeof (EEditorPrivate));
 
-       object_class = G_OBJECT_CLASS (klass);
+       object_class = G_OBJECT_CLASS (class);
        object_class->set_property = editor_set_property;
        object_class->get_property = editor_get_property;
        object_class->constructed = editor_constructed;
        object_class->dispose = editor_dispose;
 
-       widget_class = GTK_WIDGET_CLASS (klass);
+       widget_class = GTK_WIDGET_CLASS (class);
        widget_class->parent_set = editor_parent_changed;
 
-       klass->update_actions = editor_update_actions;
-       klass->spell_languages_changed = editor_spell_languages_changed;
+       class->update_actions = editor_update_actions;
+       class->spell_languages_changed = editor_spell_languages_changed;
 
        g_object_class_install_property (
                object_class,
                PROP_FILENAME,
                g_param_spec_string (
                        "filename",
-                       NULL,
-                       NULL,
-                       NULL,
-                       G_PARAM_READWRITE));
+                       NULL,
+                       NULL,
+                       NULL,
+                       G_PARAM_READWRITE |
+                       G_PARAM_STATIC_STRINGS));
 
        signals[UPDATE_ACTIONS] = g_signal_new (
                "update-actions",
-               G_TYPE_FROM_CLASS (klass),
+               G_TYPE_FROM_CLASS (class),
                G_SIGNAL_RUN_LAST,
                G_STRUCT_OFFSET (EEditorClass, update_actions),
                NULL, NULL,
@@ -761,7 +761,7 @@ e_editor_class_init (EEditorClass *klass)
 
        signals[SPELL_LANGUAGES_CHANGED] = g_signal_new (
                "spell-languages-changed",
-               G_OBJECT_CLASS_TYPE (klass),
+               G_OBJECT_CLASS_TYPE (class),
                G_SIGNAL_RUN_LAST,
                G_STRUCT_OFFSET (EEditorClass, spell_languages_changed),
                NULL, NULL,
@@ -774,11 +774,10 @@ static void
 e_editor_init (EEditor *editor)
 {
        EEditorPrivate *priv;
-       GError *error;
        gchar *filename;
+       GError *error = NULL;
 
-       editor->priv = G_TYPE_INSTANCE_GET_PRIVATE (
-               editor, E_TYPE_EDITOR, EEditorPrivate);
+       editor->priv = E_EDITOR_GET_PRIVATE (editor);
 
        priv = editor->priv;
 
@@ -794,13 +793,10 @@ e_editor_init (EEditor *editor)
        priv->selection = e_editor_widget_get_selection (priv->editor_widget);
 
        filename = editor_find_ui_file ("e-editor-manager.ui");
-
-       error = NULL;
        if (!gtk_ui_manager_add_ui_from_file (priv->manager, filename, &error)) {
                g_critical ("Couldn't load builder file: %s\n", error->message);
                g_clear_error (&error);
        }
-
        g_free (filename);
 
        editor_actions_init (editor);
@@ -857,24 +853,25 @@ e_editor_get_ui_manager (EEditor *editor)
  */
 GtkAction *
 e_editor_get_action (EEditor *editor,
-                    const gchar *action_name)
+                     const gchar *action_name)
 {
        GtkUIManager *manager;
        GtkAction *action = NULL;
-       GList *iter;
+       GList *list;
 
        g_return_val_if_fail (E_IS_EDITOR (editor), NULL);
        g_return_val_if_fail (action_name != NULL, NULL);
 
        manager = e_editor_get_ui_manager (editor);
-       iter = gtk_ui_manager_get_action_groups (manager);
+       list = gtk_ui_manager_get_action_groups (manager);
 
-       while (iter != NULL && action == NULL) {
-               GtkActionGroup *action_group = iter->data;
+       while (list != NULL && action == NULL) {
+               GtkActionGroup *action_group = list->data;
 
                action = gtk_action_group_get_action (
                        action_group, action_name);
-               iter = g_list_next (iter);
+
+               list = g_list_next (list);
        }
 
        g_return_val_if_fail (action != NULL, NULL);
@@ -892,26 +889,26 @@ e_editor_get_action (EEditor *editor,
  */
 GtkActionGroup *
 e_editor_get_action_group (EEditor *editor,
-                          const gchar *group_name)
+                           const gchar *group_name)
 {
        GtkUIManager *manager;
-       GList *iter;
+       GList *list;
 
        g_return_val_if_fail (E_IS_EDITOR (editor), NULL);
        g_return_val_if_fail (group_name != NULL, NULL);
 
        manager = e_editor_get_ui_manager (editor);
-       iter = gtk_ui_manager_get_action_groups (manager);
+       list = gtk_ui_manager_get_action_groups (manager);
 
-       while (iter != NULL) {
-               GtkActionGroup *action_group = iter->data;
+       while (list != NULL) {
+               GtkActionGroup *action_group = list->data;
                const gchar *name;
 
                name = gtk_action_group_get_name (action_group);
                if (strcmp (name, group_name) == 0)
                        return action_group;
 
-               iter = g_list_next (iter);
+               list = g_list_next (list);
        }
 
        return NULL;
@@ -919,7 +916,7 @@ e_editor_get_action_group (EEditor *editor,
 
 GtkWidget *
 e_editor_get_managed_widget (EEditor *editor,
-                            const gchar *widget_path)
+                             const gchar *widget_path)
 {
        GtkUIManager *manager;
        GtkWidget *widget;
@@ -954,11 +951,12 @@ e_editor_get_filename (EEditor *editor)
  * @editor: an #EEditor
  * @filename: Target file
  *
- * Sets file to which content of the editor should be saved (see #e_editor_save())
+ * Sets file to which content of the editor should be saved (see
+ * e_editor_save()).
  */
 void
 e_editor_set_filename (EEditor *editor,
-                      const gchar *filename)
+                       const gchar *filename)
 {
        g_return_if_fail (E_IS_EDITOR (editor));
 
@@ -979,8 +977,8 @@ e_editor_set_filename (EEditor *editor,
  * Inserts @child right between the toolbars and the editor widget itself.
  */
 void
-e_editor_pack_above (EEditor* editor,
-                    GtkWidget* child)
+e_editor_pack_above (EEditor *editor,
+                     GtkWidget *child)
 {
        g_return_if_fail (E_IS_EDITOR (editor));
        g_return_if_fail (GTK_IS_WIDGET (child));
@@ -1004,9 +1002,9 @@ e_editor_pack_above (EEditor* editor,
  */
 gboolean
 e_editor_save (EEditor *editor,
-              const gchar *filename,
-              gboolean as_html,
-              GError **error)
+               const gchar *filename,
+               gboolean as_html,
+               GError **error)
 {
        GFile *file;
        GFileOutputStream *stream;
@@ -1019,17 +1017,17 @@ e_editor_save (EEditor *editor,
        if ((error && *error) || !stream)
                return FALSE;
 
-       if (as_html) {
+       if (as_html)
                content = e_editor_widget_get_text_html (
-                               E_EDITOR_WIDGET (editor));
-       } else {
+                       E_EDITOR_WIDGET (editor));
+       else
                content = e_editor_widget_get_text_plain (
-                               E_EDITOR_WIDGET (editor));
-       }
+                       E_EDITOR_WIDGET (editor));
 
        if (!content || !*content) {
-               g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
-                            "Failed to obtain content of editor");
+               g_set_error (
+                       error, G_IO_ERROR, G_IO_ERROR_FAILED,
+                       "Failed to obtain content of editor");
                return FALSE;
        }
 
@@ -1056,20 +1054,14 @@ e_editor_save (EEditor *editor,
 void
 e_editor_emit_spell_languages_changed (EEditor *editor)
 {
-       GList *dictionaries, *iter;
+       GList *dictionaries;
 
        g_return_if_fail (editor != NULL);
 
-       dictionaries = NULL;
-       for (iter = editor->priv->active_dictionaries; iter; iter = g_list_next (iter)) {
-               EnchantDict *dictionary = iter->data;
-
-               dictionaries = g_list_prepend (dictionaries, dictionary);
-       }
-
-       dictionaries = g_list_reverse (dictionaries);
+       dictionaries = g_list_copy (editor->priv->active_dictionaries);
 
-       g_signal_emit (editor, signals[SPELL_LANGUAGES_CHANGED], 0, dictionaries);
+       g_signal_emit (
+               editor, signals[SPELL_LANGUAGES_CHANGED], 0, dictionaries);
 
        g_list_free (dictionaries);
 }
diff --git a/e-util/e-editor.h b/e-util/e-editor.h
index 76e3c62..50ee5f2 100644
--- a/e-util/e-editor.h
+++ b/e-util/e-editor.h
@@ -55,7 +55,6 @@ typedef struct _EEditorPrivate EEditorPrivate;
 
 struct _EEditor {
        GtkGrid parent;
-
        EEditorPrivate *priv;
 };
 
@@ -64,17 +63,14 @@ struct _EEditorClass {
 
        void            (*update_actions)       (EEditor *editor,
                                                 GdkEventButton *event);
-
        void            (*spell_languages_changed)
                                                (EEditor *editor,
                                                 GList *dictionaries);
 };
 
-GType          e_editor_get_type               (void);
+GType          e_editor_get_type               (void) G_GNUC_CONST;
 GtkWidget *    e_editor_new                    (void);
-
-EEditorWidget* e_editor_get_editor_widget      (EEditor *editor);
-
+EEditorWidget *        e_editor_get_editor_widget      (EEditor *editor);
 GtkBuilder *   e_editor_get_builder            (EEditor *editor);
 GtkUIManager * e_editor_get_ui_manager         (EEditor *editor);
 GtkAction *    e_editor_get_action             (EEditor *editor,
@@ -83,20 +79,16 @@ GtkActionGroup *e_editor_get_action_group   (EEditor *editor,
                                                 const gchar *group_name);
 GtkWidget *    e_editor_get_widget             (EEditor *editor,
                                                 const gchar *widget_name);
-GtkWidget *    e_editor_get_managed_widget
-                                               (EEditor *editor,
+GtkWidget *    e_editor_get_managed_widget     (EEditor *editor,
                                                 const gchar *widget_path);
 const gchar *  e_editor_get_filename           (EEditor *editor);
 void           e_editor_set_filename           (EEditor *editor,
                                                 const gchar *filename);
-
 void           e_editor_pack_above             (EEditor *editor,
                                                 GtkWidget *child);
-
 void           e_editor_emit_spell_languages_changed
                                                (EEditor *editor);
 
-
 /*****************************************************************************
  * High-Level Editing Interface
  *****************************************************************************/
diff --git a/e-util/e-emoticon-action.c b/e-util/e-emoticon-action.c
index cc9a640..0850d33 100644
--- a/e-util/e-emoticon-action.c
+++ b/e-util/e-emoticon-action.c
@@ -25,6 +25,10 @@
 #include "e-emoticon-chooser-menu.h"
 #include "e-emoticon-tool-button.h"
 
+#define E_EMOTICON_ACTION_GET_PRIVATE(obj) \
+       (G_TYPE_INSTANCE_GET_PRIVATE \
+       ((obj), E_TYPE_EMOTICON_ACTION, EEmoticonActionPrivate))
+
 struct _EEmoticonActionPrivate {
        GList *choosers;
        EEmoticonChooser *current_chooser;
@@ -35,11 +39,21 @@ enum {
        PROP_CURRENT_FACE
 };
 
-static gpointer parent_class;
+/* Forward Declarations */
+static void    e_emoticon_action_interface_init
+                                       (EEmoticonChooserInterface *interface);
+
+G_DEFINE_TYPE_WITH_CODE (
+       EEmoticonAction,
+       e_emoticon_action,
+       GTK_TYPE_ACTION,
+       G_IMPLEMENT_INTERFACE (
+               E_TYPE_EMOTICON_CHOOSER,
+               e_emoticon_action_interface_init))
 
 static void
 emoticon_action_proxy_item_activated_cb (EEmoticonAction *action,
-                                        EEmoticonChooser *chooser)
+                                         EEmoticonChooser *chooser)
 {
        action->priv->current_chooser = chooser;
 
@@ -48,9 +62,9 @@ emoticon_action_proxy_item_activated_cb (EEmoticonAction *action,
 
 static void
 emoticon_action_set_property (GObject *object,
-                             guint property_id,
-                             const GValue *value,
-                             GParamSpec *pspec)
+                              guint property_id,
+                              const GValue *value,
+                              GParamSpec *pspec)
 {
        switch (property_id) {
                case PROP_CURRENT_FACE:
@@ -65,9 +79,9 @@ emoticon_action_set_property (GObject *object,
 
 static void
 emoticon_action_get_property (GObject *object,
-                             guint property_id,
-                             GValue *value,
-                             GParamSpec *pspec)
+                              guint property_id,
+                              GValue *value,
+                              GParamSpec *pspec)
 {
        switch (property_id) {
                case PROP_CURRENT_FACE:
@@ -85,12 +99,12 @@ emoticon_action_finalize (GObject *object)
 {
        EEmoticonActionPrivate *priv;
 
-       priv = E_EMOTICON_ACTION (object)->priv;
+       priv = E_EMOTICON_ACTION_GET_PRIVATE (object);
 
        g_list_free (priv->choosers);
 
        /* Chain up to parent's finalize() method. */
-       G_OBJECT_CLASS (parent_class)->finalize (object);
+       G_OBJECT_CLASS (e_emoticon_action_parent_class)->finalize (object);
 }
 
 static void
@@ -98,7 +112,7 @@ emoticon_action_activate (GtkAction *action)
 {
        EEmoticonActionPrivate *priv;
 
-       priv = E_EMOTICON_ACTION (action)->priv;
+       priv = E_EMOTICON_ACTION_GET_PRIVATE (action);
 
        priv->current_chooser = NULL;
 }
@@ -125,11 +139,11 @@ emoticon_action_create_tool_item (GtkAction *action)
 
 static void
 emoticon_action_connect_proxy (GtkAction *action,
-                              GtkWidget *proxy)
+                               GtkWidget *proxy)
 {
        EEmoticonActionPrivate *priv;
 
-       priv = E_EMOTICON_ACTION (action)->priv;
+       priv = E_EMOTICON_ACTION_GET_PRIVATE (action);
 
        if (!E_IS_EMOTICON_CHOOSER (proxy))
                goto chainup;
@@ -143,21 +157,23 @@ emoticon_action_connect_proxy (GtkAction *action,
 
 chainup:
        /* Chain up to parent's connect_proxy() method. */
-       GTK_ACTION_CLASS (parent_class)->connect_proxy (action, proxy);
+       GTK_ACTION_CLASS (e_emoticon_action_parent_class)->
+               connect_proxy (action, proxy);
 }
 
 static void
 emoticon_action_disconnect_proxy (GtkAction *action,
-                                 GtkWidget *proxy)
+                                  GtkWidget *proxy)
 {
        EEmoticonActionPrivate *priv;
 
-       priv = E_EMOTICON_ACTION (action)->priv;
+       priv = E_EMOTICON_ACTION_GET_PRIVATE (action);
 
        priv->choosers = g_list_remove (priv->choosers, proxy);
 
        /* Chain up to parent's disconnect_proxy() method. */
-       GTK_ACTION_CLASS (parent_class)->disconnect_proxy (action, proxy);
+       GTK_ACTION_CLASS (e_emoticon_action_parent_class)->
+               disconnect_proxy (action, proxy);
 }
 
 static GtkWidget *
@@ -166,7 +182,7 @@ emoticon_action_create_menu (GtkAction *action)
        EEmoticonActionPrivate *priv;
        GtkWidget *widget;
 
-       priv = E_EMOTICON_ACTION (action)->priv;
+       priv = E_EMOTICON_ACTION_GET_PRIVATE (action);
 
        widget = e_emoticon_chooser_menu_new ();
 
@@ -185,7 +201,7 @@ emoticon_action_get_current_emoticon (EEmoticonChooser *chooser)
        EEmoticonActionPrivate *priv;
        EEmoticon *emoticon = NULL;
 
-       priv = E_EMOTICON_ACTION (chooser)->priv;
+       priv = E_EMOTICON_ACTION_GET_PRIVATE (chooser);
 
        if (priv->current_chooser != NULL)
                emoticon = e_emoticon_chooser_get_current_emoticon (
@@ -196,12 +212,12 @@ emoticon_action_get_current_emoticon (EEmoticonChooser *chooser)
 
 static void
 emoticon_action_set_current_emoticon (EEmoticonChooser *chooser,
-                                     EEmoticon *emoticon)
+                                      EEmoticon *emoticon)
 {
        EEmoticonActionPrivate *priv;
        GList *iter;
 
-       priv = E_EMOTICON_ACTION (chooser)->priv;
+       priv = E_EMOTICON_ACTION_GET_PRIVATE (chooser);
 
        for (iter = priv->choosers; iter != NULL; iter = iter->next) {
                EEmoticonChooser *proxy_chooser = iter->data;
@@ -211,12 +227,11 @@ emoticon_action_set_current_emoticon (EEmoticonChooser *chooser,
 }
 
 static void
-emoticon_action_class_init (EEmoticonActionClass *class)
+e_emoticon_action_class_init (EEmoticonActionClass *class)
 {
        GObjectClass *object_class;
        GtkActionClass *action_class;
 
-       parent_class = g_type_class_peek_parent (class);
        g_type_class_add_private (class, sizeof (EEmoticonAction));
 
        object_class = G_OBJECT_CLASS (class);
@@ -237,59 +252,23 @@ emoticon_action_class_init (EEmoticonActionClass *class)
 }
 
 static void
-emoticon_action_iface_init (EEmoticonChooserIface *iface)
+e_emoticon_action_interface_init (EEmoticonChooserInterface *interface)
 {
-       iface->get_current_emoticon = emoticon_action_get_current_emoticon;
-       iface->set_current_emoticon = emoticon_action_set_current_emoticon;
+       interface->get_current_emoticon = emoticon_action_get_current_emoticon;
+       interface->set_current_emoticon = emoticon_action_set_current_emoticon;
 }
 
 static void
-emoticon_action_init (EEmoticonAction *action)
+e_emoticon_action_init (EEmoticonAction *action)
 {
-       action->priv = G_TYPE_INSTANCE_GET_PRIVATE (
-               action, E_TYPE_EMOTICON_ACTION, EEmoticonActionPrivate);
-}
-
-GType
-e_emoticon_action_get_type (void)
-{
-       static GType type = 0;
-
-       if (G_UNLIKELY (type == 0)) {
-               static const GTypeInfo type_info = {
-                       sizeof (EEmoticonActionClass),
-                       (GBaseInitFunc) NULL,
-                       (GBaseFinalizeFunc) NULL,
-                       (GClassInitFunc) emoticon_action_class_init,
-                       (GClassFinalizeFunc) NULL,
-                       NULL,  /* class_data */
-                       sizeof (EEmoticonAction),
-                       0,     /* n_preallocs */
-                       (GInstanceInitFunc) emoticon_action_init,
-                       NULL   /* value_table */
-               };
-
-               static const GInterfaceInfo iface_info = {
-                       (GInterfaceInitFunc) emoticon_action_iface_init,
-                       (GInterfaceFinalizeFunc) NULL,
-                       NULL  /* interemoticon_data */
-               };
-
-               type = g_type_register_static (
-                       GTK_TYPE_ACTION, "EEmoticonAction", &type_info, 0);
-
-               g_type_add_interface_static (
-                       type, E_TYPE_EMOTICON_CHOOSER, &iface_info);
-       }
-
-       return type;
+       action->priv = E_EMOTICON_ACTION_GET_PRIVATE (action);
 }
 
 GtkAction *
 e_emoticon_action_new (const gchar *name,
-                      const gchar *label,
-                      const gchar *tooltip,
-                      const gchar *stock_id)
+                       const gchar *label,
+                       const gchar *tooltip,
+                       const gchar *stock_id)
 {
        g_return_val_if_fail (name != NULL, NULL);
 
diff --git a/e-util/e-emoticon-action.h b/e-util/e-emoticon-action.h
index 3e62881..0e450e8 100644
--- a/e-util/e-emoticon-action.h
+++ b/e-util/e-emoticon-action.h
@@ -62,7 +62,7 @@ struct _EEmoticonActionClass {
        GtkActionClass parent_class;
 };
 
-GType          e_emoticon_action_get_type      (void);
+GType          e_emoticon_action_get_type      (void) G_GNUC_CONST;
 GtkAction *    e_emoticon_action_new           (const gchar *name,
                                                 const gchar *label,
                                                 const gchar *tooltip,
diff --git a/e-util/e-emoticon-chooser-menu.c b/e-util/e-emoticon-chooser-menu.c
index c70c034..f2ed337 100644
--- a/e-util/e-emoticon-chooser-menu.c
+++ b/e-util/e-emoticon-chooser-menu.c
@@ -33,13 +33,23 @@ enum {
        PROP_CURRENT_FACE
 };
 
-static gpointer parent_class;
+/* Forward Declarations */
+static void    e_emoticon_chooser_menu_interface_init
+                                       (EEmoticonChooserInterface *interface);
+
+G_DEFINE_TYPE_WITH_CODE (
+       EEmoticonChooserMenu,
+       e_emoticon_chooser_menu,
+       GTK_TYPE_MENU,
+       G_IMPLEMENT_INTERFACE (
+               E_TYPE_EMOTICON_CHOOSER,
+               e_emoticon_chooser_menu_interface_init))
 
 static void
 emoticon_chooser_menu_set_property (GObject *object,
-                                   guint property_id,
-                                   const GValue *value,
-                                   GParamSpec *pspec)
+                                    guint property_id,
+                                    const GValue *value,
+                                    GParamSpec *pspec)
 {
        switch (property_id) {
                case PROP_CURRENT_FACE:
@@ -54,9 +64,9 @@ emoticon_chooser_menu_set_property (GObject *object,
 
 static void
 emoticon_chooser_menu_get_property (GObject *object,
-                                   guint property_id,
-                                   GValue *value,
-                                   GParamSpec *pspec)
+                                    guint property_id,
+                                    GValue *value,
+                                    GParamSpec *pspec)
 {
        switch (property_id) {
                case PROP_CURRENT_FACE:
@@ -84,7 +94,7 @@ emoticon_chooser_menu_get_current_emoticon (EEmoticonChooser *chooser)
 
 static void
 emoticon_chooser_menu_set_current_emoticon (EEmoticonChooser *chooser,
-                                           EEmoticon *emoticon)
+                                            EEmoticon *emoticon)
 {
        GList *list, *iter;
 
@@ -109,12 +119,10 @@ emoticon_chooser_menu_set_current_emoticon (EEmoticonChooser *chooser,
 }
 
 static void
-emoticon_chooser_menu_class_init (EEmoticonChooserMenuClass *class)
+e_emoticon_chooser_menu_class_init (EEmoticonChooserMenuClass *class)
 {
        GObjectClass *object_class;
 
-       parent_class = g_type_class_peek_parent (class);
-
        object_class = G_OBJECT_CLASS (class);
        object_class->set_property = emoticon_chooser_menu_set_property;
        object_class->get_property = emoticon_chooser_menu_get_property;
@@ -124,14 +132,16 @@ emoticon_chooser_menu_class_init (EEmoticonChooserMenuClass *class)
 }
 
 static void
-emoticon_chooser_menu_iface_init (EEmoticonChooserIface *iface)
+e_emoticon_chooser_menu_interface_init (EEmoticonChooserInterface *interface)
 {
-       iface->get_current_emoticon = emoticon_chooser_menu_get_current_emoticon;
-       iface->set_current_emoticon = emoticon_chooser_menu_set_current_emoticon;
+       interface->get_current_emoticon =
+               emoticon_chooser_menu_get_current_emoticon;
+       interface->set_current_emoticon =
+               emoticon_chooser_menu_set_current_emoticon;
 }
 
 static void
-emoticon_chooser_menu_init (EEmoticonChooserMenu *chooser_menu)
+e_emoticon_chooser_menu_init (EEmoticonChooserMenu *chooser_menu)
 {
        EEmoticonChooser *chooser;
        GList *list, *iter;
@@ -167,42 +177,6 @@ emoticon_chooser_menu_init (EEmoticonChooserMenu *chooser_menu)
        g_list_free (list);
 }
 
-GType
-e_emoticon_chooser_menu_get_type (void)
-{
-       static GType type = 0;
-
-       if (G_UNLIKELY (type == 0)) {
-               static const GTypeInfo type_info = {
-                       sizeof (EEmoticonChooserMenuClass),
-                       (GBaseInitFunc) NULL,
-                       (GBaseFinalizeFunc) NULL,
-                       (GClassInitFunc) emoticon_chooser_menu_class_init,
-                       (GClassFinalizeFunc) NULL,
-                       NULL,  /* class_data */
-                       sizeof (EEmoticonChooserMenu),
-                       0,     /* n_preallocs */
-                       (GInstanceInitFunc) emoticon_chooser_menu_init,
-                       NULL   /* value_table */
-               };
-
-               static const GInterfaceInfo iface_info = {
-                       (GInterfaceInitFunc) emoticon_chooser_menu_iface_init,
-                       (GInterfaceFinalizeFunc) NULL,
-                       NULL  /* interface_data */
-               };
-
-               type = g_type_register_static (
-                       GTK_TYPE_MENU, "EEmoticonChooserMenu",
-                       &type_info, 0);
-
-               g_type_add_interface_static (
-                       type, E_TYPE_EMOTICON_CHOOSER, &iface_info);
-       }
-
-       return type;
-}
-
 GtkWidget *
 e_emoticon_chooser_menu_new (void)
 {
diff --git a/e-util/e-emoticon-chooser-menu.h b/e-util/e-emoticon-chooser-menu.h
index 4c17e9d..d4f9954 100644
--- a/e-util/e-emoticon-chooser-menu.h
+++ b/e-util/e-emoticon-chooser-menu.h
@@ -61,8 +61,9 @@ struct _EEmoticonChooserMenuClass {
        GtkMenuClass parent_class;
 };
 
-GType          e_emoticon_chooser_menu_get_type        (void);
-GtkWidget *    e_emoticon_chooser_menu_new             (void);
+GType          e_emoticon_chooser_menu_get_type
+                                               (void) G_GNUC_CONST;
+GtkWidget *    e_emoticon_chooser_menu_new     (void);
 
 G_END_DECLS
 
diff --git a/e-util/e-emoticon-chooser.c b/e-util/e-emoticon-chooser.c
index 550ffc8..44ce06b 100644
--- a/e-util/e-emoticon-chooser.c
+++ b/e-util/e-emoticon-chooser.c
@@ -86,11 +86,16 @@ enum {
 
 static guint signals[LAST_SIGNAL];
 
+G_DEFINE_INTERFACE (
+       EEmoticonChooser,
+       e_emoticon_chooser,
+       G_TYPE_OBJECT)
+
 static void
-emoticon_chooser_class_init (EEmoticonChooserIface *iface)
+e_emoticon_chooser_default_init (EEmoticonChooserInterface *interface)
 {
        g_object_interface_install_property (
-               iface,
+               interface,
                g_param_spec_boxed (
                        "current-emoticon",
                        "Current Emoticon",
@@ -100,67 +105,39 @@ emoticon_chooser_class_init (EEmoticonChooserIface *iface)
 
        signals[ITEM_ACTIVATED] = g_signal_new (
                "item-activated",
-               G_TYPE_FROM_INTERFACE (iface),
+               G_TYPE_FROM_INTERFACE (interface),
                G_SIGNAL_RUN_LAST,
-               G_STRUCT_OFFSET (EEmoticonChooserIface, item_activated),
+               G_STRUCT_OFFSET (EEmoticonChooserInterface, item_activated),
                NULL, NULL,
                g_cclosure_marshal_VOID__VOID,
                G_TYPE_NONE, 0);
 }
 
-GType
-e_emoticon_chooser_get_type (void)
-{
-       static GType type = 0;
-
-       if (G_UNLIKELY (type == 0)) {
-               static const GTypeInfo type_info = {
-                       sizeof (EEmoticonChooserIface),
-                       (GBaseInitFunc) NULL,
-                       (GBaseFinalizeFunc) NULL,
-                       (GClassInitFunc) emoticon_chooser_class_init,
-                       (GClassFinalizeFunc) NULL,
-                       NULL,  /* class_data */
-                       0,     /* instance_size */
-                       0,     /* n_preallocs */
-                       NULL,  /* instance_init */
-                       NULL   /* value_table */
-               };
-
-               type = g_type_register_static (
-                       G_TYPE_INTERFACE, "EEmoticonChooser", &type_info, 0);
-
-               g_type_interface_add_prerequisite (type, G_TYPE_OBJECT);
-       }
-
-       return type;
-}
-
 EEmoticon *
 e_emoticon_chooser_get_current_emoticon (EEmoticonChooser *chooser)
 {
-       EEmoticonChooserIface *iface;
+       EEmoticonChooserInterface *interface;
 
        g_return_val_if_fail (E_IS_EMOTICON_CHOOSER (chooser), NULL);
 
-       iface = E_EMOTICON_CHOOSER_GET_IFACE (chooser);
-       g_return_val_if_fail (iface->get_current_emoticon != NULL, NULL);
+       interface = E_EMOTICON_CHOOSER_GET_INTERFACE (chooser);
+       g_return_val_if_fail (interface->get_current_emoticon != NULL, NULL);
 
-       return iface->get_current_emoticon (chooser);
+       return interface->get_current_emoticon (chooser);
 }
 
 void
 e_emoticon_chooser_set_current_emoticon (EEmoticonChooser *chooser,
-                                        EEmoticon *emoticon)
+                                         EEmoticon *emoticon)
 {
-       EEmoticonChooserIface *iface;
+       EEmoticonChooserInterface *interface;
 
        g_return_if_fail (E_IS_EMOTICON_CHOOSER (chooser));
 
-       iface = E_EMOTICON_CHOOSER_GET_IFACE (chooser);
-       g_return_if_fail (iface->set_current_emoticon != NULL);
+       interface = E_EMOTICON_CHOOSER_GET_INTERFACE (chooser);
+       g_return_if_fail (interface->set_current_emoticon != NULL);
 
-       iface->set_current_emoticon (chooser, emoticon);
+       interface->set_current_emoticon (chooser, emoticon);
 }
 
 void
diff --git a/e-util/e-emoticon-chooser.h b/e-util/e-emoticon-chooser.h
index 1a82d9b..14e899f 100644
--- a/e-util/e-emoticon-chooser.h
+++ b/e-util/e-emoticon-chooser.h
@@ -37,17 +37,17 @@
 #define E_IS_EMOTICON_CHOOSER(obj) \
        (G_TYPE_CHECK_INSTANCE_TYPE \
        ((obj), E_TYPE_EMOTICON_CHOOSER))
-#define E_EMOTICON_CHOOSER_GET_IFACE(obj) \
+#define E_EMOTICON_CHOOSER_GET_INTERFACE(obj) \
        (G_TYPE_INSTANCE_GET_INTERFACE \
-       ((obj), E_TYPE_EMOTICON_CHOOSER, EEmoticonChooserIface))
+       ((obj), E_TYPE_EMOTICON_CHOOSER, EEmoticonChooserInterface))
 
 G_BEGIN_DECLS
 
 typedef struct _EEmoticonChooser EEmoticonChooser;
-typedef struct _EEmoticonChooserIface EEmoticonChooserIface;
+typedef struct _EEmoticonChooserInterface EEmoticonChooserInterface;
 
-struct _EEmoticonChooserIface {
-       GTypeInterface parent_iface;
+struct _EEmoticonChooserInterface {
+       GTypeInterface parent_interface;
 
        /* Methods */
        EEmoticon *     (*get_current_emoticon) (EEmoticonChooser *chooser);
@@ -58,8 +58,7 @@ struct _EEmoticonChooserIface {
        void            (*item_activated)       (EEmoticonChooser *chooser);
 };
 
-GType          e_emoticon_chooser_get_type     (void);
-
+GType          e_emoticon_chooser_get_type     (void) G_GNUC_CONST;
 EEmoticon *    e_emoticon_chooser_get_current_emoticon
                                                (EEmoticonChooser *chooser);
 void           e_emoticon_chooser_set_current_emoticon
@@ -69,7 +68,6 @@ void          e_emoticon_chooser_item_activated
                                                (EEmoticonChooser *chooser);
 
 GList *                e_emoticon_chooser_get_items    (void);
-
 const EEmoticon *
                e_emoticon_chooser_lookup_emoticon
                                                (const gchar *icon_name);
diff --git a/e-util/e-emoticon-tool-button.c b/e-util/e-emoticon-tool-button.c
index 7f28a1e..e544dc4 100644
--- a/e-util/e-emoticon-tool-button.c
+++ b/e-util/e-emoticon-tool-button.c
@@ -35,6 +35,10 @@
 
 #include "e-emoticon-chooser.h"
 
+#define E_EMOTICON_TOOL_BUTTON_GET_PRIVATE(obj) \
+       (G_TYPE_INSTANCE_GET_PRIVATE \
+       ((obj), E_TYPE_EMOTICON_TOOL_BUTTON, EEmoticonToolButtonPrivate))
+
 /* XXX Should calculate this dynamically. */
 #define NUM_ROWS       7
 #define NUM_COLS       3
@@ -62,9 +66,20 @@ struct _EEmoticonToolButtonPrivate {
        GdkDevice *grab_mouse;
 };
 
-static gpointer parent_class;
 static guint signals[LAST_SIGNAL];
 
+/* Forward Declarations */
+static void    e_emoticon_tool_button_interface_init
+                                       (EEmoticonChooserInterface *interface);
+
+G_DEFINE_TYPE_WITH_CODE (
+       EEmoticonToolButton,
+       e_emoticon_tool_button,
+       GTK_TYPE_TOGGLE_TOOL_BUTTON,
+       G_IMPLEMENT_INTERFACE (
+               E_TYPE_EMOTICON_CHOOSER,
+               e_emoticon_tool_button_interface_init))
+
 /* XXX Copied from _gtk_toolbar_elide_underscores() */
 static gchar *
 emoticon_tool_button_elide_underscores (const gchar *original)
@@ -141,7 +156,7 @@ emoticon_tool_button_reposition_window (EEmoticonToolButton *button)
 
 static void
 emoticon_tool_button_emoticon_clicked_cb (EEmoticonToolButton *button,
-                                         GtkWidget *emoticon_button)
+                                          GtkWidget *emoticon_button)
 {
        button->priv->active_button = emoticon_button;
        e_emoticon_tool_button_popdown (button);
@@ -149,8 +164,8 @@ emoticon_tool_button_emoticon_clicked_cb (EEmoticonToolButton *button,
 
 static gboolean
 emoticon_tool_button_emoticon_release_event_cb (EEmoticonToolButton *button,
-                                               GdkEventButton *event,
-                                               GtkButton *emoticon_button)
+                                                GdkEventButton *event,
+                                                GtkButton *emoticon_button)
 {
        GtkStateType state;
 
@@ -164,7 +179,7 @@ emoticon_tool_button_emoticon_release_event_cb (EEmoticonToolButton *button,
 
 static gboolean
 emoticon_tool_button_button_release_event_cb (EEmoticonToolButton *button,
-                                             GdkEventButton *event)
+                                              GdkEventButton *event)
 {
        GtkToggleToolButton *tool_button;
        GtkWidget *event_widget;
@@ -209,7 +224,7 @@ emoticon_tool_button_child_hide_cb (EEmoticonToolButton *button)
 
 static gboolean
 emoticon_tool_button_child_key_press_event_cb (EEmoticonToolButton *button,
-                                              GdkEventKey *event)
+                                               GdkEventKey *event)
 {
        GtkWidget *window = button->priv->window;
 
@@ -221,9 +236,9 @@ emoticon_tool_button_child_key_press_event_cb (EEmoticonToolButton *button,
 
 static void
 emoticon_tool_button_set_property (GObject *object,
-                                  guint property_id,
-                                  const GValue *value,
-                                  GParamSpec *pspec)
+                                   guint property_id,
+                                   const GValue *value,
+                                   GParamSpec *pspec)
 {
        switch (property_id) {
                case PROP_CURRENT_EMOTICON:
@@ -247,13 +262,13 @@ emoticon_tool_button_set_property (GObject *object,
 
 static void
 emoticon_tool_button_get_property (GObject *object,
-                                  guint property_id,
-                                  GValue *value,
-                                  GParamSpec *pspec)
+                                   guint property_id,
+                                   GValue *value,
+                                   GParamSpec *pspec)
 {
        EEmoticonToolButtonPrivate *priv;
 
-       priv = E_EMOTICON_TOOL_BUTTON (object)->priv;
+       priv = E_EMOTICON_TOOL_BUTTON_GET_PRIVATE (object);
 
        switch (property_id) {
                case PROP_CURRENT_EMOTICON:
@@ -276,7 +291,7 @@ emoticon_tool_button_dispose (GObject *object)
 {
        EEmoticonToolButtonPrivate *priv;
 
-       priv = E_EMOTICON_TOOL_BUTTON (object)->priv;
+       priv = E_EMOTICON_TOOL_BUTTON_GET_PRIVATE (object);
 
        if (priv->window != NULL) {
                g_object_unref (priv->window);
@@ -284,12 +299,12 @@ emoticon_tool_button_dispose (GObject *object)
        }
 
        /* Chain up to parent's dispose() method. */
-       G_OBJECT_CLASS (parent_class)->dispose (object);
+       G_OBJECT_CLASS (e_emoticon_tool_button_parent_class)->dispose (object);
 }
 
 static gboolean
 emoticon_tool_button_press_event (GtkWidget *widget,
-                              GdkEventButton *event)
+                                  GdkEventButton *event)
 {
        EEmoticonToolButton *button;
        GtkToggleToolButton *toggle_button;
@@ -368,7 +383,8 @@ emoticon_tool_button_popup (EEmoticonToolButton *button)
        /* Try to grab the pointer and keyboard. */
        window = gtk_widget_get_window (button->priv->window);
        grab_status = !keyboard ||
-               gdk_device_grab (keyboard, window,
+               gdk_device_grab (
+                       keyboard, window,
                        GDK_OWNERSHIP_WINDOW, TRUE,
                        GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK,
                        NULL, activate_time) == GDK_GRAB_SUCCESS;
@@ -424,7 +440,7 @@ emoticon_tool_button_get_current_emoticon (EEmoticonChooser *chooser)
 {
        EEmoticonToolButtonPrivate *priv;
 
-       priv = E_EMOTICON_TOOL_BUTTON (chooser)->priv;
+       priv = E_EMOTICON_TOOL_BUTTON_GET_PRIVATE (chooser);
 
        if (priv->active_button == NULL)
                return NULL;
@@ -434,12 +450,12 @@ emoticon_tool_button_get_current_emoticon (EEmoticonChooser *chooser)
 
 static void
 emoticon_tool_button_set_current_emoticon (EEmoticonChooser *chooser,
-                                          EEmoticon *emoticon)
+                                           EEmoticon *emoticon)
 {
        EEmoticonToolButtonPrivate *priv;
        GList *list, *iter;
 
-       priv = E_EMOTICON_TOOL_BUTTON (chooser)->priv;
+       priv = E_EMOTICON_TOOL_BUTTON_GET_PRIVATE (chooser);
 
        list = gtk_container_get_children (GTK_CONTAINER (priv->table));
 
@@ -461,13 +477,12 @@ emoticon_tool_button_set_current_emoticon (EEmoticonChooser *chooser,
 }
 
 static void
-emoticon_tool_button_class_init (EEmoticonToolButtonClass *class)
+e_emoticon_tool_button_class_init (EEmoticonToolButtonClass *class)
 {
        GObjectClass *object_class;
        GtkWidgetClass *widget_class;
        GtkToggleToolButtonClass *toggle_tool_button_class;
 
-       parent_class = g_type_class_peek_parent (class);
        g_type_class_add_private (class, sizeof (EEmoticonToolButtonPrivate));
 
        object_class = G_OBJECT_CLASS (class);
@@ -534,14 +549,16 @@ emoticon_tool_button_class_init (EEmoticonToolButtonClass *class)
 }
 
 static void
-emoticon_tool_button_iemoticon_init (EEmoticonChooserIface *iemoticon)
+e_emoticon_tool_button_interface_init (EEmoticonChooserInterface *interface)
 {
-       iemoticon->get_current_emoticon = emoticon_tool_button_get_current_emoticon;
-       iemoticon->set_current_emoticon = emoticon_tool_button_set_current_emoticon;
+       interface->get_current_emoticon =
+               emoticon_tool_button_get_current_emoticon;
+       interface->set_current_emoticon =
+               emoticon_tool_button_set_current_emoticon;
 }
 
 static void
-emoticon_tool_button_init (EEmoticonToolButton *button)
+e_emoticon_tool_button_init (EEmoticonToolButton *button)
 {
        EEmoticonChooser *chooser;
        GtkWidget *toplevel;
@@ -551,9 +568,7 @@ emoticon_tool_button_init (EEmoticonToolButton *button)
        GList *list, *iter;
        gint ii;
 
-       button->priv = G_TYPE_INSTANCE_GET_PRIVATE (
-               button, E_TYPE_EMOTICON_TOOL_BUTTON,
-               EEmoticonToolButtonPrivate);
+       button->priv = E_EMOTICON_TOOL_BUTTON_GET_PRIVATE (button);
 
        /* Build the pop-up window. */
 
@@ -562,7 +577,7 @@ emoticon_tool_button_init (EEmoticonToolButton *button)
        gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
        gtk_window_set_type_hint (
                GTK_WINDOW (window), GDK_WINDOW_TYPE_HINT_COMBO);
-       if (gtk_widget_is_toplevel (toplevel)) {
+       if (GTK_IS_WINDOW (toplevel)) {
                gtk_window_group_add_window (
                        gtk_window_get_group (GTK_WINDOW (toplevel)),
                        GTK_WINDOW (window));
@@ -656,42 +671,6 @@ emoticon_tool_button_init (EEmoticonToolButton *button)
        g_list_free (list);
 }
 
-GType
-e_emoticon_tool_button_get_type (void)
-{
-       static GType type = 0;
-
-       if (G_UNLIKELY (type == 0)) {
-               static const GTypeInfo type_info = {
-                       sizeof (EEmoticonToolButtonClass),
-                       (GBaseInitFunc) NULL,
-                       (GBaseFinalizeFunc) NULL,
-                       (GClassInitFunc) emoticon_tool_button_class_init,
-                       (GClassFinalizeFunc) NULL,
-                       NULL,  /* class_data */
-                       sizeof (EEmoticonToolButton),
-                       0,     /* n_preallocs */
-                       (GInstanceInitFunc) emoticon_tool_button_init,
-                       NULL   /* value_table */
-               };
-
-               static const GInterfaceInfo iemoticon_info = {
-                       (GInterfaceInitFunc) emoticon_tool_button_iemoticon_init,
-                       (GInterfaceFinalizeFunc) NULL,
-                       NULL  /* interemoticon_data */
-               };
-
-               type = g_type_register_static (
-                       GTK_TYPE_TOGGLE_TOOL_BUTTON,
-                       "EEmoticonToolButton", &type_info, 0);
-
-               g_type_add_interface_static (
-                       type, E_TYPE_EMOTICON_CHOOSER, &iemoticon_info);
-       }
-
-       return type;
-}
-
 GtkToolItem *
 e_emoticon_tool_button_new (void)
 {
diff --git a/e-util/e-emoticon-tool-button.h b/e-util/e-emoticon-tool-button.h
index 77e0ccf..fc7dc8e 100644
--- a/e-util/e-emoticon-tool-button.h
+++ b/e-util/e-emoticon-tool-button.h
@@ -61,11 +61,11 @@ struct _EEmoticonToolButton {
 struct _EEmoticonToolButtonClass {
        GtkToggleToolButtonClass parent_class;
 
-       void    (*popup)                (EEmoticonToolButton *button);
-       void    (*popdown)              (EEmoticonToolButton *button);
+       void            (*popup)                (EEmoticonToolButton *button);
+       void            (*popdown)              (EEmoticonToolButton *button);
 };
 
-GType          e_emoticon_tool_button_get_type (void);
+GType          e_emoticon_tool_button_get_type (void) G_GNUC_CONST;
 GtkToolItem *  e_emoticon_tool_button_new      (void);
 void           e_emoticon_tool_button_popup    (EEmoticonToolButton *button);
 void           e_emoticon_tool_button_popdown  (EEmoticonToolButton *button);
diff --git a/e-util/e-emoticon.c b/e-util/e-emoticon.c
index 2627c84..c543e52 100644
--- a/e-util/e-emoticon.c
+++ b/e-util/e-emoticon.c
@@ -61,7 +61,7 @@ e_emoticon_get_type (void)
 
 gboolean
 e_emoticon_equal (EEmoticon *emoticon_a,
-                 EEmoticon *emoticon_b)
+                  EEmoticon *emoticon_b)
 {
        if (((emoticon_a == NULL) && (emoticon_b != NULL)) ||
            ((emoticon_a != NULL) && (emoticon_b == NULL)))
@@ -93,3 +93,26 @@ e_emoticon_free (EEmoticon *emoticon)
 {
        g_boxed_free (E_TYPE_EMOTICON, emoticon);
 }
+
+gchar *
+e_emoticon_get_uri (EEmoticon *emoticon)
+{
+       GtkIconInfo *icon_info;
+       GtkIconTheme *icon_theme;
+       const gchar *filename;
+       gchar *uri = NULL;
+
+       icon_theme = gtk_icon_theme_get_default ();
+       icon_info = gtk_icon_theme_lookup_icon (
+               icon_theme, emoticon->icon_name, 16, 0);
+       g_return_val_if_fail (icon_info != NULL, NULL);
+
+       filename = gtk_icon_info_get_filename (icon_info);
+       if (filename != NULL) {
+               uri = g_filename_to_uri (filename, NULL, NULL);
+       }
+       gtk_icon_info_free (icon_info);
+       g_return_val_if_fail (uri != NULL, NULL);
+
+       return uri;
+}
diff --git a/e-util/e-emoticon.h b/e-util/e-emoticon.h
index d7416de..66327ab 100644
--- a/e-util/e-emoticon.h
+++ b/e-util/e-emoticon.h
@@ -41,12 +41,11 @@ struct _EEmoticon {
        gchar *text_face;
 };
 
-GType          e_emoticon_get_type             (void);
+GType          e_emoticon_get_type             (void) G_GNUC_CONST;
 gboolean       e_emoticon_equal                (EEmoticon *emoticon_a,
                                                 EEmoticon *emoticon_b);
 EEmoticon *    e_emoticon_copy                 (EEmoticon *emoticon);
 void           e_emoticon_free                 (EEmoticon *emoticon);
-
 gchar *                e_emoticon_get_uri              (EEmoticon *emoticon);
 
 G_END_DECLS
diff --git a/e-util/e-image-chooser-dialog.c b/e-util/e-image-chooser-dialog.c
index 49fcd66..73a6c20 100644
--- a/e-util/e-image-chooser-dialog.c
+++ b/e-util/e-image-chooser-dialog.c
@@ -20,6 +20,10 @@
 
 #include "e-image-chooser-dialog.h"
 
+#define E_IMAGE_CHOOSER_DIALOG_GET_PRIVATE(obj) \
+       (G_TYPE_INSTANCE_GET_PRIVATE \
+       ((obj), E_TYPE_IMAGE_CHOOSER_DIALOG, EImageChooserDialogPrivate))
+
 #define PREVIEW_WIDTH  256
 #define PREVIEW_HEIGHT 256
 
@@ -97,7 +101,7 @@ image_chooser_dialog_update_preview (GtkFileChooser *file_chooser)
        GFile *preview_file;
        Context *context;
 
-       priv = E_IMAGE_CHOOSER_DIALOG (file_chooser)->priv;
+       priv = E_IMAGE_CHOOSER_DIALOG_GET_PRIVATE (file_chooser);
        preview_file = gtk_file_chooser_get_preview_file (file_chooser);
        preview_widget = gtk_file_chooser_get_preview_widget (file_chooser);
 
@@ -132,7 +136,7 @@ image_chooser_dialog_dispose (GObject *object)
 {
        EImageChooserDialogPrivate *priv;
 
-       priv = E_IMAGE_CHOOSER_DIALOG (object)->priv;
+       priv = E_IMAGE_CHOOSER_DIALOG_GET_PRIVATE (object);
 
        if (priv->cancellable != NULL) {
                g_cancellable_cancel (priv->cancellable);
@@ -170,14 +174,14 @@ image_chooser_dialog_constructed (GObject *object)
 }
 
 static void
-e_image_chooser_dialog_class_init (EImageChooserDialogClass *klass)
+e_image_chooser_dialog_class_init (EImageChooserDialogClass *class)
 {
        GObjectClass *object_class;
 
        g_type_class_add_private (
-               klass, sizeof (EImageChooserDialogPrivate));
+               class, sizeof (EImageChooserDialogPrivate));
 
-       object_class = G_OBJECT_CLASS (klass);
+       object_class = G_OBJECT_CLASS (class);
        object_class->dispose = image_chooser_dialog_dispose;
        object_class->constructed = image_chooser_dialog_constructed;
 }
@@ -185,9 +189,7 @@ e_image_chooser_dialog_class_init (EImageChooserDialogClass *klass)
 static void
 e_image_chooser_dialog_init (EImageChooserDialog *dialog)
 {
-       dialog->priv = G_TYPE_INSTANCE_GET_PRIVATE (
-               dialog, E_TYPE_IMAGE_CHOOSER_DIALOG,
-               EImageChooserDialogPrivate);
+       dialog->priv = E_IMAGE_CHOOSER_DIALOG_GET_PRIVATE (dialog);
 
        g_signal_connect (
                dialog, "update-preview",
@@ -196,7 +198,7 @@ e_image_chooser_dialog_init (EImageChooserDialog *dialog)
 
 GtkWidget *
 e_image_chooser_dialog_new (const gchar *title,
-                           GtkWindow *parent)
+                            GtkWindow *parent)
 {
        return g_object_new (
                E_TYPE_IMAGE_CHOOSER_DIALOG,
diff --git a/e-util/e-mail-signature-editor.c b/e-util/e-mail-signature-editor.c
index 06b7eca..bb958e8 100644
--- a/e-util/e-mail-signature-editor.c
+++ b/e-util/e-mail-signature-editor.c
@@ -15,10 +15,6 @@
  *
  */
 
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
 #include "e-mail-signature-editor.h"
 
 #include <config.h>
@@ -575,7 +571,6 @@ mail_signature_editor_constructed (GObject *object)
                window, "delete-event",
                G_CALLBACK (mail_signature_editor_delete_event_cb), NULL);
 
-
        /* Configure an EFocusTracker to manage selection actions. */
        focus_tracker = e_focus_tracker_new (GTK_WINDOW (window));
 
diff --git a/e-util/e-mail-signature-manager.c b/e-util/e-mail-signature-manager.c
index 37b845f..72a1128 100644
--- a/e-util/e-mail-signature-manager.c
+++ b/e-util/e-mail-signature-manager.c
@@ -408,7 +408,7 @@ mail_signature_manager_add_signature (EMailSignatureManager *manager)
 
        editor = e_mail_signature_editor_new (registry, NULL);
        editor_widget = e_mail_signature_editor_get_editor_widget (
-                               E_MAIL_SIGNATURE_EDITOR (editor));
+               E_MAIL_SIGNATURE_EDITOR (editor));
        e_editor_widget_set_html_mode (editor_widget, manager->priv->prefer_html);
        mail_signature_manager_emit_editor_created (manager, editor);
 
diff --git a/e-util/e-spell-checker.c b/e-util/e-spell-checker.c
index aad7c45..646d1a8 100644
--- a/e-util/e-spell-checker.c
+++ b/e-util/e-spell-checker.c
@@ -27,24 +27,15 @@
 #include <pango/pango.h>
 #include <gtk/gtk.h>
 
-static void e_spell_checker_init_webkit_checker (WebKitSpellCheckerInterface *iface);
-
-G_DEFINE_TYPE_EXTENDED (
-       ESpellChecker,
-       e_spell_checker,
-       G_TYPE_OBJECT,
-       0,
-       G_IMPLEMENT_INTERFACE (
-               WEBKIT_TYPE_SPELL_CHECKER,
-               e_spell_checker_init_webkit_checker))
-
-
-static ESpellChecker *s_instance = NULL;
+#define E_SPELL_CHECKER_GET_PRIVATE(obj) \
+       (G_TYPE_INSTANCE_GET_PRIVATE \
+       ((obj), E_TYPE_SPELL_CHECKER, ESpellCheckerPrivate))
 
 struct _ESpellCheckerPrivate {
        GList *active;
-       GHashTable *dictionaries_cache;
        EnchantBroker *broker;
+       GHashTable *dictionaries_cache;
+       gboolean dictionaries_loaded;
 };
 
 enum {
@@ -52,6 +43,21 @@ enum {
        PROP_ACTIVE_DICTIONARIES
 };
 
+static ESpellChecker *s_instance = NULL;
+
+/* Forward Declarations */
+static void    e_spell_checker_init_webkit_checker
+                               (WebKitSpellCheckerInterface *interface);
+
+G_DEFINE_TYPE_EXTENDED (
+       ESpellChecker,
+       e_spell_checker,
+       G_TYPE_OBJECT,
+       0,
+       G_IMPLEMENT_INTERFACE (
+               WEBKIT_TYPE_SPELL_CHECKER,
+               e_spell_checker_init_webkit_checker))
+
 /**
  * ESpellChecker:
  *
@@ -62,9 +68,9 @@ enum {
 
 static void
 wksc_check_spelling (WebKitSpellChecker *webkit_checker,
-                    const char         *word,
-                    int                *misspelling_location,
-                    int                *misspelling_length)
+                     const gchar *word,
+                     gint *misspelling_location,
+                     gint *misspelling_length)
 {
        ESpellChecker *checker = E_SPELL_CHECKER (webkit_checker);
        PangoLanguage *language;
@@ -88,21 +94,20 @@ wksc_check_spelling (WebKitSpellChecker *webkit_checker,
                 * then we get into an inner loop to find the is_word_end
                 * corresponding */
                if (attrs[ii].is_word_start) {
-                       int start = ii;
-                       int end = ii;
-                       int word_length;
+                       gint start = ii;
+                       gint end = ii;
+                       gint word_length;
                        gchar *cstart;
                        gint bytes;
                        gchar *new_word;
                        GList *iter;
 
-                       while (attrs[end].is_word_end < 1) {
+                       while (attrs[end].is_word_end < 1)
                                end++;
-                       }
 
                        word_length = end - start;
-                       /* Set the iterator to be at the current word end, so we don't
-                        * check characters twice. */
+                       /* Set the iterator to be at the current word
+                        * end, so we don't check characters twice. */
                        ii = end;
 
                        cstart = g_utf8_offset_to_pointer (word, start);
@@ -139,12 +144,12 @@ wksc_check_spelling (WebKitSpellChecker *webkit_checker,
 
 static gchar **
 wksc_get_guesses (WebKitSpellChecker *webkit_checker,
-                 const gchar *word,
-                 const gchar *context)
+                  const gchar *word,
+                  const gchar *context)
 {
        ESpellChecker *checker = E_SPELL_CHECKER (webkit_checker);
        GList *dicts;
-       char** guesses;
+       gchar ** guesses;
        gint ii;
 
        guesses = g_malloc0_n (sizeof (gchar *), 11);
@@ -178,7 +183,7 @@ wksc_get_guesses (WebKitSpellChecker *webkit_checker,
 
 static gchar *
 wksc_get_autocorrect_suggestions (WebKitSpellChecker *webkit_checker,
-                                 const gchar *word)
+                                  const gchar *word)
 {
        /* Not supported/needed */
        return NULL;
@@ -186,41 +191,47 @@ wksc_get_autocorrect_suggestions (WebKitSpellChecker *webkit_checker,
 
 static void
 spell_checker_learn_word (WebKitSpellChecker *webkit_checker,
-                         const gchar *word)
+                          const gchar *word)
 {
        /* Carefully, this will add the word to all active dictionaries! */
 
        ESpellChecker *checker;
-       GList *iter;
+       GList *list, *link;
 
        checker = E_SPELL_CHECKER (webkit_checker);
-       for (iter = checker->priv->active; iter; iter = iter->next) {
-               ESpellDictionary *dict = iter->data;
+       list = checker->priv->active;
+
+       for (link = list; link != NULL; link = g_list_next (link)) {
+               ESpellDictionary *dictionary;
 
-               e_spell_dictionary_learn_word (dict, word, -1);
+               dictionary = E_SPELL_DICTIONARY (link->data);
+               e_spell_dictionary_learn_word (dictionary, word, -1);
        }
 }
 
 static void
 spell_checker_ignore_word (WebKitSpellChecker *webkit_checker,
-                          const gchar *word)
+                           const gchar *word)
 {
        /* Carefully, this will add the word to all active dictionaries */
 
        ESpellChecker *checker;
-       GList *iter;
+       GList *list, *link;
 
        checker = E_SPELL_CHECKER (webkit_checker);
-       for (iter = checker->priv->active; iter; iter = iter->next) {
-               ESpellDictionary *dict = iter->data;
+       list = checker->priv->active;
 
-               e_spell_dictionary_ignore_word (dict, word, -1);
+       for (link = list; link != NULL; link = g_list_next (link)) {
+               ESpellDictionary *dictionary;
+
+               dictionary = E_SPELL_DICTIONARY (link->data);
+               e_spell_dictionary_ignore_word (dictionary, word, -1);
        }
 }
 
 static void
 wksc_update_languages (WebKitSpellChecker *webkit_checker,
-                      const char *languages)
+                       const gchar *languages)
 {
        ESpellChecker *checker;
        GList *dictionaries = NULL;
@@ -254,12 +265,11 @@ wksc_update_languages (WebKitSpellChecker *webkit_checker,
        g_list_free (dictionaries);
 }
 
-
 static void
 spell_checker_set_property (GObject *object,
-                           guint property_id,
-                           const GValue *value,
-                           GParamSpec *pspec)
+                            guint property_id,
+                            const GValue *value,
+                            GParamSpec *pspec)
 {
        switch (property_id) {
                case PROP_ACTIVE_DICTIONARIES:
@@ -274,9 +284,9 @@ spell_checker_set_property (GObject *object,
 
 static void
 spell_checker_get_property (GObject *object,
-                           guint property_id,
-                           GValue *value,
-                           GParamSpec *pspec)
+                            guint property_id,
+                            GValue *value,
+                            GParamSpec *pspec)
 {
        switch (property_id) {
                case PROP_ACTIVE_DICTIONARIES:
@@ -293,7 +303,9 @@ spell_checker_get_property (GObject *object,
 static void
 spell_checker_dispose (GObject *object)
 {
-       ESpellCheckerPrivate *priv = E_SPELL_CHECKER (object)->priv;
+       ESpellCheckerPrivate *priv;
+
+       priv = E_SPELL_CHECKER_GET_PRIVATE (object);
 
        g_list_free_full (priv->active, g_object_unref);
        priv->active = NULL;
@@ -301,19 +313,18 @@ spell_checker_dispose (GObject *object)
        enchant_broker_free (priv->broker);
        priv->broker = NULL;
 
-       /* Chain up to parent implementation */
+       /* Chain up to parent's dispose() method. */
        G_OBJECT_CLASS (e_spell_checker_parent_class)->dispose (object);
 }
 
 static void
-e_spell_checker_class_init (ESpellCheckerClass *klass)
+e_spell_checker_class_init (ESpellCheckerClass *class)
 {
        GObjectClass *object_class;
 
-       e_spell_checker_parent_class = g_type_class_peek_parent (klass);
-       g_type_class_add_private (klass, sizeof (ESpellCheckerPrivate));
+       g_type_class_add_private (class, sizeof (ESpellCheckerPrivate));
 
-       object_class = G_OBJECT_CLASS (klass);
+       object_class = G_OBJECT_CLASS (class);
        object_class->set_property = spell_checker_set_property;
        object_class->get_property = spell_checker_get_property;
        object_class->dispose = spell_checker_dispose;
@@ -329,25 +340,32 @@ e_spell_checker_class_init (ESpellCheckerClass *klass)
 }
 
 static void
-e_spell_checker_init_webkit_checker (WebKitSpellCheckerInterface *iface)
+e_spell_checker_init_webkit_checker (WebKitSpellCheckerInterface *interface)
 {
-       iface->check_spelling_of_string = wksc_check_spelling;
-       iface->get_autocorrect_suggestions_for_misspelled_word = wksc_get_autocorrect_suggestions;
-       iface->get_guesses_for_word = wksc_get_guesses;
-       iface->ignore_word = spell_checker_ignore_word;
-       iface->learn_word = spell_checker_learn_word;
-       iface->update_spell_checking_languages = wksc_update_languages;
+       interface->check_spelling_of_string = wksc_check_spelling;
+       interface->get_autocorrect_suggestions_for_misspelled_word =
+               wksc_get_autocorrect_suggestions;
+       interface->get_guesses_for_word = wksc_get_guesses;
+       interface->ignore_word = spell_checker_ignore_word;
+       interface->learn_word = spell_checker_learn_word;
+       interface->update_spell_checking_languages = wksc_update_languages;
 }
 
-
 static void
 e_spell_checker_init (ESpellChecker *checker)
 {
-       checker->priv = G_TYPE_INSTANCE_GET_PRIVATE (
-               checker, E_TYPE_SPELL_CHECKER, ESpellCheckerPrivate);
+       GHashTable *dictionaries_cache;
+
+       dictionaries_cache = g_hash_table_new_full (
+               (GHashFunc) g_str_hash,
+               (GEqualFunc) g_str_equal,
+               (GDestroyNotify) NULL,
+               (GDestroyNotify) g_object_unref);
+
+       checker->priv = E_SPELL_CHECKER_GET_PRIVATE (checker);
 
        checker->priv->broker = enchant_broker_init ();
-       checker->priv->dictionaries_cache = NULL;
+       checker->priv->dictionaries_cache = dictionaries_cache;
 }
 
 ESpellChecker *
@@ -361,28 +379,30 @@ e_spell_checker_instance (void)
 }
 
 static void
-list_enchant_dicts (const char * const lang_tag,
-                   const char * const provider_name,
-                   const char * const provider_desc,
-                   const char * const provider_file,
-                   void * user_data)
+list_enchant_dicts (const gchar * const lang_tag,
+                    const gchar * const provider_name,
+                    const gchar * const provider_desc,
+                    const gchar * const provider_file,
+                    gpointer user_data)
 {
        ESpellChecker *checker = user_data;
-       EnchantDict *dict;
+       EnchantDict *enchant_dict;
 
-       dict = enchant_broker_request_dict (checker->priv->broker, lang_tag);
-       if (dict) {
-               ESpellDictionary *e_dict;
+       enchant_dict = enchant_broker_request_dict (
+               checker->priv->broker, lang_tag);
+       if (enchant_dict != NULL) {
+               ESpellDictionary *dictionary;
+               const gchar *code;
 
-               e_dict = e_spell_dictionary_new (checker, dict);
+               dictionary = e_spell_dictionary_new (checker, enchant_dict);
+               code = e_spell_dictionary_get_code (dictionary);
 
                g_hash_table_insert (
                        checker->priv->dictionaries_cache,
-                       (gpointer) e_spell_dictionary_get_code (e_dict), e_dict);
+                       (gpointer) code, dictionary);
        }
 }
 
-
 /**
  * e_spell_checker_list_available_dicts:
  * @checker: An #ESpellChecker
@@ -390,8 +410,8 @@ list_enchant_dicts (const char * const lang_tag,
  * Returns list of all dictionaries available to the actual
  * spell-checking backend.
  *
- * Return value: new copy of #GList of #ESpellDictionary. The dictionaries are
- * owned by the @checker and should not be free'd. The list should be free'd
+ * Returns: new copy of #GList of #ESpellDictionary. The dictionaries are
+ * owned by the @checker and should not be free'd. The list should be freed
  * using g_list_free() when not neede anymore. [transfer-list]
  */
 GList *
@@ -401,12 +421,11 @@ e_spell_checker_list_available_dicts (ESpellChecker *checker)
 
        g_return_val_if_fail (E_IS_SPELL_CHECKER (checker), NULL);
 
-       if (checker->priv->dictionaries_cache == NULL) {
-
-               checker->priv->dictionaries_cache = g_hash_table_new_full (
-                       g_str_hash, g_str_equal, NULL, g_object_unref);
+       if (!checker->priv->dictionaries_loaded) {
                enchant_broker_list_dicts (
-                       checker->priv->broker, list_enchant_dicts, checker);
+                       checker->priv->broker,
+                       list_enchant_dicts, checker);
+               checker->priv->dictionaries_loaded = TRUE;
        }
 
        list = g_hash_table_get_values (checker->priv->dictionaries_cache);
@@ -419,14 +438,15 @@ e_spell_checker_list_available_dicts (ESpellChecker *checker)
  * @checker: an #ESpellChecker
  * @language_code: (allow-none) language code for which to lookup the dictionary
  *
- * Tries to find an #ESpellDictionary for given @language_code. When @language_code
- * is #NULL, this function will return a default #ESpellDictionary.
+ * Tries to find an #ESpellDictionary for given @language_code.
+ * If @language_code is %NULL, the function will return a default
+ * #ESpellDictionary.
  *
- * Return value: an #ESpellDictionary for @language_code
+ * Returns: an #ESpellDictionary for @language_code
  */
 ESpellDictionary *
 e_spell_checker_lookup_dictionary (ESpellChecker *checker,
-                                  const gchar *language_code)
+                                   const gchar *language_code)
 {
        ESpellDictionary *e_dict = NULL;
        GList *dicts;
@@ -479,7 +499,7 @@ e_spell_checker_get_active_dictionaries (ESpellChecker *checker)
  */
 void
 e_spell_checker_set_active_dictionaries (ESpellChecker *checker,
-                                        GList *active_dicts)
+                                         GList *active_dicts)
 {
        g_return_if_fail (E_IS_SPELL_CHECKER (checker));
 
@@ -491,12 +511,12 @@ e_spell_checker_set_active_dictionaries (ESpellChecker *checker,
 
 void
 e_spell_checker_free_dict (ESpellChecker *checker,
-                          EnchantDict *dict)
+                           EnchantDict *enchant_dict)
 {
        g_return_if_fail (E_IS_SPELL_CHECKER (checker));
-       g_return_if_fail (dict != NULL);
+       g_return_if_fail (enchant_dict != NULL);
 
-       enchant_broker_free_dict (checker->priv->broker, dict);
+       enchant_broker_free_dict (checker->priv->broker, enchant_dict);
 }
 
 /**
@@ -504,19 +524,19 @@ e_spell_checker_free_dict (ESpellChecker *checker,
  * @checker: an #ESpellChecker
  * @word: word to ignore for the rest of session
  *
- * Calls #e_spell_dictionary_ignore_word() on all active dictionaries in
+ * Calls e_spell_dictionary_ignore_word() on all active dictionaries in
  * the @checker.
  */
 void
 e_spell_checker_ignore_word (ESpellChecker *checker,
-                            const gchar *word)
+                             const gchar *word)
 {
-       WebKitSpellCheckerInterface *webkit_checker_iface;
+       WebKitSpellCheckerInterface *interface;
 
        g_return_if_fail (E_IS_SPELL_CHECKER (checker));
 
-       webkit_checker_iface = WEBKIT_SPELL_CHECKER_GET_IFACE (checker);
-       webkit_checker_iface->ignore_word (WEBKIT_SPELL_CHECKER (checker), word);
+       interface = WEBKIT_SPELL_CHECKER_GET_IFACE (checker);
+       interface->ignore_word (WEBKIT_SPELL_CHECKER (checker), word);
 }
 
 /**
@@ -524,17 +544,17 @@ e_spell_checker_ignore_word (ESpellChecker *checker,
  * @checker: an #ESpellChecker
  * @word: word to learn
  *
- * Calls #e_spell_dictionary_learn_word() on all active dictionaries in
+ * Calls e_spell_dictionary_learn_word() on all active dictionaries in
  * the @checker.
  */
 void
 e_spell_checker_learn_word (ESpellChecker *checker,
-                           const gchar *word)
+                            const gchar *word)
 {
-       WebKitSpellCheckerInterface *webkit_checker_iface;
+       WebKitSpellCheckerInterface *interface;
 
        g_return_if_fail (E_IS_SPELL_CHECKER (checker));
 
-       webkit_checker_iface = WEBKIT_SPELL_CHECKER_GET_IFACE (checker);
-       webkit_checker_iface->learn_word (WEBKIT_SPELL_CHECKER (checker), word);
+       interface = WEBKIT_SPELL_CHECKER_GET_IFACE (checker);
+       interface->learn_word (WEBKIT_SPELL_CHECKER (checker), word);
 }
diff --git a/e-util/e-spell-checker.h b/e-util/e-spell-checker.h
index 806f385..3b0737d 100644
--- a/e-util/e-spell-checker.h
+++ b/e-util/e-spell-checker.h
@@ -16,6 +16,10 @@
  * Boston, MA 02111-1307, USA.
  */
 
+#if !defined (__E_UTIL_H_INSIDE__) && !defined (LIBEUTIL_COMPILATION)
+#error "Only <e-util/e-util.h> should be included directly."
+#endif
+
 #ifndef E_SPELL_CHECKER_H
 #define E_SPELL_CHECKER_H
 
@@ -41,7 +45,6 @@
        (G_TYPE_INSTANCE_GET_CLASS \
        ((obj), E_TYPE_SPELL_CHECKER, ESpellCheckerClass))
 
-
 G_BEGIN_DECLS
 
 typedef struct _ESpellChecker ESpellChecker;
@@ -50,7 +53,6 @@ typedef struct _ESpellCheckerClass ESpellCheckerClass;
 
 struct _ESpellChecker {
        GObject parent;
-
        ESpellCheckerPrivate *priv;
 };
 
@@ -58,31 +60,26 @@ struct _ESpellCheckerClass {
        GObjectClass parent_class;
 };
 
-GType                  e_spell_checker_get_type        (void);
-
-ESpellChecker *                e_spell_checker_instance        (void);
-
-GList *                        e_spell_checker_list_available_dicts
-                                                       (ESpellChecker *checker);
-ESpellDictionary *     e_spell_checker_lookup_dictionary
-                                                       (ESpellChecker *checker,
-                                                        const gchar *language_code);
-
-void                   e_spell_checker_set_active_dictionaries
-                                                       (ESpellChecker *checker,
-                                                        GList *active_dicts);
-GList *                        e_spell_checker_get_active_dictionaries
-                                                       (ESpellChecker *checker);
-
-void                   e_spell_checker_free_dict       (ESpellChecker *checker,
-                                                        EnchantDict *dict);
-
-void                   e_spell_checker_learn_word      (ESpellChecker *checker,
-                                                        const gchar *word);
-void                   e_spell_checker_ignore_word     (ESpellChecker *checker,
-                                                        const gchar *word);
+GType          e_spell_checker_get_type        (void) G_GNUC_CONST;
+ESpellChecker *        e_spell_checker_instance        (void);
+GList *                e_spell_checker_list_available_dicts
+                                               (ESpellChecker *checker);
+ESpellDictionary *
+               e_spell_checker_lookup_dictionary
+                                               (ESpellChecker *checker,
+                                                const gchar *language_code);
+void           e_spell_checker_set_active_dictionaries
+                                               (ESpellChecker *checker,
+                                                GList *active_dicts);
+GList *                e_spell_checker_get_active_dictionaries
+                                               (ESpellChecker *checker);
+void           e_spell_checker_free_dict       (ESpellChecker *checker,
+                                                EnchantDict *enchant_dict);
+void           e_spell_checker_learn_word      (ESpellChecker *checker,
+                                                const gchar *word);
+void           e_spell_checker_ignore_word     (ESpellChecker *checker,
+                                                const gchar *word);
 
 G_END_DECLS
 
-
 #endif /* E_SPELL_CHECKER_H */
diff --git a/e-util/e-spell-dictionary.c b/e-util/e-spell-dictionary.c
index 33d09a9..8a88253 100644
--- a/e-util/e-spell-dictionary.c
+++ b/e-util/e-spell-dictionary.c
@@ -26,10 +26,9 @@
 #include <glib/gi18n-lib.h>
 #include <string.h>
 
-G_DEFINE_TYPE (
-       ESpellDictionary,
-       e_spell_dictionary,
-       G_TYPE_OBJECT);
+#define E_SPELL_DICTIONARY_GET_PRIVATE(obj) \
+       (G_TYPE_INSTANCE_GET_PRIVATE \
+       ((obj), E_TYPE_SPELL_DICTIONARY, ESpellDictionaryPrivate))
 
 /**
  * ESpellDictionary:
@@ -37,15 +36,14 @@ G_DEFINE_TYPE (
  * The #ESpellDictionary is a wrapper around #EnchantDict.
  */
 
-
 enum {
        PROP_0,
-       PROP_SPELLCHECKER
+       PROP_SPELL_CHECKER
 };
 
 struct _ESpellDictionaryPrivate {
        ESpellChecker *spell_checker;
-       EnchantDict *dict;
+       EnchantDict *enchant_dict;
 
        gchar *name;
        gchar *code;
@@ -58,6 +56,11 @@ struct _ESpellDictionaryPrivate {
 static GHashTable *iso_639_table = NULL;
 static GHashTable *iso_3166_table = NULL;
 
+G_DEFINE_TYPE (
+       ESpellDictionary,
+       e_spell_dictionary,
+       G_TYPE_OBJECT);
+
 #ifdef HAVE_ISO_CODES
 
 #define ISOCODESLOCALEDIR ISO_CODES_PREFIX "/share/locale"
@@ -257,10 +260,10 @@ struct _enchant_dict_description_data {
 
 static void
 describe_dictionary (const gchar *language_tag,
-                    const gchar *provider_name,
-                    const gchar *provider_desc,
-                    const gchar *provider_file,
-                    gpointer user_data)
+                     const gchar *provider_name,
+                     const gchar *provider_desc,
+                     const gchar *provider_file,
+                     gpointer user_data)
 {
        struct _enchant_dict_description_data *data = user_data;
        const gchar *iso_639_name;
@@ -312,30 +315,39 @@ exit:
 
 static void
 spell_dictionary_set_enchant_dict (ESpellDictionary *dictionary,
-                                  EnchantDict *enchant_dict)
+                                   EnchantDict *enchant_dict)
 {
        struct _enchant_dict_description_data data;
 
        enchant_dict_describe (enchant_dict, describe_dictionary, &data);
 
-       dictionary->priv->dict = enchant_dict;
+       dictionary->priv->enchant_dict = enchant_dict;
        dictionary->priv->code = data.language_tag;
        dictionary->priv->name = data.dict_name;
        dictionary->priv->collate_key = g_utf8_collate_key (data.dict_name, -1);
 }
 
 static void
-spell_dictionary_set_property (GObject *object,
-                              guint property_id,
-                              const GValue *value,
-                              GParamSpec *pspec)
+spell_dictionary_set_spell_checker (ESpellDictionary *dictionary,
+                                    ESpellChecker *spell_checker)
 {
-       ESpellDictionary *dict = E_SPELL_DICTIONARY (object);
+       g_return_if_fail (E_IS_SPELL_CHECKER (spell_checker));
+       g_return_if_fail (dictionary->priv->spell_checker == NULL);
+
+       dictionary->priv->spell_checker = g_object_ref (spell_checker);
+}
 
+static void
+spell_dictionary_set_property (GObject *object,
+                               guint property_id,
+                               const GValue *value,
+                               GParamSpec *pspec)
+{
        switch (property_id) {
-               case PROP_SPELLCHECKER:
-                       dict->priv->spell_checker =
-                               g_object_ref (g_value_get_object (value));
+               case PROP_SPELL_CHECKER:
+                       spell_dictionary_set_spell_checker (
+                               E_SPELL_DICTIONARY (object),
+                               g_value_get_object (value));
                        return;
        }
 
@@ -344,17 +356,16 @@ spell_dictionary_set_property (GObject *object,
 
 static void
 spell_dictionary_get_property (GObject *object,
-                              guint property_id,
-                              GValue *value,
-                              GParamSpec *pspec)
+                               guint property_id,
+                               GValue *value,
+                               GParamSpec *pspec)
 {
-       ESpellDictionary *dict = E_SPELL_DICTIONARY (object);
-
        switch (property_id) {
-               case PROP_SPELLCHECKER:
+               case PROP_SPELL_CHECKER:
                        g_value_set_object (
                                value,
-                               e_spell_dictionary_get_parent_checker (dict));
+                               e_spell_dictionary_get_parent_checker (
+                               E_SPELL_DICTIONARY (object)));
                        return;
        }
 
@@ -364,107 +375,119 @@ spell_dictionary_get_property (GObject *object,
 static void
 spell_dictionary_dispose (GObject *object)
 {
-       ESpellDictionaryPrivate *priv = E_SPELL_DICTIONARY (object)->priv;
+       ESpellDictionaryPrivate *priv;
 
-       e_spell_checker_free_dict (priv->spell_checker, priv->dict);
-       priv->dict = NULL;
+       priv = E_SPELL_DICTIONARY_GET_PRIVATE (object);
 
-       g_free (priv->name);
-       priv->name = NULL;
+       g_clear_object (&priv->spell_checker);
 
-       g_free (priv->code);
-       priv->code = NULL;
+       /* Chain up to parent's dispose() method. */
+       G_OBJECT_CLASS (e_spell_dictionary_parent_class)->dispose (object);
+}
 
-       g_free (priv->collate_key);
-       priv->collate_key = NULL;
+static void
+spell_dictionary_finalize (GObject *object)
+{
+       ESpellDictionaryPrivate *priv;
 
-       g_clear_object (&priv->spell_checker);
+       priv = E_SPELL_DICTIONARY_GET_PRIVATE (object);
 
-       /* Chain up to parent implementation */
-       G_OBJECT_CLASS (e_spell_dictionary_parent_class)->dispose (object);
+       e_spell_checker_free_dict (priv->spell_checker, priv->enchant_dict);
+
+       g_free (priv->name);
+       g_free (priv->code);
+       g_free (priv->collate_key);
+
+       /* Chain up to parent's finalize() method. */
+       G_OBJECT_CLASS (e_spell_dictionary_parent_class)->finalize (object);
 }
 
 static void
-e_spell_dictionary_class_init (ESpellDictionaryClass *klass)
+e_spell_dictionary_class_init (ESpellDictionaryClass *class)
 {
        GObjectClass *object_class;
 
-       e_spell_dictionary_parent_class = g_type_class_peek_parent (klass);
-       g_type_class_add_private (klass, sizeof (ESpellDictionaryPrivate));
+       g_type_class_add_private (class, sizeof (ESpellDictionaryPrivate));
 
-       object_class = G_OBJECT_CLASS (klass);
+       object_class = G_OBJECT_CLASS (class);
        object_class->set_property = spell_dictionary_set_property;
        object_class->get_property = spell_dictionary_get_property;
        object_class->dispose = spell_dictionary_dispose;
+       object_class->finalize = spell_dictionary_finalize;
 
        g_object_class_install_property (
                object_class,
-               PROP_SPELLCHECKER,
+               PROP_SPELL_CHECKER,
                g_param_spec_object (
                        "spell-checker",
-                       NULL,
-                       "Parent spell checker",
-                       E_TYPE_SPELL_CHECKER,
-                       G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+                       NULL,
+                       "Parent spell checker",
+                       E_TYPE_SPELL_CHECKER,
+                       G_PARAM_READWRITE |
+                       G_PARAM_CONSTRUCT_ONLY));
 }
 
 static void
-e_spell_dictionary_init (ESpellDictionary *dict)
+e_spell_dictionary_init (ESpellDictionary *dictionary)
 {
-       dict->priv = G_TYPE_INSTANCE_GET_PRIVATE (
-               dict, E_TYPE_SPELL_DICTIONARY, ESpellDictionaryPrivate);
+       dictionary->priv = E_SPELL_DICTIONARY_GET_PRIVATE (dictionary);
 
        if (!iso_639_table && !iso_3166_table) {
-               #if defined (ENABLE_NLS) && defined (HAVE_ISO_CODES)
-                       bindtextdomain (ISO_639_DOMAIN, ISOCODESLOCALEDIR);
-                       bind_textdomain_codeset (ISO_639_DOMAIN, "UTF-8");
-
-                       bindtextdomain (ISO_3166_DOMAIN, ISOCODESLOCALEDIR);
-                       bind_textdomain_codeset (ISO_3166_DOMAIN, "UTF-8");
-               #endif
-
-                       iso_639_table = g_hash_table_new_full (
-                               g_str_hash, g_str_equal,
-                               (GDestroyNotify) g_free,
-                               (GDestroyNotify) g_free);
-
-                       iso_3166_table = g_hash_table_new_full (
-                               g_str_hash, g_str_equal,
-                               (GDestroyNotify) g_free,
-                               (GDestroyNotify) g_free);
-
-               #ifdef HAVE_ISO_CODES
-                       iso_codes_parse (
-                               &iso_639_parser, "iso_639.xml", iso_639_table);
-                       iso_codes_parse (
-                               &iso_3166_parser, "iso_3166.xml", iso_3166_table);
-               #endif
+#if defined (ENABLE_NLS) && defined (HAVE_ISO_CODES)
+               bindtextdomain (ISO_639_DOMAIN, ISOCODESLOCALEDIR);
+               bind_textdomain_codeset (ISO_639_DOMAIN, "UTF-8");
+
+               bindtextdomain (ISO_3166_DOMAIN, ISOCODESLOCALEDIR);
+               bind_textdomain_codeset (ISO_3166_DOMAIN, "UTF-8");
+#endif /* ENABLE_NLS && HAVE_ISO_CODES */
+
+               iso_639_table = g_hash_table_new_full (
+                       (GHashFunc) g_str_hash,
+                       (GEqualFunc) g_str_equal,
+                       (GDestroyNotify) g_free,
+                       (GDestroyNotify) g_free);
+
+               iso_3166_table = g_hash_table_new_full (
+                       (GHashFunc) g_str_hash,
+                       (GEqualFunc) g_str_equal,
+                       (GDestroyNotify) g_free,
+                       (GDestroyNotify) g_free);
+
+#ifdef HAVE_ISO_CODES
+               iso_codes_parse (
+                       &iso_639_parser, "iso_639.xml", iso_639_table);
+               iso_codes_parse (
+                       &iso_3166_parser, "iso_3166.xml", iso_3166_table);
+#endif /* HAVE_ISO_CODES */
        }
 }
 
 ESpellDictionary *
 e_spell_dictionary_new (ESpellChecker *parent_checker,
-                       EnchantDict *dict)
+                        EnchantDict *enchant_dict)
 {
-       ESpellDictionary *e_dict;
+       ESpellDictionary *dictionary;
 
-       e_dict = g_object_new (E_TYPE_SPELL_DICTIONARY,
-                              "spell-checker", parent_checker, NULL);
+       g_return_val_if_fail (E_IS_SPELL_CHECKER (parent_checker), NULL);
+       g_return_val_if_fail (enchant_dict != NULL, NULL);
 
-       spell_dictionary_set_enchant_dict (e_dict, dict);
+       dictionary = g_object_new (
+               E_TYPE_SPELL_DICTIONARY,
+               "spell-checker", parent_checker, NULL);
 
-       return e_dict;
-}
+       spell_dictionary_set_enchant_dict (dictionary, enchant_dict);
 
+       return dictionary;
+}
 
 /**
  * e_spell_dictionary_get_name:
  * @dictionary: an #ESpellDictionary
  *
- * Provides a user-friendly name of the dictionary (for example
+ * Returns the display name of the dictionary (for example
  * "English (British)")
  *
- * Return value: a name of the @dictionary
+ * Returns: the display name of the @dictionary
  */
 const gchar *
 e_spell_dictionary_get_name (ESpellDictionary *dictionary)
@@ -478,10 +501,10 @@ e_spell_dictionary_get_name (ESpellDictionary *dictionary)
  * e_spell_dictionary_get_code:
  * @dictionary: an #ESpellDictionary
  *
- * Provides an ISO code of spell-checking language of the
+ * Returns the ISO code of the spell-checking language for
  * @dictionary (for example "en_US").
  *
- * Return value: language code of the @dictionary
+ * Returns: the language code of the @dictionary
  */
 const gchar *
 e_spell_dictionary_get_code (ESpellDictionary *dictionary)
@@ -494,95 +517,98 @@ e_spell_dictionary_get_code (ESpellDictionary *dictionary)
 /**
  * e_spell_dictionary_check:
  * @dictionary: an #ESpellDictionary
- * @word: a word whose spelling to checking
- * @len: size of @word in bytes or -1 when NULL-terminated
+ * @word: a word to spell-check
+ * @length: length of @word in bytes or -1 when %NULL-terminated
  *
  * Tries to lookup the @word in the @dictionary to check whether
  * it's spelled correctly or not.
  *
- * Return value: #TRUE when the word is spelled correctly, FALSE otherwise
+ * Returns: %TRUE when the word is spelled correctly, %FALSE otherwise
  */
 gboolean
 e_spell_dictionary_check (ESpellDictionary *dictionary,
-                         const gchar *word,
-                         gsize len)
+                          const gchar *word,
+                          gsize length)
 {
        g_return_val_if_fail (E_IS_SPELL_DICTIONARY (dictionary), TRUE);
-       g_return_val_if_fail (word && *word, TRUE);
+       g_return_val_if_fail (word != NULL && *word != '\0', TRUE);
 
-       return enchant_dict_check (dictionary->priv->dict, word, len);
+       return enchant_dict_check (
+               dictionary->priv->enchant_dict, word, length);
 }
 
 /**
  * e_spell_dictionary_learn_word:
  * @dictionary: an #ESpellDictionary
  * @word: a word to add to @dictionary
- * @len: size of @word in bytes or -1 when NULL-terminated
+ * @length: length of @word in bytes or -1 when %NULL-terminated
  *
  * Permanently adds @word to @dictionary so that next time calling
- * e_spell_dictionary_check() on the @word will return #TRUE.
+ * e_spell_dictionary_check() on the @word will return %TRUE.
  */
 void
 e_spell_dictionary_learn_word (ESpellDictionary *dictionary,
-                              const gchar *word,
-                              gsize len)
+                               const gchar *word,
+                               gsize length)
 {
        g_return_if_fail (E_IS_SPELL_DICTIONARY (dictionary));
-       g_return_if_fail (word && *word);
+       g_return_if_fail (word != NULL && *word != '\0');
 
-       enchant_dict_add_to_personal (dictionary->priv->dict, word, len);
+       enchant_dict_add_to_personal (
+               dictionary->priv->enchant_dict, word, length);
 }
 
 /**
  * e_spell_dictionary_ignore_word:
  * @dictionary: an #ESpellDictionary
  * @word: a word to add to ignore list
- * @len: size of @word in bytes or -1 when NULL-terminated
+ * @length: length of @word in bytes or -1 when %NULL-terminated
  *
  * Adds @word to temporary ignore list of the @dictionary, so that
- * e_spell_dictionary_check() on the @word will return #TRUE. The
- * list is cleared when the dictionary is free'd.
+ * e_spell_dictionary_check() on the @word will return %TRUE. The
+ * list is cleared when the dictionary is freed.
  */
 void
 e_spell_dictionary_ignore_word (ESpellDictionary *dictionary,
-                               const gchar *word,
-                               gsize len)
+                                const gchar *word,
+                                gsize length)
 {
        g_return_if_fail (E_IS_SPELL_DICTIONARY (dictionary));
-       g_return_if_fail (word && *word);
+       g_return_if_fail (word != NULL && *word != '\0');
 
-       enchant_dict_add_to_session (dictionary->priv->dict, word, len);
+       enchant_dict_add_to_session (
+               dictionary->priv->enchant_dict, word, length);
 }
 
 /**
  * e_spell_dictionary_get_suggestions:
  * @dictionary: an #ESpellDictionary
  * @word: a word to which to find suggestions
- * @len: size of @word in bytes or -1 when NULL-terminated
+ * @length: length of @word in bytes or -1 when %NULL-terminated
  *
  * Provides list of alternative spellings of @word.
  *
- * Return value: a list of strings that has to be free'd by
+ * Returns: a list of strings that has to be free'd by
  * e_spell_dictionary_free_suggestions().
  */
 GList *
 e_spell_dictionary_get_suggestions (ESpellDictionary *dictionary,
-                                   const gchar *word,
-                                   gsize len)
+                                    const gchar *word,
+                                    gsize length)
 {
-       gchar **s;
-       GList *list;
-       gsize ii, cnt;
+       GList *list = NULL;
+       gchar **suggestions;
+       gsize ii, count;
 
        g_return_val_if_fail (E_IS_SPELL_DICTIONARY (dictionary), NULL);
-       g_return_val_if_fail (word && *word, NULL);
+       g_return_val_if_fail (word != NULL && *word != '\0', NULL);
 
-       s = enchant_dict_suggest (dictionary->priv->dict, word, len, &cnt);
-       list = NULL;
-       for (ii = 0; ii < cnt; ii++) {
-               list = g_list_prepend (list, g_strdup (s[ii]));
-       }
-       enchant_dict_free_suggestions (dictionary->priv->dict, s);
+       suggestions = enchant_dict_suggest (
+               dictionary->priv->enchant_dict, word, length, &count);
+       for (ii = 0; ii < count; ii++)
+               list = g_list_prepend (list, g_strdup (suggestions[ii]));
+       enchant_dict_free_suggestions (
+               dictionary->priv->enchant_dict, suggestions);
 
        return g_list_reverse (list);
 }
@@ -603,27 +629,30 @@ e_spell_dictionary_free_suggestions (GList *suggestions)
 /**
  * e_spell_dictionary_add_correction
  * @dictionary: an #ESpellDictionary
- * @misspelled: a word to which add a correction
- * @misspelled_len: size of @misspelled (in bytes) or -1 when string NULL-terminated
- * @correction: a correct word
- * @correction_len: size of @correction (in bytes) or -1 when string NULL-terminated
+ * @misspelled: a misspelled word
+ * @misspelled_length: length of @misspelled in bytes or -1 when
+ *                     %NULL-terminated
+ * @correction: the corrected word
+ * @correction_length: length of @correction in bytes or -1 when
+ *                     %NULL-terminated
  *
- * Learns a new @correction of @misspelled word
+ * Learns a new @correction of @misspelled word.
  */
 void
 e_spell_dictionary_store_correction (ESpellDictionary *dictionary,
-                                    const gchar *misspelled,
-                                    gsize misspelled_len,
-                                    const gchar *correction,
-                                    gsize correction_len)
+                                     const gchar *misspelled,
+                                     gsize misspelled_length,
+                                     const gchar *correction,
+                                     gsize correction_length)
 {
        g_return_if_fail (E_IS_SPELL_DICTIONARY (dictionary));
-       g_return_if_fail (misspelled && *misspelled);
-       g_return_if_fail (correction && *correction);
+       g_return_if_fail (misspelled != NULL && *misspelled != '\0');
+       g_return_if_fail (correction != NULL && *correction != '\0');
 
        enchant_dict_store_replacement (
-               dictionary->priv->dict, misspelled, misspelled_len,
-               correction, correction_len);
+               dictionary->priv->enchant_dict,
+               misspelled, misspelled_length,
+               correction, correction_length);
 }
 
 /**
@@ -633,7 +662,7 @@ e_spell_dictionary_store_correction (ESpellDictionary *dictionary,
  * Returns an #ESpellChecker which is parent (and the original owner) of
  * the @dictionary.
  *
- * Return value: an #ESpellChecker
+ * Returns: an #ESpellChecker
  */
 ESpellChecker *
 e_spell_dictionary_get_parent_checker (ESpellDictionary *dictionary)
@@ -644,11 +673,13 @@ e_spell_dictionary_get_parent_checker (ESpellDictionary *dictionary)
 }
 
 gint
-e_spell_dictionary_compare (ESpellDictionary *dict1,
-                           ESpellDictionary *dict2)
+e_spell_dictionary_compare (ESpellDictionary *dictionary1,
+                            ESpellDictionary *dictionary2)
 {
-       g_return_val_if_fail (E_IS_SPELL_DICTIONARY (dict1), 0);
-       g_return_val_if_fail (E_IS_SPELL_DICTIONARY (dict2), 0);
+       g_return_val_if_fail (E_IS_SPELL_DICTIONARY (dictionary1), 0);
+       g_return_val_if_fail (E_IS_SPELL_DICTIONARY (dictionary2), 0);
 
-       return strcmp (dict1->priv->collate_key, dict2->priv->collate_key);
+       return strcmp (
+               dictionary1->priv->collate_key,
+               dictionary2->priv->collate_key);
 }
diff --git a/e-util/e-spell-dictionary.h b/e-util/e-spell-dictionary.h
index fd4e307..9f8d2e9 100644
--- a/e-util/e-spell-dictionary.h
+++ b/e-util/e-spell-dictionary.h
@@ -16,6 +16,10 @@
  * Boston, MA 02111-1307, USA.
  */
 
+#if !defined (__E_UTIL_H_INSIDE__) && !defined (LIBEUTIL_COMPILATION)
+#error "Only <e-util/e-util.h> should be included directly."
+#endif
+
 #ifndef E_SPELL_DICTIONARY_H
 #define E_SPELL_DICTIONARY_H
 
@@ -41,7 +45,6 @@
        (G_TYPE_INSTANCE_GET_CLASS \
        ((obj), E_TYPE_SPELL_DICTIONARY, ESpellDictionaryClass))
 
-
 G_BEGIN_DECLS
 
 typedef struct _ESpellDictionary ESpellDictionary;
@@ -51,54 +54,45 @@ typedef struct _ESpellChecker ESpellChecker;
 
 struct _ESpellDictionary {
        GObject parent;
-
        ESpellDictionaryPrivate *priv;
 };
 
 struct _ESpellDictionaryClass {
        GObjectClass parent_class;
-
 };
 
-GType                  e_spell_dictionary_get_type     (void);
-
-ESpellDictionary *     e_spell_dictionary_new          (ESpellChecker *parent_checker,
-                                                        EnchantDict *dict);
-
-const gchar *          e_spell_dictionary_get_name     (ESpellDictionary *dict);
-const gchar *          e_spell_dictionary_get_code     (ESpellDictionary *dict);
-
-
-gboolean               e_spell_dictionary_check        (ESpellDictionary *dict,
-                                                        const gchar *word,
-                                                        gsize len);
-
-void                   e_spell_dictionary_learn_word   (ESpellDictionary *dict,
-                                                        const gchar *word,
-                                                        gsize len);
-void                   e_spell_dictionary_ignore_word  (ESpellDictionary *dict,
-                                                        const gchar *word,
-                                                        gsize len);
-GList *                        e_spell_dictionary_get_suggestions
-                                                       (ESpellDictionary *dict,
-                                                        const gchar *word,
-                                                        gsize len);
-void                   e_spell_dictionary_free_suggestions
-                                                       (GList *suggestions);
-void                   e_spell_dictionary_store_correction
-                                                       (ESpellDictionary *dict,
-                                                        const gchar *misspelled,
-                                                        gsize misspelled_len,
-                                                        const gchar *correction,
-                                                        gsize correction_len);
-
-ESpellChecker *                e_spell_dictionary_get_parent_checker
-                                                       (ESpellDictionary *dict);
-
-gint                   e_spell_dictionary_compare      (ESpellDictionary *dict1,
-                                                        ESpellDictionary *dict2);
+GType          e_spell_dictionary_get_type     (void) G_GNUC_CONST;
+ESpellDictionary *
+               e_spell_dictionary_new          (ESpellChecker *parent_checker,
+                                                EnchantDict *enchant_dict);
+const gchar *  e_spell_dictionary_get_name     (ESpellDictionary *dictionary);
+const gchar *  e_spell_dictionary_get_code     (ESpellDictionary *dictionary);
+gboolean       e_spell_dictionary_check        (ESpellDictionary *dictionary,
+                                                const gchar *word,
+                                                gsize length);
+void           e_spell_dictionary_learn_word   (ESpellDictionary *dictionary,
+                                                const gchar *word,
+                                                gsize length);
+void           e_spell_dictionary_ignore_word  (ESpellDictionary *dictionary,
+                                                const gchar *word,
+                                                gsize length);
+GList *                e_spell_dictionary_get_suggestions
+                                               (ESpellDictionary *dictionary,
+                                                const gchar *word,
+                                                gsize length);
+void           e_spell_dictionary_free_suggestions
+                                               (GList *suggestions);
+void           e_spell_dictionary_store_correction
+                                               (ESpellDictionary *dictionary,
+                                                const gchar *misspelled,
+                                                gsize misspelled_length,
+                                                const gchar *correction,
+                                                gsize correction_length);
+ESpellChecker *        e_spell_dictionary_get_parent_checker
+                                               (ESpellDictionary *dictionary);
+gint           e_spell_dictionary_compare      (ESpellDictionary *dictionary1,
+                                                ESpellDictionary *dictionary2);
 
 G_END_DECLS
 
-
-#endif /* E_SPELL_DICTIONARY_H */
\ No newline at end of file
+#endif /* E_SPELL_DICTIONARY_H */
diff --git a/e-util/e-spell-entry.c b/e-util/e-spell-entry.c
index 65e424e..839e6d8 100644
--- a/e-util/e-spell-entry.c
+++ b/e-util/e-spell-entry.c
@@ -376,7 +376,7 @@ build_suggestion_menu (ESpellEntry *entry,
                        const gchar *word)
 {
        GtkWidget *mi;
-       GList *suggestions;
+       GList *suggestions, *iter;
 
        suggestions = e_spell_dictionary_get_suggestions (dict, word, -1);
 
@@ -397,13 +397,10 @@ build_suggestion_menu (ESpellEntry *entry,
                gtk_widget_show_all (mi);
                gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), mi);
        } else {
-               GList *iter;
-               gint ii;
+               gint ii = 0;
 
                /* build a set of menus with suggestions */
-               for (iter = suggestions, ii = 0; iter; iter = iter->next, ii++) {
-                       gchar *suggestion = iter->data;
-
+               for (iter = suggestions; iter; iter = g_list_next (iter), ii++) {
                        if ((ii != 0) && (ii % 10 == 0)) {
                                mi = gtk_separator_menu_item_new ();
                                gtk_widget_show (mi);
@@ -417,9 +414,9 @@ build_suggestion_menu (ESpellEntry *entry,
                                gtk_menu_item_set_submenu (GTK_MENU_ITEM (mi), menu);
                        }
 
-                       mi = gtk_menu_item_new_with_label (suggestion);
+                       mi = gtk_menu_item_new_with_label (iter->data);
                        g_object_set_data (G_OBJECT (mi), "spell-entry-checker", dict);
-                       g_signal_connect (G_OBJECT (mi), "activate", G_CALLBACK (replace_word), entry);
+                       g_signal_connect (mi, "activate", G_CALLBACK (replace_word), entry);
                        gtk_widget_show (mi);
                        gtk_menu_shell_append (GTK_MENU_SHELL (menu), mi);
                }
@@ -512,7 +509,7 @@ build_spelling_menu (ESpellEntry *entry,
                        submi = gtk_menu_item_new_with_label (lang_name ? lang_name : "???");
                        g_object_set_data (G_OBJECT (submi), "spell-entry-checker", dict);
                        g_signal_connect (
-                               G_OBJECT (submi), "activate",
+                               submi, "activate",
                                G_CALLBACK (add_to_dictionary), entry);
 
                        gtk_widget_show (submi);
@@ -641,7 +638,7 @@ spell_entry_load_spell_languages (ESpellEntry *entry)
 {
        ESpellChecker *spell_checker;
        GSettings *settings;
-       GList *dicts = NULL;
+       GList *list = NULL;
        gchar **strv;
        gint ii;
 
@@ -654,32 +651,30 @@ spell_entry_load_spell_languages (ESpellEntry *entry)
 
        /* Convert the codes to spell language structs. */
        for (ii = 0; strv[ii] != NULL; ii++) {
+               ESpellDictionary *dictionary;
                gchar *language_code = strv[ii];
-               ESpellDictionary *dict;
 
-               dict  = e_spell_checker_lookup_dictionary (spell_checker, language_code);
-               if (dict != NULL)
-                       dicts = g_list_prepend (
-                               dicts, (gpointer) dict);
+               dictionary = e_spell_checker_lookup_dictionary (
+                       spell_checker, language_code);
+               if (dictionary != NULL)
+                       list = g_list_prepend (list, dictionary);
        }
 
        g_strfreev (strv);
 
-       dicts = g_list_reverse (dicts);
+       list = g_list_reverse (list);
 
        /* Pick a default spell language if it came back empty. */
-       if (dicts == NULL) {
-               ESpellDictionary *dict;
-
-               dict = e_spell_checker_lookup_dictionary (spell_checker, NULL);
+       if (list == NULL) {
+               ESpellDictionary *dictionary;
 
-               if (dict) {
-                       dicts = g_list_prepend (
-                               dicts, (gpointer) dict);
-               }
+               dictionary = e_spell_checker_lookup_dictionary (
+                       spell_checker, NULL);
+               if (dictionary != NULL)
+                       list = g_list_prepend (list, dictionary);
        }
 
-       return dicts;
+       return list;
 }
 
 static void
@@ -953,17 +948,15 @@ e_spell_entry_set_languages (ESpellEntry *spell_entry,
 
        spell_entry->priv->custom_checkers = TRUE;
 
-       if (spell_entry->priv->dictionaries) {
+       if (spell_entry->priv->dictionaries)
                g_list_free_full (spell_entry->priv->dictionaries, g_object_unref);
-       }
        spell_entry->priv->dictionaries = NULL;
 
        spell_entry->priv->dictionaries = g_list_copy (dictionaries);
        g_list_foreach (spell_entry->priv->dictionaries, (GFunc) g_object_ref, NULL);
 
-       if (gtk_widget_get_realized (GTK_WIDGET (spell_entry))) {
+       if (gtk_widget_get_realized (GTK_WIDGET (spell_entry)))
                spell_entry_recheck_all (spell_entry);
-       }
 }
 
 gboolean
@@ -980,7 +973,7 @@ e_spell_entry_set_checking_enabled (ESpellEntry *spell_entry,
 {
        g_return_if_fail (E_IS_SPELL_ENTRY (spell_entry));
 
-       if ((enable_checking ? 1 : 0) == (spell_entry->priv->checking_enabled ? 1 : 0))
+       if (spell_entry->priv->checking_enabled == enable_checking)
                return;
 
        spell_entry->priv->checking_enabled = enable_checking;
diff --git a/e-util/test-editor.c b/e-util/test-editor.c
index c67ef2d..7c9cb88 100644
--- a/e-util/test-editor.c
+++ b/e-util/test-editor.c
@@ -129,13 +129,13 @@ static void
 view_source_dialog (EEditor *editor,
                     const gchar *title,
                     gboolean plain_text,
-                   gboolean show_source)
+                    gboolean show_source)
 {
        GtkWidget *dialog;
        GtkWidget *content;
        GtkWidget *content_area;
        GtkWidget *scrolled_window;
-       gchar* html;
+       gchar * html;
 
        dialog = gtk_dialog_new_with_buttons (
                title,
@@ -160,7 +160,6 @@ view_source_dialog (EEditor *editor,
        gtk_container_set_border_width (GTK_CONTAINER (scrolled_window), 6);
        gtk_window_set_default_size (GTK_WINDOW (dialog), 400, 300);
 
-
        if (plain_text) {
                html = e_editor_widget_get_text_plain (
                                e_editor_get_editor_widget (editor));
@@ -172,7 +171,6 @@ view_source_dialog (EEditor *editor,
        if (show_source || plain_text) {
                GtkTextBuffer *buffer;
 
-
                content = gtk_text_view_new ();
                buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (content));
                gtk_text_buffer_set_text (buffer, html, -1);
@@ -251,7 +249,7 @@ action_save_as_cb (GtkAction *action,
 
 static void
 action_toggle_editor (GtkAction *action,
-                     EEditor *editor)
+                      EEditor *editor)
 {
        EEditorWidget *widget;
 
@@ -284,7 +282,7 @@ action_view_plain_source (GtkAction *action,
 
 static void
 action_view_inspector (GtkAction *action,
-                      EEditor *editor)
+                       EEditor *editor)
 {
        WebKitWebInspector *inspector;
        EEditorWidget *widget;
@@ -385,11 +383,10 @@ static GtkActionEntry view_entries[] = {
          NULL }
 };
 
-
 static WebKitWebView *
 open_inspector (WebKitWebInspector *inspector,
-               WebKitWebView *webview,
-               gpointer user_data)
+                WebKitWebView *webview,
+                gpointer user_data)
 {
        GtkWidget *window;
        GtkWidget *inspector_view;
@@ -422,18 +419,19 @@ gint main (gint argc,
 
        gtk_init (&argc, &argv);
 
-        window = g_object_new (E_TYPE_EDITOR_WINDOW, GTK_WINDOW_TOPLEVEL, NULL);
-        gtk_widget_set_size_request (window, 600, 400);
-        g_signal_connect_swapped (window, "destroy",
-                G_CALLBACK (gtk_main_quit), NULL);
+       window = g_object_new (E_TYPE_EDITOR_WINDOW, GTK_WINDOW_TOPLEVEL, NULL);
+       gtk_widget_set_size_request (window, 600, 400);
+       g_signal_connect_swapped (
+               window, "destroy",
+               G_CALLBACK (gtk_main_quit), NULL);
 
        editor = e_editor_window_get_editor (E_EDITOR_WINDOW (window));
        inspector = webkit_web_view_get_inspector (
                        WEBKIT_WEB_VIEW (e_editor_get_editor_widget (
                                E_EDITOR (editor))));
-       g_signal_connect (inspector, "inspect-web-view",
-                         G_CALLBACK (open_inspector), NULL);
-
+       g_signal_connect (
+               inspector, "inspect-web-view",
+               G_CALLBACK (open_inspector), NULL);
 
        manager = e_editor_get_ui_manager (E_EDITOR (editor));
 
diff --git a/mail/em-composer-utils.c b/mail/em-composer-utils.c
index 9d4859c..62fec3d 100644
--- a/mail/em-composer-utils.c
+++ b/mail/em-composer-utils.c
@@ -448,6 +448,7 @@ composer_presend_check_unwanted_html (EMsgComposer *composer,
        EComposerHeaderTable *table;
        GSettings *settings;
        gboolean check_passed = TRUE;
+       gboolean html_mode;
        gboolean send_html;
        gboolean confirm_html;
        gint ii;
@@ -462,6 +463,7 @@ composer_presend_check_unwanted_html (EMsgComposer *composer,
        recipients = e_composer_header_table_get_destinations (table);
        editor = e_editor_window_get_editor (E_EDITOR_WINDOW (composer));
        editor_widget = e_editor_get_editor_widget (editor);
+       html_mode = e_editor_widget_get_html_mode (editor_widget);
 
        send_html = g_settings_get_boolean (settings, "composer-send-html");
        confirm_html = g_settings_get_boolean (settings, "prompt-on-unwanted-html");
@@ -469,8 +471,7 @@ composer_presend_check_unwanted_html (EMsgComposer *composer,
        /* Only show this warning if our default is to send html.  If it
         * isn't, we've manually switched into html mode in the composer
         * and (presumably) had a good reason for doing this. */
-       if (e_editor_widget_get_html_mode (editor_widget) && send_html &&
-           confirm_html && recipients != NULL) {
+       if (html_mode && send_html && confirm_html && recipients != NULL) {
                gboolean html_problem = FALSE;
 
                for (ii = 0; recipients[ii] != NULL; ii++) {
@@ -599,6 +600,7 @@ exit:
                        E_EDITOR_WINDOW (async_context->composer));
                editor_widget = e_editor_get_editor_widget (editor);
                e_editor_widget_set_changed (editor_widget, TRUE);
+
                gtk_window_present (GTK_WINDOW (async_context->composer));
        }
 
diff --git a/mail/em-utils.c b/mail/em-utils.c
index a6aae98..44556b9 100644
--- a/mail/em-utils.c
+++ b/mail/em-utils.c
@@ -1191,7 +1191,7 @@ em_utils_message_to_html (CamelSession *session,
                           const gchar *credits,
                           guint32 flags,
                           EMailPartList *parts_list,
-                         const gchar *prepend,
+                          const gchar *prepend,
                           const gchar *append,
                           EMailPartValidityFlags *validity_found)
 {
diff --git a/modules/mail/e-mail-shell-backend.c b/modules/mail/e-mail-shell-backend.c
index b3b3030..1a36b25 100644
--- a/modules/mail/e-mail-shell-backend.c
+++ b/modules/mail/e-mail-shell-backend.c
@@ -494,16 +494,17 @@ mail_shell_backend_window_added_cb (GtkApplication *application,
                EEditorWidget *editor_widget;
                ESpellChecker *spell_checker;
                GSettings *settings;
+               GList *list;
                gboolean active = TRUE;
 
                editor = e_editor_window_get_editor (E_EDITOR_WINDOW (window));
                editor_widget = e_editor_get_editor_widget (editor);
 
-               spell_checker = e_editor_widget_get_spell_checker (editor_widget);
-               spell_languages = e_load_spell_languages (spell_checker);
-
-               e_editor_widget_set_spell_languages (editor_widget, spell_languages);
-               g_list_free_full (spell_languages, g_object_unref);
+               spell_checker =
+                       e_editor_widget_get_spell_checker (editor_widget);
+               list = e_load_spell_languages (spell_checker);
+               e_editor_widget_set_spell_languages (editor_widget, list);
+               g_list_free_full (list, (GDestroyNotify) g_object_unref);
 
                settings = g_settings_new ("org.gnome.evolution.mail");
 
diff --git a/modules/mail/em-composer-prefs.c b/modules/mail/em-composer-prefs.c
index e350045..b790f7d 100644
--- a/modules/mail/em-composer-prefs.c
+++ b/modules/mail/em-composer-prefs.c
@@ -57,7 +57,10 @@ composer_prefs_dispose (GObject *object)
 {
        EMComposerPrefs *prefs = (EMComposerPrefs *) object;
 
-       g_clear_object (&prefs->builder);
+       if (prefs->builder != NULL) {
+               g_object_unref (prefs->builder);
+               prefs->builder = NULL;
+       }
 
        /* Chain up to parent's dispose() method. */
        G_OBJECT_CLASS (em_composer_prefs_parent_class)->dispose (object);
@@ -1003,7 +1006,6 @@ em_composer_prefs_construct (EMComposerPrefs *prefs,
        prefs->builder = gtk_builder_new ();
        e_load_ui_builder_definition (prefs->builder, "mail-config.ui");
 
-
        prefs->spell_checker = e_spell_checker_instance ();
 
        /** @HookPoint-EMConfig: Mail Composer Preferences
@@ -1169,7 +1171,6 @@ em_composer_prefs_construct (EMComposerPrefs *prefs,
                store, "row-changed",
                G_CALLBACK (spell_language_save), prefs);
 
-
        /* Forwards and Replies */
        widget = e_builder_get_widget (prefs->builder, "comboboxForwardStyle");
        g_settings_bind (
diff --git a/modules/mail/em-composer-prefs.h b/modules/mail/em-composer-prefs.h
index b10c8b8..5b72293 100644
--- a/modules/mail/em-composer-prefs.h
+++ b/modules/mail/em-composer-prefs.h
@@ -53,7 +53,7 @@ typedef struct _EMComposerPrefsClass EMComposerPrefsClass;
 struct _ESignature;
 
 struct _EMComposerPrefs {
-       GtkVBox parent;
+       GtkBox parent;
 
        GtkBuilder *builder;
 
@@ -72,7 +72,7 @@ struct _EMComposerPrefs {
 };
 
 struct _EMComposerPrefsClass {
-       GtkVBoxClass parent_class;
+       GtkBoxClass parent_class;
 };
 
 GType          em_composer_prefs_get_type      (void);
diff --git a/plugins/external-editor/external-editor.c b/plugins/external-editor/external-editor.c
index ed5b0ae..6199136 100644
--- a/plugins/external-editor/external-editor.c
+++ b/plugins/external-editor/external-editor.c
@@ -160,11 +160,7 @@ enable_disable_composer (EMsgComposer *composer,
        editor = e_editor_window_get_editor (E_EDITOR_WINDOW (composer));
        editor_widget = e_editor_get_editor_widget (editor);
 
-       if (enable) {
-               webkit_web_view_set_editable (WEBKIT_WEB_VIEW (editor_widget), TRUE);
-       } else {
-               webkit_web_view_set_editable (WEBKIT_WEB_VIEW (editor_widget), FALSE);
-       }
+       webkit_web_view_set_editable (WEBKIT_WEB_VIEW (editor_widget), enable);
 
        action = E_EDITOR_ACTION_EDIT_MENU (editor);
        gtk_action_set_sensitive (action, enable);
@@ -266,16 +262,16 @@ get_caret_position (EEditorWidget *widget)
        document = webkit_web_view_get_dom_document (WEBKIT_WEB_VIEW (widget));
        window = webkit_dom_document_get_default_view (document);
        selection = webkit_dom_dom_window_get_selection (window);
-       if (webkit_dom_dom_selection_get_range_count (selection) < 1) {
+
+       if (webkit_dom_dom_selection_get_range_count (selection) < 1)
                return 0;
-       }
 
        range = webkit_dom_dom_selection_get_range_at (selection, 0, NULL);
        range_count = 0;
        nodes = webkit_dom_node_get_child_nodes (
-                       webkit_dom_node_get_parent_node (
-                               webkit_dom_dom_selection_get_anchor_node (
-                                       selection)));
+               webkit_dom_node_get_parent_node (
+                       webkit_dom_dom_selection_get_anchor_node (
+                               selection)));
        length = webkit_dom_node_list_get_length (nodes);
        for (ii = 0; ii < length; ii++) {
                WebKitDOMNode *node;
@@ -408,8 +404,9 @@ async_external_editor (EMsgComposer *composer)
                        htmltext = camel_text_to_html (
                                buf, CAMEL_MIME_FILTER_TOHTML_PRE, 0);
 
-                       array = g_array_sized_new (TRUE, TRUE,
-                                                  sizeof (gpointer), 2 * sizeof (gpointer));
+                       array = g_array_sized_new (
+                               TRUE, TRUE,
+                               sizeof (gpointer), 2 * sizeof (gpointer));
                        array = g_array_append_val (array, composer);
                        array = g_array_append_val (array, htmltext);
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]