[evolution/webkit-composer: 57/58] Merge branch 'master' into webkit-composer



commit ae23c2df2e0b8848f6a4ad7d78f9ed61e4ddd0d8
Merge: b641ed0 4411abe
Author: Dan VrÃtil <dvratil redhat com>
Date:   Tue Nov 27 17:08:36 2012 +0100

    Merge branch 'master' into webkit-composer
    
    Conflicts:
    	composer/e-msg-composer.c
    	em-format/e-mail-formatter-quote-attachment.c
    	em-format/e-mail-formatter-quote.c
    	modules/mail/e-mail-config-web-view.c
    	plugins/external-editor/external-editor.c
    	widgets/misc/e-spell-entry.c

 NEWS                                               |   56 +
 .../gui/contact-editor/e-contact-editor-fullname.c |   13 +-
 addressbook/gui/contact-editor/e-contact-editor.c  |   29 +-
 .../gui/contact-editor/e-contact-quick-add.c       |   42 +-
 addressbook/gui/contact-editor/eab-editor.c        |   79 +-
 .../contact-list-editor/e-contact-list-editor.c    |   32 +-
 .../gui/contact-list-editor/e-contact-list-model.c |   37 +-
 addressbook/gui/merging/eab-contact-compare.c      |    2 +-
 addressbook/gui/widgets/e-addressbook-model.c      |  209 +-
 .../gui/widgets/e-addressbook-reflow-adapter.c     |  192 +-
 addressbook/gui/widgets/e-addressbook-view.c       |   15 +-
 addressbook/gui/widgets/e-minicard-label.c         |  374 +-
 addressbook/gui/widgets/e-minicard-view-widget.c   |  194 +-
 addressbook/gui/widgets/e-minicard-view.c          |  221 +-
 addressbook/gui/widgets/e-minicard.c               |  538 +-
 addressbook/gui/widgets/ea-addressbook-view.c      |   10 +-
 addressbook/gui/widgets/ea-addressbook.c           |    9 +-
 addressbook/gui/widgets/ea-minicard-view.c         |   33 +-
 addressbook/gui/widgets/ea-minicard.c              |   22 +-
 addressbook/gui/widgets/eab-contact-display.c      |   16 +-
 addressbook/gui/widgets/eab-contact-formatter.c    |   53 +-
 addressbook/gui/widgets/eab-gui-util.c             |   17 +-
 addressbook/importers/evolution-ldif-importer.c    |   15 +-
 addressbook/importers/evolution-vcard-importer.c   |   36 +-
 addressbook/printing/e-contact-print.c             |   81 +-
 calendar/alarm-notify/alarm-notify-dialog.c        |   16 +-
 calendar/alarm-notify/alarm-notify.c               |   15 +-
 calendar/alarm-notify/alarm-queue.c                |   42 +-
 calendar/alarm-notify/alarm.c                      |    5 +-
 calendar/alarm-notify/config-data.c                |   40 +-
 calendar/alarm-notify/config-data.h                |    2 +
 calendar/alarm-notify/notify-main.c                |    2 +
 calendar/calendar.error.xml                        |   54 +-
 calendar/gui/calendar-config.c                     |    9 +-
 calendar/gui/comp-util.c                           |   28 +-
 calendar/gui/dialogs/alarm-dialog.c                |   15 +-
 calendar/gui/dialogs/changed-comp.c                |   17 +-
 calendar/gui/dialogs/comp-editor-page.c            |   26 +-
 calendar/gui/dialogs/comp-editor.c                 |   96 +-
 calendar/gui/dialogs/delete-comp.c                 |   10 +-
 calendar/gui/dialogs/delete-error.c                |    7 +-
 calendar/gui/dialogs/e-delegate-dialog.c           |    5 +-
 calendar/gui/dialogs/e-send-options-utils.c        |    6 +-
 calendar/gui/dialogs/event-editor.c                |    4 +-
 calendar/gui/dialogs/event-page.c                  |  289 +-
 calendar/gui/dialogs/goto-dialog.c                 |   14 +-
 calendar/gui/dialogs/memo-page.c                   |   57 +-
 calendar/gui/dialogs/recurrence-page.c             |  247 +-
 calendar/gui/dialogs/schedule-page.c               |   95 +-
 calendar/gui/dialogs/send-comp.c                   |   40 +-
 calendar/gui/dialogs/task-details-page.c           |   73 +-
 calendar/gui/dialogs/task-page.c                   |  130 +-
 calendar/gui/e-alarm-list.c                        |   20 +-
 calendar/gui/e-cal-component-preview.c             |   27 +-
 calendar/gui/e-cal-list-view.c                     |   45 +-
 calendar/gui/e-cal-model-calendar.c                |   32 +-
 calendar/gui/e-cal-model-memos.c                   |   13 +-
 calendar/gui/e-cal-model-tasks.c                   |   62 +-
 calendar/gui/e-cal-model.c                         |  249 +-
 calendar/gui/e-calendar-view.c                     |   30 +-
 calendar/gui/e-cell-date-edit-text.c               |    2 +-
 calendar/gui/e-date-time-list.c                    |    9 +-
 calendar/gui/e-day-view-layout.c                   |   17 +-
 calendar/gui/e-day-view-main-item.c                |  145 +-
 calendar/gui/e-day-view-time-item.c                |   83 +-
 calendar/gui/e-day-view-top-item.c                 |  131 +-
 calendar/gui/e-day-view.c                          |  933 +-
 calendar/gui/e-meeting-attendee.c                  |   50 +-
 calendar/gui/e-meeting-attendee.h                  |    4 +-
 calendar/gui/e-meeting-list-view.c                 |   78 +-
 calendar/gui/e-meeting-store.c                     |  109 +-
 calendar/gui/e-meeting-time-sel-item.c             |  135 +-
 calendar/gui/e-meeting-time-sel.c                  |  557 +-
 calendar/gui/e-meeting-types.h                     |   24 +
 calendar/gui/e-meeting-utils.c                     |  126 +-
 calendar/gui/e-meeting-utils.h                     |   14 +-
 calendar/gui/e-memo-table.c                        |    2 +-
 calendar/gui/e-select-names-editable.c             |    7 +-
 calendar/gui/e-select-names-renderer.c             |    2 +-
 calendar/gui/e-task-table.c                        |  162 +-
 calendar/gui/e-timezone-entry.h                    |    4 +-
 calendar/gui/e-week-view-event-item.c              |   82 +-
 calendar/gui/e-week-view-layout.c                  |   48 +-
 calendar/gui/e-week-view-main-item.c               |   26 +-
 calendar/gui/e-week-view-titles-item.c             |    7 +-
 calendar/gui/e-week-view.c                         |  372 +-
 calendar/gui/ea-cal-view-event.c                   |   36 +-
 calendar/gui/ea-cal-view.c                         |   20 +-
 calendar/gui/ea-calendar-helpers.c                 |   18 +-
 calendar/gui/ea-day-view-cell.c                    |   57 +-
 calendar/gui/ea-day-view-main-item.c               |  163 +-
 calendar/gui/ea-day-view.c                         |   27 +-
 calendar/gui/ea-gnome-calendar.c                   |   77 +-
 calendar/gui/ea-jump-button.c                      |    4 +-
 calendar/gui/ea-week-view-cell.c                   |   50 +-
 calendar/gui/ea-week-view-main-item.c              |  128 +-
 calendar/gui/ea-week-view.c                        |   23 +-
 calendar/gui/gnome-cal.c                           |  359 +-
 calendar/gui/itip-utils.c                          |   94 +-
 calendar/gui/print.c                               |  630 +-
 calendar/gui/weekday-picker.c                      |   60 +-
 calendar/importers/icalendar-importer.c            |   32 +-
 composer/e-composer-header-table.c                 |   87 +-
 composer/e-composer-header.c                       |    4 +-
 composer/e-composer-name-header.c                  |    6 +-
 composer/e-msg-composer.c                          |   10 +-
 configure.ac                                       |   41 +-
 e-util/e-config.c                                  |    2 +-
 e-util/e-config.h                                  |    4 +-
 e-util/e-datetime-format.c                         |    2 +-
 e-util/e-event.h                                   |    2 +-
 e-util/e-plugin.c                                  |    2 +-
 e-util/e-ui-manager.c                              |    2 +-
 em-format/e-mail-extension-registry.c              |    8 +-
 em-format/e-mail-formatter-attachment-bar.c        |    5 +-
 em-format/e-mail-formatter-attachment.c            |   26 +-
 em-format/e-mail-formatter-error.c                 |    3 +-
 em-format/e-mail-formatter-headers.c               |   18 +-
 em-format/e-mail-formatter-message-rfc822.c        |    3 +-
 em-format/e-mail-formatter-print-headers.c         |   24 +-
 em-format/e-mail-formatter-print.c                 |   21 +-
 em-format/e-mail-formatter-quote-attachment.c      |   14 +-
 em-format/e-mail-formatter-quote.c                 |    9 +-
 em-format/e-mail-formatter-secure-button.c         |  164 +-
 em-format/e-mail-formatter-source.c                |    3 +-
 em-format/e-mail-formatter-text-enriched.c         |    3 +-
 em-format/e-mail-formatter-text-html.c             |   38 +-
 em-format/e-mail-formatter-text-plain.c            |    8 +-
 em-format/e-mail-formatter-utils.c                 |   30 +-
 em-format/e-mail-formatter.c                       |   94 +-
 em-format/e-mail-inline-filter.c                   |    2 +-
 em-format/e-mail-parser-application-mbox.c         |   16 +-
 em-format/e-mail-parser-application-smime.c        |   19 +-
 em-format/e-mail-parser-headers.c                  |    3 +-
 em-format/e-mail-parser-inlinepgp-encrypted.c      |   31 +-
 em-format/e-mail-parser-inlinepgp-signed.c         |   38 +-
 em-format/e-mail-parser-message.c                  |    2 +-
 em-format/e-mail-parser-multipart-digest.c         |    9 +-
 em-format/e-mail-parser-multipart-encrypted.c      |   70 +-
 em-format/e-mail-parser-multipart-mixed.c          |   19 +-
 em-format/e-mail-parser-multipart-signed.c         |   73 +-
 em-format/e-mail-parser-text-plain.c               |   18 +-
 em-format/e-mail-parser.c                          |   55 +-
 em-format/e-mail-part-utils.c                      |   18 +-
 em-format/e-mail-part.c                            |   83 +-
 em-format/e-mail-part.h                            |   14 +-
 filter/e-filter-color.c                            |    2 +-
 filter/e-filter-file.c                             |    2 +-
 filter/e-filter-part.c                             |    2 +-
 help/de/de.po                                      |  605 +-
 libemail-engine/e-mail-session-utils.c             |    8 +-
 libemail-engine/e-mail-session.c                   |   16 +-
 libemail-engine/e-mail-utils.c                     |    8 +-
 libemail-engine/mail-folder-cache.c                |   90 +-
 libemail-engine/mail-ops.c                         |   17 +-
 libemail-utils/mail-mt.c                           |   78 +-
 libevolution-utils/e-xml-utils.h                   |    2 +-
 libgnomecanvas/gnome-canvas.c                      |   14 +-
 mail/e-http-request.c                              |   28 +-
 mail/e-mail-account-store.c                        |    2 +-
 mail/e-mail-autoconfig.c                           |  637 +-
 mail/e-mail-autoconfig.h                           |    3 +-
 mail/e-mail-browser.c                              |   14 +-
 mail/e-mail-config-assistant.c                     |   87 +-
 mail/e-mail-config-auth-check.c                    |    8 +-
 mail/e-mail-display.c                              |   51 +-
 mail/e-mail-notebook-view.c                        |    2 +-
 mail/e-mail-paned-view.c                           |    2 +-
 mail/e-mail-reader-utils.c                         |   57 +-
 mail/e-mail-reader.c                               |   17 +-
 mail/e-mail-tag-editor.c                           |    4 +-
 mail/e-mail-ui-session.c                           |   12 +-
 mail/e-mail-ui-session.h                           |    4 +
 mail/e-mail-view.c                                 |    4 +-
 mail/e-mail-view.h                                 |    4 +-
 mail/em-composer-utils.c                           |   14 +-
 mail/em-composer-utils.h                           |    5 +
 mail/em-folder-tree.c                              |   25 +-
 mail/em-utils.c                                    |   18 +-
 mail/importers/elm-importer.c                      |   14 +-
 mail/importers/evolution-mbox-importer.c           |   14 +-
 mail/importers/mail-importer.c                     |    2 +-
 mail/importers/pine-importer.c                     |   14 +-
 mail/mail-send-recv.c                              |   17 +-
 mail/message-list.c                                |   20 +-
 mail/message-list.h                                |    2 +-
 mail/test-mail-autoconfig.c                        |    2 +-
 modules/addressbook/e-book-shell-content.c         |    4 +-
 modules/backup-restore/Makefile.am                 |    1 +
 modules/backup-restore/evolution-backup-tool.c     |   71 +-
 modules/bogofilter/evolution-bogofilter.c          |    2 +-
 modules/book-config-ldap/e-source-ldap.c           |   28 +-
 .../book-config-ldap/evolution-book-config-ldap.c  |   14 +-
 .../evolution-book-config-webdav.c                 |    7 +-
 modules/cal-config-caldav/e-caldav-chooser.c       |    2 +-
 .../evolution-cal-config-caldav.c                  |  189 +-
 modules/cal-config-contacts/e-source-contacts.c    |    2 +-
 modules/cal-config-local/e-source-local.c          |   14 +-
 modules/cal-config-weather/e-source-weather.c      |   16 +-
 modules/calendar/e-cal-shell-backend.c             |   13 +-
 modules/calendar/e-cal-shell-sidebar.c             |   22 +-
 modules/calendar/e-cal-shell-view-private.c        |    6 +-
 modules/calendar/e-cal-shell-view.c                |    2 +-
 modules/calendar/e-calendar-preferences.h          |    4 +-
 modules/calendar/e-memo-shell-content.c            |    2 +-
 modules/calendar/e-memo-shell-sidebar.c            |   22 +-
 modules/calendar/e-memo-shell-view-actions.c       |    2 +-
 modules/calendar/e-task-shell-content.c            |    4 +-
 modules/calendar/e-task-shell-sidebar.c            |   22 +-
 modules/calendar/e-task-shell-view-actions.c       |    2 +-
 modules/calendar/e-task-shell-view.c               |    2 +-
 modules/itip-formatter/e-source-conflict-search.c  |    2 +-
 modules/itip-formatter/itip-view.c                 |  118 +-
 modules/mail-config/e-mail-config-google-summary.c |   16 +-
 .../mail-config/e-mail-config-sendmail-backend.c   |    5 +-
 modules/mail/Makefile.am                           |    2 +
 modules/mail/e-mail-attachment-handler.c           |    2 +-
 modules/mail/e-mail-config-web-view.c              |   47 +-
 modules/mail/e-mail-shell-view-actions.c           |   63 +
 modules/mail/e-mail-shell-view-actions.h           |    2 +
 modules/mail/e-mail-shell-view-private.c           |  105 +-
 modules/mail/e-mail-shell-view.c                   |    4 +
 modules/mail/em-composer-prefs.h                   |    4 +-
 modules/mail/em-mailer-prefs.h                     |    4 +-
 modules/mail/em-network-prefs.h                    |    4 +-
 modules/mail/evolution-module-mail.c               |    2 +
 modules/prefer-plain/e-mail-parser-prefer-plain.c  |    5 +-
 modules/spamassassin/evolution-spamassassin.c      |   30 +-
 .../e-mail-parser-tnef-attachment.c                |    4 +-
 plugins/bbdb/bbdb.c                                |   24 +-
 plugins/bbdb/gaimbuddies.c                         |    5 +-
 plugins/dbx-import/dbx-importer.c                  |   22 +-
 plugins/email-custom-header/email-custom-header.c  |   26 +-
 plugins/external-editor/external-editor.c          |   59 +-
 plugins/mail-notification/mail-notification.c      |   14 +-
 plugins/mail-to-task/mail-to-task.c                |   92 +-
 .../mailing-list-actions/mailing-list-actions.c    |   11 +-
 plugins/pst-import/pst-importer.c                  |   44 +-
 plugins/publish-calendar/publish-calendar.c        |   82 +-
 plugins/publish-calendar/url-editor-dialog.c       |   13 +-
 plugins/save-calendar/rdf-format.c                 |    5 +-
 plugins/save-calendar/save-calendar.c              |   30 +-
 plugins/templates/templates.c                      |   86 +-
 po/as.po                                           | 6559 ++++----
 po/cs.po                                           | 2438 +---
 po/de.po                                           | 3299 ++--
 po/en_GB.po                                        | 1018 +-
 po/ja.po                                           |18381 ++++++++++----------
 po/nb.po                                           | 3313 ++--
 po/ru.po                                           |  207 +-
 shell/e-convert-local-mail.c                       |    4 +-
 shell/e-shell-searchbar.c                          |  106 +-
 shell/e-shell-settings.c                           |    2 +-
 shell/e-shell-switcher.c                           |    2 +-
 shell/e-shell-taskbar.h                            |    4 +-
 shell/e-shell-window-actions.c                     |    3 +-
 shell/e-shell-window.c                             |   10 +-
 shell/e-shell.c                                    |   27 +-
 shell/main.c                                       |   19 +-
 smime/gui/cert-trust-dialog.c                      |   44 +-
 smime/gui/certificate-manager.c                    |   98 +-
 smime/gui/certificate-viewer.c                     |   93 +-
 smime/gui/e-cert-selector.c                        |    3 +-
 smime/lib/e-cert-db.c                              |  187 +-
 smime/lib/e-cert-trust.c                           |   12 +-
 smime/lib/e-cert.c                                 |   14 +-
 smime/lib/e-pkcs12.c                               |   27 +-
 ui/evolution-mail.ui                               |    1 +
 widgets/e-timezone-dialog/e-timezone-dialog.c      |  102 +-
 widgets/menus/gal-define-views-dialog.c            |   88 +-
 widgets/menus/gal-define-views-model.c             |   32 +-
 widgets/menus/gal-view-collection.c                |   61 +-
 widgets/menus/gal-view-etable.c                    |   26 +-
 widgets/menus/gal-view-instance-save-as-dialog.c   |   41 +-
 widgets/menus/gal-view-instance.c                  |   99 +-
 widgets/menus/gal-view-new-dialog.c                |    7 +-
 widgets/misc/e-alert-bar.c                         |   12 +-
 widgets/misc/e-attachment-bar.c                    |   10 +-
 widgets/misc/e-attachment-bar.h                    |    4 +-
 widgets/misc/e-attachment-button.c                 |    4 +-
 widgets/misc/e-attachment-button.h                 |    4 +-
 widgets/misc/e-attachment-paned.c                  |    6 +-
 widgets/misc/e-attachment-tree-view.c              |    2 +-
 widgets/misc/e-attachment.c                        |   77 +-
 widgets/misc/e-attachment.h                        |    9 +
 widgets/misc/e-buffer-tagger.c                     |   23 +-
 widgets/misc/e-calendar-item.c                     |  398 +-
 widgets/misc/e-calendar.c                          |  218 +-
 widgets/misc/e-canvas-background.c                 |   79 +-
 widgets/misc/e-canvas-vbox.c                       |  132 +-
 widgets/misc/e-canvas.c                            |   23 +-
 widgets/misc/e-contact-map-window.c                |   24 +-
 widgets/misc/e-contact-map.c                       |    3 +-
 widgets/misc/e-contact-marker.c                    |   52 +-
 widgets/misc/e-dateedit.c                          |  162 +-
 widgets/misc/e-dateedit.h                          |    4 +-
 widgets/misc/e-image-chooser.h                     |    4 +-
 widgets/misc/e-import-assistant.c                  |    5 +-
 widgets/misc/e-mail-signature-manager.c            |    2 +-
 widgets/misc/e-map.c                               |   57 +-
 widgets/misc/e-online-button.c                     |    2 +-
 widgets/misc/e-picture-gallery.c                   |   11 +-
 widgets/misc/e-popup-action.c                      |    2 +-
 widgets/misc/e-preferences-window.c                |    3 +-
 widgets/misc/e-preview-pane.h                      |    4 +-
 widgets/misc/e-printable.c                         |  160 +-
 widgets/misc/e-search-bar.h                        |    4 +-
 widgets/misc/e-selection-model-array.c             |   54 +-
 widgets/misc/e-selection-model.c                   |   49 +-
 widgets/misc/e-send-options.c                      |    2 +-
 widgets/misc/e-source-config.c                     |    6 +-
 widgets/misc/e-spell-entry.c                       |   17 +-
 widgets/misc/e-url-entry.h                         |    4 +-
 widgets/misc/e-web-view.c                          |  227 +-
 widgets/misc/e-web-view.h                          |   14 +-
 widgets/misc/ea-calendar-cell.c                    |   45 +-
 widgets/misc/ea-calendar-item.c                    |  124 +-
 widgets/misc/test-calendar.c                       |   48 +-
 widgets/misc/test-dateedit.c                       |   45 +-
 widgets/misc/test-preferences-window.c             |   21 +-
 widgets/table/e-cell-checkbox.c                    |    5 +-
 widgets/table/e-cell-combo.c                       |   33 +-
 widgets/table/e-cell-date-edit.c                   |   53 +-
 widgets/table/e-cell-hbox.c                        |    2 +-
 widgets/table/e-cell-percent.c                     |    5 +-
 widgets/table/e-cell-pixbuf.c                      |   49 +-
 widgets/table/e-cell-popup.c                       |   80 +-
 widgets/table/e-cell-text.c                        |  282 +-
 widgets/table/e-cell-toggle.c                      |   11 +-
 widgets/table/e-cell-tree.c                        |   44 +-
 widgets/table/e-cell.h                             |    2 +-
 widgets/table/e-table-click-to-add.c               |  250 +-
 widgets/table/e-table-col.c                        |   15 +-
 widgets/table/e-table-config.c                     |   69 +-
 widgets/table/e-table-field-chooser-dialog.c       |   32 +-
 widgets/table/e-table-field-chooser-item.c         |  112 +-
 widgets/table/e-table-field-chooser.c              |  147 +-
 widgets/table/e-table-field-chooser.h              |    4 +-
 widgets/table/e-table-group-container.c            |  459 +-
 widgets/table/e-table-group-leaf.c                 |   98 +-
 widgets/table/e-table-group.c                      |  205 +-
 widgets/table/e-table-header-item.c                |  218 +-
 widgets/table/e-table-header.c                     |  149 +-
 widgets/table/e-table-item.c                       |  966 +-
 widgets/table/e-table-memory-store.c               |   29 +-
 widgets/table/e-table-model.c                      |   20 +-
 widgets/table/e-table-search.c                     |   48 +-
 widgets/table/e-table-selection-model.c            |   69 +-
 widgets/table/e-table-sort-info.c                  |   40 +-
 widgets/table/e-table-sorted-variable.c            |    5 +-
 widgets/table/e-table-sorted.c                     |    5 +-
 widgets/table/e-table-sorter.c                     |   50 +-
 widgets/table/e-table-specification.c              |    2 +-
 widgets/table/e-table-subset.c                     |   35 +-
 widgets/table/e-table-utils.c                      |    7 +-
 widgets/table/e-table.c                            |  176 +-
 widgets/table/e-tree-memory.c                      |   21 +-
 widgets/table/e-tree-model.c                       |  189 +-
 widgets/table/e-tree-sorted.c                      |   35 +-
 widgets/table/e-tree-table-adapter.c               |   22 +-
 widgets/table/e-tree.c                             |  992 +-
 widgets/table/gal-a11y-e-cell-popup.c              |   43 +-
 widgets/table/gal-a11y-e-cell-toggle.c             |   35 +-
 widgets/table/gal-a11y-e-cell-tree.c               |   73 +-
 widgets/table/gal-a11y-e-cell-vbox.c               |   12 +-
 widgets/table/gal-a11y-e-cell.c                    |   47 +-
 widgets/table/gal-a11y-e-table-click-to-add.c      |    8 +-
 widgets/table/gal-a11y-e-table-item.c              |  167 +-
 widgets/table/gal-a11y-e-table.c                   |    8 +-
 widgets/table/gal-a11y-e-tree.c                    |   13 +-
 widgets/text/e-reflow.c                            |  378 +-
 widgets/text/e-text-model.c                        |   87 +-
 widgets/text/e-text.c                              |  709 +-
 widgets/text/gal-a11y-e-text.c                     |   27 +-
 374 files changed, 30295 insertions(+), 28299 deletions(-)
---
diff --cc composer/e-msg-composer.c
index d728dd0,76cafab..379a040
--- a/composer/e-msg-composer.c
+++ b/composer/e-msg-composer.c
@@@ -3697,9 -3611,10 +3697,11 @@@ msg_composer_save_to_drafts_cb (EMsgCom
  
  	g_object_unref (message);
  
 -	if (e_msg_composer_is_exiting (composer))
 +	if (e_msg_composer_is_exiting (composer)) {
- 		g_object_weak_ref (G_OBJECT (context->activity), (GWeakNotify) gtk_widget_destroy, composer);
- 	}
+ 		g_object_weak_ref (
+ 			G_OBJECT (context->activity),
+ 			(GWeakNotify) gtk_widget_destroy, composer);
++        }
  
  	async_context_free (context);
  }
diff --cc configure.ac
index 3ffcd49,3b9ba33..d583cc5
--- a/configure.ac
+++ b/configure.ac
@@@ -31,10 -31,10 +31,10 @@@ dnl Automake 1.11 - Silent Build Rule
  m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
  
  dnl Required Packages
- m4_define([glib_minimum_version], [2.32.0])
+ m4_define([glib_minimum_version], [2.34.0])
  m4_define([gtk_minimum_version], [3.4.0])
  m4_define([eds_minimum_version], [evo_version])
 -m4_define([gtkhtml_minimum_version], [4.5.2])
 +m4_define([enchant_minimum_version], [1.1.7])
  m4_define([gnome_desktop_minimum_version], [2.91.3])
  m4_define([gnome_icon_theme_minimum_version], [2.30.2.1])
  m4_define([gsettings_desktop_schemas_minimum_version], [2.91.92])
diff --cc em-format/e-mail-formatter-quote-attachment.c
index 3d3aabc,82f1023..b1c72b4
--- a/em-format/e-mail-formatter-quote-attachment.c
+++ b/em-format/e-mail-formatter-quote-attachment.c
@@@ -102,8 -103,11 +103,7 @@@ emfqe_attachment_format (EMailFormatter
  	g_free (html);
  	g_free (text);
  
- 	camel_stream_write_string (stream,
- 			"<blockquote type=cite>\n", cancellable, NULL);
 -	camel_stream_write_string (
 -		stream,
 -		"<!--+GtkHTML:<DATA class=\"ClueFlow\" "
 -		"key=\"orig\" value=\"1\">-->\n"
 -		"<blockquote type=cite>\n", cancellable, NULL);
++	camel_stream_write_string (stream, "<blockquote type=cite>\n", cancellable, NULL);
  
  	e_mail_formatter_format_as (
  		formatter, context, att_part, stream, NULL, cancellable);
diff --cc em-format/e-mail-formatter-quote.c
index fbee7bf,2468a31..9b27d9f
--- a/em-format/e-mail-formatter-quote.c
+++ b/em-format/e-mail-formatter-quote.c
@@@ -89,8 -93,11 +89,8 @@@ mail_formatter_quote_run (EMailFormatte
  	}
  
  	if (qf->priv->flags & E_MAIL_FORMATTER_QUOTE_FLAG_CITE) {
- 		camel_stream_write_string (stream,
- 			"<blockquote type=cite>\n", cancellable, NULL);
+ 		camel_stream_write_string (
 -			stream,
 -			"<!--+GtkHTML:<DATA class=\"ClueFlow\" "
 -			"key=\"orig\" value=\"1\">-->\n"
 -			"<blockquote type=cite>\n", cancellable, NULL);
++                        stream, "<blockquote type=cite>\n", cancellable, NULL);
  	}
  
  	for (iter = context->parts; iter; iter = g_slist_next (iter)) {
diff --cc modules/mail/e-mail-config-web-view.c
index bbdb67b,7a5bc4d..c44a1fd
--- a/modules/mail/e-mail-config-web-view.c
+++ b/modules/mail/e-mail-config-web-view.c
@@@ -33,8 -33,7 +33,8 @@@
  	((obj), E_TYPE_MAIL_CONFIG_WEB_VIEW, EMailConfigWebViewPrivate))
  
  struct _EMailConfigWebViewPrivate {
 -	gint placeholder;
 +	GtkCssProvider *css_provider;
- 	EShellSettings *shell_settings;
++        EShellSettings *shell_settings;
  };
  
  G_DEFINE_DYNAMIC_TYPE (
@@@ -42,112 -41,21 +42,113 @@@
  	e_mail_config_web_view,
  	E_TYPE_EXTENSION)
  
 +/* replaces content of color string */
 +static void
 +fix_color_string (gchar *color_string)
 +{
- 	GdkColor color;
++        GdkColor color;
 +
- 	if (!color_string || strlen (color_string) < 13)
- 		return;
++        if (!color_string || strlen (color_string) < 13)
++                return;
 +
- 	if (!gdk_color_parse (color_string, &color))
- 		return;
++        if (!gdk_color_parse (color_string, &color))
++                return;
 +
- 	sprintf (
- 		color_string, "#%02x%02x%02x",
- 		(gint) color.red * 256 / 65536,
- 		(gint) color.green * 256 / 65536,
- 		(gint) color.blue * 256 / 65536);
++        sprintf (
++                color_string, "#%02x%02x%02x",
++                (gint) color.red * 256 / 65536,
++                (gint) color.green * 256 / 65536,
++                (gint) color.blue * 256 / 65536);
 +}
 +
  static void
- mail_config_web_view_load_style (EMailConfigWebView *extension)
+ mail_config_web_view_constructed (GObject *object)
  {
 -	EShell *shell;
 -	EShellSettings *shell_settings;
 +	GString *buffer;
 +	gchar *citation_color;
 +	gchar *monospace_font;
 +	gchar *variable_font;
 +	gboolean custom_fonts;
 +	gboolean mark_citations;
  	EExtensible *extensible;
 +	EShellSettings *shell_settings;
 +	GtkStyleContext *style_context;
 +	GError *error = NULL;
  
 -	shell = e_shell_get_default ();
 -	shell_settings = e_shell_get_shell_settings (shell);
 +	/* Some of our mail and composer preferences are passed down to
 +	 * GtkHtml through style properties, unfortunately.  This builds
 +	 * a style sheet for the EWebView using values from GSettings. */
 +
 +	shell_settings = extension->priv->shell_settings;
 +
 +	custom_fonts = e_shell_settings_get_boolean (
 +		shell_settings, "mail-use-custom-fonts");
 +
 +	monospace_font = e_shell_settings_get_string (
 +		shell_settings, "mail-font-monospace");
 +
 +	variable_font = e_shell_settings_get_string (
 +		shell_settings, "mail-font-variable");
 +
 +	mark_citations = e_shell_settings_get_boolean (
 +		shell_settings, "mail-mark-citations");
 +
 +	citation_color = e_shell_settings_get_string (
 +		shell_settings, "mail-citation-color");
 +
 +	buffer = g_string_new ("EWebView {\n");
 +
 +	fix_color_string (citation_color);
 +
 +	if (custom_fonts && variable_font != NULL)
 +		g_string_append_printf (
 +			buffer, "  font: %s;\n", variable_font);
 +
 +	if (custom_fonts && monospace_font != NULL)
 +		g_string_append_printf (
 +			buffer, "  -GtkHTML-fixed-font-name: '%s';\n",
 +			monospace_font);
 +
 +	if (mark_citations && citation_color != NULL)
 +		g_string_append_printf (
 +			buffer, "  -GtkHTML-cite-color: %s;\n",
 +			citation_color);
 +
 +	g_string_append (buffer, "}\n");
 +
 +	gtk_css_provider_load_from_data (
 +		extension->priv->css_provider,
 +		buffer->str, buffer->len, &error);
 +
 +	if (error != NULL) {
 +		g_warning ("%s", error->message);
 +		g_error_free (error);
 +	}
 +
 +	g_string_free (buffer, TRUE);
 +
 +	g_free (monospace_font);
 +	g_free (variable_font);
 +	g_free (citation_color);
 +
 +	extensible = e_extension_get_extensible (E_EXTENSION (extension));
 +	style_context = gtk_widget_get_style_context (GTK_WIDGET (extensible));
 +	gtk_style_context_invalidate (style_context);
 +}
 +
 +static void
 +mail_config_web_view_realize (GtkWidget *widget,
 +                              EMailConfigWebView *extension)
 +{
 +	EShellSettings *shell_settings;
 +
- 	shell_settings = extension->priv->shell_settings;
++        shell_settings = extension->priv->shell_settings;
+ 
+ 	extensible = e_extension_get_extensible (E_EXTENSION (object));
  
  	g_object_bind_property (
- 		shell_settings,
- 		"composer-inline-spelling",
- 		widget, "inline-spelling",
+ 		shell_settings, "composer-inline-spelling",
+ 		extensible, "inline-spelling",
  		G_BINDING_SYNC_CREATE);
  
  	g_object_bind_property (
@@@ -157,101 -64,11 +157,100 @@@
  		G_BINDING_SYNC_CREATE);
  
  	g_object_bind_property (
- 		shell_settings,
- 		"composer-magic-smileys",
- 		widget, "magic-smileys",
+ 		shell_settings, "composer-magic-smileys",
+ 		extensible, "magic-smileys",
  		G_BINDING_SYNC_CREATE);
  
 +	gtk_style_context_add_provider (
 +		gtk_widget_get_style_context (widget),
 +		GTK_STYLE_PROVIDER (extension->priv->css_provider),
 +		GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
 +
 +	mail_config_web_view_load_style (extension);
 +
 +	/* Reload the style sheet when certain settings change. */
 +
 +	g_signal_connect_swapped (
 +		shell_settings,
 +		"notify::mail-use-custom-fonts",
 +		G_CALLBACK (mail_config_web_view_load_style),
 +		extension);
 +
 +	g_signal_connect_swapped (
 +		shell_settings,
 +		"notify::mail-font-monospace",
 +		G_CALLBACK (mail_config_web_view_load_style),
 +		extension);
 +
 +	g_signal_connect_swapped (
 +		shell_settings,
 +		"notify::mail-font-variable",
 +		G_CALLBACK (mail_config_web_view_load_style),
 +		extension);
 +
 +	g_signal_connect_swapped (
 +		shell_settings,
 +		"notify::mail-mark-citations",
 +		G_CALLBACK (mail_config_web_view_load_style),
 +		extension);
 +
 +	g_signal_connect_swapped (
 +		shell_settings,
 +		"notify::mail-citation-color",
 +		G_CALLBACK (mail_config_web_view_load_style),
 +		extension);
 +}
 +
 +static void
 +mail_config_web_view_dispose (GObject *object)
 +{
 +	EMailConfigWebViewPrivate *priv;
 +
 +	priv = E_MAIL_CONFIG_WEB_VIEW_GET_PRIVATE (object);
 +
 +	if (priv->css_provider != NULL) {
 +		g_object_unref (priv->css_provider);
 +		priv->css_provider = NULL;
 +	}
 +
 +	if (priv->shell_settings != NULL) {
 +		g_signal_handlers_disconnect_by_func (
 +			priv->shell_settings,
 +			mail_config_web_view_load_style, object);
 +		g_object_unref (priv->shell_settings);
 +		priv->shell_settings = NULL;
 +	}
 +
 +	/* Chain up to parent's dispose() method. */
 +	G_OBJECT_CLASS (e_mail_config_web_view_parent_class)->dispose (object);
 +}
 +
 +static void
 +mail_config_web_view_constructed (GObject *object)
 +{
 +	EShell *shell;
 +	EShellSettings *shell_settings;
 +	EMailConfigWebView *extension;
 +	EExtensible *extensible;
 +
 +	shell = e_shell_get_default ();
 +	shell_settings = e_shell_get_shell_settings (shell);
 +
 +	extension = (EMailConfigWebView *) object;
 +	extensible = e_extension_get_extensible (E_EXTENSION (extension));
 +
 +	extension->priv->css_provider = gtk_css_provider_new ();
 +	extension->priv->shell_settings = g_object_ref (shell_settings);
 +
 +	/* Wait to bind shell settings until the EWebView is realized
 +	 * so GtkhtmlEditor has a chance to install a GtkHTMLEditorAPI.
 +	 * Otherwise our settings will have no effect. */
 +
 +	g_signal_connect (
 +		extensible, "realize",
 +		G_CALLBACK (mail_config_web_view_realize), extension);
 +
- 	/* Chain up to parent's consturcted() method. */
+ 	/* Chain up to parent's constructed() method. */
  	G_OBJECT_CLASS (e_mail_config_web_view_parent_class)->
  		constructed (object);
  }
@@@ -265,8 -82,7 +264,8 @@@ e_mail_config_web_view_class_init (EMai
  	g_type_class_add_private (class, sizeof (EMailConfigWebViewPrivate));
  
  	object_class = G_OBJECT_CLASS (class);
- 	object_class->dispose = mail_config_web_view_dispose;
  	object_class->constructed = mail_config_web_view_constructed;
++        object_class->dispose = mail_config_web_view_dispose;
  
  	extension_class = E_EXTENSION_CLASS (class);
  	extension_class->extensible_type = E_TYPE_WEB_VIEW;
diff --cc plugins/external-editor/external-editor.c
index e4df314,0c43acb..81d7105
--- a/plugins/external-editor/external-editor.c
+++ b/plugins/external-editor/external-editor.c
@@@ -252,52 -248,13 +251,56 @@@ numlines (const gchar *text
  	return lineno;
  }
  
 +static gint
 +get_caret_position (EEditorWidget *widget)
 +{
 +	WebKitDOMDocument *document;
 +	WebKitDOMDOMWindow *window;
 +	WebKitDOMDOMSelection *selection;
 +	WebKitDOMRange *range;
 +	gint range_count;
 +	WebKitDOMNodeList *nodes;
 +	gulong ii, length;
 +
 +	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) {
 +		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)));
 +	length = webkit_dom_node_list_get_length (nodes);
 +	for (ii = 0; ii < length; ii++) {
 +		WebKitDOMNode *node;
 +
 +		node = webkit_dom_node_list_item (nodes, ii);
 +		if (webkit_dom_node_is_same_node (
 +			node, webkit_dom_dom_selection_get_anchor_node (selection))) {
 +
 +			break;
 +		} else if (webkit_dom_node_get_node_type (node) == 3) {
 +			gchar *text = webkit_dom_node_get_text_content (node);
 +			range_count += strlen (text);
 +			g_free (text);
 +		}
 +	}
 +
 +	return webkit_dom_range_get_start_offset (range, NULL) + range_count;
 +}
 +
- void
- async_external_editor (EMsgComposer *composer)
+ static gboolean external_editor_running = FALSE;
+ static GMutex external_editor_running_lock;
+ 
+ static gpointer
+ external_editor_thread (gpointer user_data)
  {
+ 	EMsgComposer *composer = user_data;
  	gchar *filename = NULL;
  	gint status = 0;
  	GSettings *settings;
@@@ -343,8 -298,11 +347,9 @@@
  	}
  	g_object_unref (settings);
  
- 	if (g_strrstr (editor_cmd, "vim") != NULL &&
- 	    ((position = get_caret_position (editor_widget)) > 0)) {
+ 	if (g_strrstr (editor_cmd, "vim") != NULL
 -	    && gtk_html_get_cursor_pos (
 -			gtkhtml_editor_get_html (
 -			GTKHTML_EDITOR (composer)), &position, &offset)
 -				&& position >= 0 && offset >= 0) {
++	    && ((position = get_caret_position (editor_widget)) > 0)) {
++
  		gchar *tmp = editor_cmd;
  		gint lineno;
  		gboolean set_nofork;
diff --cc widgets/misc/e-spell-entry.c
index ab870c3,56f7c14..3a1ffa9
--- a/widgets/misc/e-spell-entry.c
+++ b/widgets/misc/e-spell-entry.c
@@@ -325,15 -323,15 +325,16 @@@ replace_word (GtkWidget *menuitem
  
  	gtk_editable_delete_text (GTK_EDITABLE (entry), start, end);
  	gtk_editable_set_position (GTK_EDITABLE (entry), start);
- 	gtk_editable_insert_text (GTK_EDITABLE (entry), newword, strlen (newword),
- 							 &start);
+ 	gtk_editable_insert_text (
+ 		GTK_EDITABLE (entry), newword, strlen (newword),
+ 		&start);
  	gtk_editable_set_position (GTK_EDITABLE (entry), cursor);
  
 -	checker = g_object_get_data (G_OBJECT (menuitem), "spell-entry-checker");
 +	dict = g_object_get_data (G_OBJECT (menuitem), "spell-entry-checker");
  
 -	if (checker)
 -		gtkhtml_spell_checker_store_replacement (checker, oldword, -1, newword, -1);
 +	if (dict) {
 +		e_spell_dictionary_store_correction (dict, oldword, -1, newword, -1);
 +	}
  
  	g_free (oldword);
  }
@@@ -386,9 -381,9 +387,10 @@@ build_suggestion_menu (ESpellEntry *ent
  				gtk_menu_item_set_submenu (GTK_MENU_ITEM (mi), menu);
  			}
  
 -			mi = gtk_menu_item_new_with_label (iter->data);
 -			g_object_set_data (G_OBJECT (mi), "spell-entry-checker", checker);
 +			mi = gtk_menu_item_new_with_label (suggestion);
 +			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);
  		}
@@@ -448,28 -448,33 +450,29 @@@ build_spelling_menu (ESpellEntry *entry
  
  	gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (mi), gtk_image_new_from_stock (GTK_STOCK_ADD, GTK_ICON_SIZE_MENU));
  
 -	if (!entry->priv->checkers->next) {
 -		checker = entry->priv->checkers->data;
 -		g_object_set_data (G_OBJECT (mi), "spell-entry-checker", checker);
 +	if (!entry->priv->dictionaries->next) {
 +		dict = entry->priv->dictionaries->data;
 +		g_object_set_data (G_OBJECT (mi), "spell-entry-checker", dict);
- 		g_signal_connect (G_OBJECT (mi), "activate", G_CALLBACK (add_to_dictionary), entry);
+ 		g_signal_connect (mi, "activate", G_CALLBACK (add_to_dictionary), entry);
  	} else {
 -		GSList *li;
 +		GList *li;
  		GtkWidget *menu, *submi;
  		const gchar *lang_name;
  
  		menu = gtk_menu_new ();
  		gtk_menu_item_set_submenu (GTK_MENU_ITEM (mi), menu);
  
 -		for (li = entry->priv->checkers; li; li = g_slist_next (li)) {
 -			const GtkhtmlSpellLanguage *language;
 +		for (li = entry->priv->dictionaries; li; li = g_list_next (li)) {
 +			dict = li->data;
  
 -			checker = li->data;
 -			language = gtkhtml_spell_checker_get_language (checker);
 -			if (!language)
 -				continue;
 -
 -			lang_name = gtkhtml_spell_language_get_name (language);
 +			lang_name = e_spell_dictionary_get_name (dict);
  			if (!lang_name)
 -				lang_name = gtkhtml_spell_language_get_code (language);
 +				lang_name = e_spell_dictionary_get_code (dict);
  
  			submi = gtk_menu_item_new_with_label (lang_name ? lang_name : "???");
 -			g_object_set_data (G_OBJECT (submi), "spell-entry-checker", checker);
++
 +			g_object_set_data (G_OBJECT (submi), "spell-entry-checker", dict);
- 			g_signal_connect (G_OBJECT (submi), "activate", G_CALLBACK (add_to_dictionary), entry);
+ 			g_signal_connect (submi, "activate", G_CALLBACK (add_to_dictionary), entry);
  
  			gtk_widget_show (submi);
  			gtk_menu_shell_append (GTK_MENU_SHELL (menu), submi);
@@@ -850,9 -853,9 +853,9 @@@ voi
  e_spell_entry_set_checking_enabled (ESpellEntry *spell_entry,
                                      gboolean enable_checking)
  {
 -	g_return_if_fail (spell_entry != NULL);
 +	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;



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