Fixes NB#117428, allow special characters in region list search field
[modest] / src / maemo / modest-msg-edit-window.c
index c7fa46b..89da6dd 100644 (file)
@@ -288,6 +288,8 @@ struct _ModestMsgEditWindowPrivate {
        TnyMsg      *draft_msg;
        TnyMsg      *outbox_msg;
        gchar       *msg_uid;
+       gchar       *references;
+       gchar       *in_reply_to;
 
        gboolean    sent;
 };
@@ -425,6 +427,8 @@ modest_msg_edit_window_init (ModestMsgEditWindow *obj)
        priv->draft_msg = NULL;
        priv->outbox_msg = NULL;
        priv->msg_uid = NULL;
+       priv->references = NULL;
+       priv->in_reply_to = NULL;
 
        priv->can_undo = FALSE;
        priv->can_redo = FALSE;
@@ -475,7 +479,7 @@ get_transports (void)
                gchar *from_string  = NULL;
                if (account_name) {
                        from_string = modest_account_mgr_get_from_string (account_mgr,
-                                                                         account_name);
+                                                                         account_name, NULL);
                }
                
                if (from_string && account_name) {
@@ -963,6 +967,8 @@ modest_msg_edit_window_finalize (GObject *obj)
        if (priv->original_account_name)
                g_free (priv->original_account_name);
        g_free (priv->msg_uid);
+       g_free (priv->references);
+       g_free (priv->in_reply_to);
        g_free (priv->last_search);
        g_slist_free (priv->font_items_group);
        g_slist_free (priv->size_items_group);
@@ -1189,6 +1195,7 @@ set_msg (ModestMsgEditWindow *self, TnyMsg *msg, gboolean preserve_is_rich)
                gtk_entry_set_text (GTK_ENTRY(priv->subject_field), subject);
        modest_msg_edit_window_set_priority_flags (MODEST_MSG_EDIT_WINDOW(self),
                                                   priority_flags);
+       modest_tny_msg_get_references (TNY_MSG (msg), NULL, &(priv->references), &(priv->in_reply_to));
 
        update_window_title (self);
 
@@ -1470,7 +1477,10 @@ modest_msg_edit_window_setup_toolbar (ModestMsgEditWindow *window)
 
 
 ModestWindow*
-modest_msg_edit_window_new (TnyMsg *msg, const gchar *account_name, gboolean preserve_is_rich)
+modest_msg_edit_window_new (TnyMsg *msg, 
+                           const gchar *account_name, 
+                           const gchar *mailbox, /* ignored */
+                           gboolean preserve_is_rich)
 {
        GObject *obj;
        ModestWindowPrivate *parent_priv;
@@ -1617,12 +1627,14 @@ modest_msg_edit_window_get_msg_data (ModestMsgEditWindow *edit_window)
        /* don't free these (except from) */
        data = g_slice_new0 (MsgData);
        data->from    =  modest_account_mgr_get_from_string (modest_runtime_get_account_mgr(),
-                                                            account_name);
+                                                            account_name, NULL);
        data->account_name = g_strdup (account_name);
        data->to      =  g_strdup (modest_recpt_editor_get_recipients (MODEST_RECPT_EDITOR (priv->to_field)));
        data->cc      =  g_strdup (modest_recpt_editor_get_recipients (MODEST_RECPT_EDITOR (priv->cc_field)));
        data->bcc     =  g_strdup (modest_recpt_editor_get_recipients (MODEST_RECPT_EDITOR (priv->bcc_field)));
        data->subject =  g_strdup (gtk_entry_get_text (GTK_ENTRY (priv->subject_field)));
+       data->references = g_strdup (priv->references);
+       data->in_reply_to = g_strdup (priv->in_reply_to);
        if (priv->draft_msg) {
                data->draft_msg = g_object_ref (priv->draft_msg);
        } else if (priv->outbox_msg) {
@@ -1722,6 +1734,8 @@ modest_msg_edit_window_free_msg_data (ModestMsgEditWindow *edit_window,
        g_free (data->plain_body);
        g_free (data->html_body);
        g_free (data->account_name);
+       g_free (data->in_reply_to);
+       g_free (data->references);
        
        if (data->draft_msg != NULL) {
                g_object_unref (data->draft_msg);
@@ -2703,7 +2717,7 @@ modest_msg_edit_window_open_addressbook (ModestMsgEditWindow *window,
 
        }
 
-       modest_address_book_select_addresses (editor);
+       modest_address_book_select_addresses (editor, GTK_WINDOW (window));
 
 }