#include <tny-msg.h>
#include <tny-mime-part.h>
#include <tny-vfs-stream.h>
+#include <tny-error.h>
#include "modest-marshal.h"
#include "modest-platform.h"
#include <modest-utils.h>
/* Whether the message is in outbox */
gboolean is_outbox;
-
+
/* A reference to the @model of the header view
* to allow selecting previous/next messages,
* if the message is currently selected in the header view.
GtkWidget *remove_attachment_banner;
gchar *msg_uid;
-
+
GSList *sighandlers;
};
GtkTreeRowReference *row_reference);
static void setup_menu (ModestMsgViewWindow *self);
+static gboolean _modest_msg_view_window_map_event (GtkWidget *widget,
+ GdkEvent *event,
+ gpointer userdata);
/* list my signals */
enum {
priv->find_toolbar = hildon_find_toolbar_new (NULL);
hildon_window_add_toolbar (HILDON_WINDOW (obj), GTK_TOOLBAR (priv->find_toolbar));
gtk_widget_set_no_show_all (priv->find_toolbar, TRUE);
-
+
+ /* NULL-ize fields if the window is destroyed */
+ g_signal_connect (priv->msg_view, "destroy", G_CALLBACK (gtk_widget_destroyed), &(priv->msg_view));
+
gtk_widget_show_all (GTK_WIDGET(main_vbox));
}
g_signal_connect (G_OBJECT (obj), "move-focus",
G_CALLBACK (on_move_focus), obj);
+ g_signal_connect (G_OBJECT (obj), "map-event",
+ G_CALLBACK (_modest_msg_view_window_map_event),
+ G_OBJECT (obj));
+
/* Mail Operation Queue */
priv->queue_change_handler = g_signal_connect (G_OBJECT (modest_runtime_get_mail_operation_queue ()),
"queue-changed",
if ((current_search == NULL) || (strcmp (current_search, "") == 0)) {
g_free (current_search);
- hildon_banner_show_information (NULL, NULL, dgettext("hildon-common-strings", "ecdg_ib_find_rep_enter_text"));
+ hildon_banner_show_information (NULL, NULL, _CS("ecdg_ib_find_rep_enter_text"));
return;
}
result = modest_isearch_view_search (MODEST_ISEARCH_VIEW (priv->msg_view),
priv->last_search);
if (!result) {
- hildon_banner_show_information (NULL, NULL, dgettext("hildon-libs", "ckct_ib_find_no_matches"));
+ hildon_banner_show_information (NULL, NULL,
+ _HL("ckct_ib_find_no_matches"));
g_free (priv->last_search);
priv->last_search = NULL;
} else {
- modest_msg_view_grab_focus (MODEST_MSG_VIEW (priv->msg_view));
hildon_find_toolbar_highlight_entry (HILDON_FIND_TOOLBAR (priv->find_toolbar), TRUE);
}
} else {
if (!modest_isearch_view_search_next (MODEST_ISEARCH_VIEW (priv->msg_view))) {
- hildon_banner_show_information (NULL, NULL, dgettext("hildon-libs", "ckct_ib_find_search_complete"));
+ hildon_banner_show_information (NULL, NULL,
+ _HL("ckct_ib_find_search_complete"));
g_free (priv->last_search);
priv->last_search = NULL;
} else {
- modest_msg_view_grab_focus (MODEST_MSG_VIEW (priv->msg_view));
hildon_find_toolbar_highlight_entry (HILDON_FIND_TOOLBAR (priv->find_toolbar), TRUE);
}
}
{
gdouble zoom_level;
ModestMsgViewWindowPrivate *priv;
+ gint int_zoom;
+ gchar *banner_text;
g_return_val_if_fail (MODEST_IS_MSG_VIEW_WINDOW (window), 1.0);
priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (window);
zoom_level = modest_zoomable_get_zoom (MODEST_ZOOMABLE (priv->msg_view));
if (zoom_level >= 2.0) {
- hildon_banner_show_information (NULL, NULL, dgettext("hildon-common-strings", "ckct_ib_max_zoom_level_reached"));
+ hildon_banner_show_information (NULL, NULL,
+ _CS("ckct_ib_max_zoom_level_reached"));
return FALSE;
} else if (zoom_level >= 1.5) {
zoom_level = 2.0;
}
/* set zoom level */
+ int_zoom = (gint) rint (zoom_level*100.0+0.1);
+ banner_text = g_strdup_printf (_HL("wdgt_ib_zoom"), int_zoom);
+ modest_platform_information_banner (GTK_WIDGET (window), NULL, banner_text);
+ g_free (banner_text);
modest_zoomable_set_zoom (MODEST_ZOOMABLE (priv->msg_view), zoom_level);
return TRUE;
-
}
static gboolean
{
gdouble zoom_level;
ModestMsgViewWindowPrivate *priv;
+ gint int_zoom;
+ gchar *banner_text;
g_return_val_if_fail (MODEST_IS_MSG_VIEW_WINDOW (window), 1.0);
priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (window);
zoom_level = modest_zoomable_get_zoom (MODEST_ZOOMABLE (priv->msg_view));
if (zoom_level <= 0.5) {
- hildon_banner_show_information (NULL, NULL, dgettext("hildon-common-strings", "ckct_ib_min_zoom_level_reached"));
+ hildon_banner_show_information (NULL, NULL,
+ _CS("ckct_ib_min_zoom_level_reached"));
return FALSE;
} else if (zoom_level <= 0.8) {
zoom_level = 0.5;
}
/* set zoom level */
+ int_zoom = (gint) rint (zoom_level*100.0+0.1);
+ banner_text = g_strdup_printf (_HL("wdgt_ib_zoom"), int_zoom);
+ modest_platform_information_banner (GTK_WIDGET (window), NULL, banner_text);
+ g_free (banner_text);
modest_zoomable_set_zoom (MODEST_ZOOMABLE (priv->msg_view), zoom_level);
return TRUE;
if (event->type == GDK_KEY_PRESS) {
GtkScrollType scroll_type;
-
+
switch (event->keyval) {
case GDK_Up:
case GDK_KP_Up:
scroll_type = GTK_SCROLL_END; break;
default: scroll_type = GTK_SCROLL_NONE;
}
-
+
/* g_signal_emit_by_name (G_OBJECT (priv->main_scroll), "scroll-child", */
/* scroll_type, FALSE, &return_value); */
return FALSE;
info = (MsgReaderInfo *) user_data;
if (canceled || err) {
+ update_window_title (MODEST_MSG_VIEW_WINDOW (parent_window));
goto frees;
}
mail_op = modest_mail_operation_new_with_error_handling (G_OBJECT(parent_window),
modest_ui_actions_disk_operations_error_handler,
NULL, NULL);
-
+
modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (), mail_op);
modest_mail_operation_get_msg (mail_op, info->header, TRUE, view_msg_cb, info->row_reference);
g_object_unref (mail_op);
/* We set the header from model while we're loading */
tny_header_view_set_header (TNY_HEADER_VIEW (priv->msg_view), header);
+ gtk_window_set_title (GTK_WINDOW (window), _CS("ckdg_pb_updating"));
/* Ask the user if he wants to download the message if
we're not online */
response = modest_platform_run_confirmation_dialog (GTK_WINDOW (window),
_("mcen_nc_get_msg"));
- if (response == GTK_RESPONSE_CANCEL)
+ if (response == GTK_RESPONSE_CANCEL) {
+ update_window_title (window);
return FALSE;
-
+ }
+
folder = tny_header_get_folder (header);
info = g_slice_new (MsgReaderInfo);
info->header = g_object_ref (header);
row_reference = (GtkTreeRowReference *) user_data;
if (canceled) {
gtk_tree_row_reference_free (row_reference);
+ self = (ModestMsgViewWindow *) modest_mail_operation_get_source (mail_op);
+ if (self) {
+ /* Restore window title */
+ update_window_title (self);
+ g_object_unref (self);
+ }
return;
}
-
+
/* If there was any error */
if (!modest_ui_actions_msg_retrieval_check (mail_op, header, msg)) {
- gtk_tree_row_reference_free (row_reference);
+ gtk_tree_row_reference_free (row_reference);
+ self = (ModestMsgViewWindow *) modest_mail_operation_get_source (mail_op);
+ if (self) {
+ /* Restore window title */
+ update_window_title (self);
+ g_object_unref (self);
+ }
return;
}
parent_priv = MODEST_WINDOW_GET_PRIVATE(self);
mgr = modest_runtime_get_window_mgr ();
- static_button_size = modest_window_mgr_get_fullscreen_mode (mgr)?118:108;
+ static_button_size = modest_window_mgr_get_fullscreen_mode (mgr)?120:120;
if (parent_priv->toolbar) {
/* left size buttons */
gtk_tool_item_set_expand (GTK_TOOL_ITEM (widget), FALSE);
gtk_tool_item_set_homogeneous (GTK_TOOL_ITEM (widget), FALSE);
gtk_widget_set_size_request (GTK_WIDGET (widget), static_button_size, -1);
-
+
gtk_tool_item_set_homogeneous (GTK_TOOL_ITEM (priv->next_toolitem), TRUE);
gtk_tool_item_set_expand (GTK_TOOL_ITEM (priv->next_toolitem), TRUE);
gtk_tool_item_set_homogeneous (GTK_TOOL_ITEM (priv->prev_toolitem), TRUE);
gtk_tool_item_set_expand (GTK_TOOL_ITEM (priv->prev_toolitem), TRUE);
}
-
}
static void
{
ModestMsgViewWindowPrivate *priv = NULL;
ModestWindowPrivate *parent_priv;
- GtkWidget *reply_button = NULL, *menu = NULL;
parent_priv = MODEST_WINDOW_GET_PRIVATE(self);
priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE(self);
if (!parent_priv->toolbar) {
parent_priv->toolbar = gtk_ui_manager_get_widget (parent_priv->ui_manager,
"/ToolBar");
+ gtk_toolbar_set_icon_size (GTK_TOOLBAR (parent_priv->toolbar), HILDON_ICON_SIZE_FINGER);
gtk_widget_set_no_show_all (parent_priv->toolbar, TRUE);
priv->next_toolitem = gtk_ui_manager_get_widget (parent_priv->ui_manager, "/ToolBar/ToolbarMessageNext");
hildon_window_add_toolbar (HILDON_WINDOW (self),
GTK_TOOLBAR (parent_priv->toolbar));
- /* Set reply button tap and hold menu */
- reply_button = gtk_ui_manager_get_widget (parent_priv->ui_manager,
- "/ToolBar/ToolbarMessageReply");
- menu = gtk_ui_manager_get_widget (parent_priv->ui_manager,
- "/ToolbarReplyCSM");
- if (menu && reply_button)
- gtk_widget_tap_and_hold_setup (GTK_WIDGET (reply_button), menu, NULL, 0);
}
if (show_toolbar) {
parent_acc = modest_tny_account_get_parent_modest_account_name_for_server_account (account);
/* Close this window if I'm showing a message of the removed account */
- if (strcmp (parent_acc, our_acc) == 0)
+ if (our_acc && parent_acc && strcmp (parent_acc, our_acc) == 0)
modest_ui_actions_on_close_window (NULL, MODEST_WINDOW (user_data));
}
}
tmp = priv->progress_widgets;
source = modest_mail_operation_get_source(mail_op);
if (G_OBJECT (self) == source) {
- if (op_type == MODEST_MAIL_OPERATION_TYPE_RECEIVE ) {
+ if (op_type == MODEST_MAIL_OPERATION_TYPE_RECEIVE) {
set_toolbar_transfer_mode(self);
while (tmp) {
modest_progress_object_add_operation (
op_type = modest_mail_operation_get_type_operation (mail_op);
tmp = priv->progress_widgets;
- if (op_type == MODEST_MAIL_OPERATION_TYPE_RECEIVE ) {
+ if (op_type == MODEST_MAIL_OPERATION_TYPE_RECEIVE) {
while (tmp) {
modest_progress_object_remove_operation (MODEST_PROGRESS_OBJECT (tmp->data),
mail_op);
if (observers_empty (self)) {
set_progress_hint (self, FALSE);
}
-
- /* Update dimming rules. We have to do this right here
- and not in view_msg_cb because at that point the
- transfer mode is still enabled so the dimming rule
- won't let the user delete the message that has been
- readed for example */
- modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (self));
- modest_ui_actions_check_menu_dimming_rules (MODEST_WINDOW (self));
}
+
+ /* Update dimming rules. We have to do this right here
+ and not in view_msg_cb because at that point the
+ transfer mode is still enabled so the dimming rule
+ won't let the user delete the message that has been
+ readed for example */
+ check_dimming_rules_after_change (self);
+
}
static void
g_return_val_if_fail (MODEST_IS_MSG_VIEW_WINDOW (win), NULL);
priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (win);
- selected_attachments = modest_msg_view_get_selected_attachments (MODEST_MSG_VIEW (priv->msg_view));
+ /* In Hildon 2.2 as there's no selection we assume we have all attachments selected */
+ selected_attachments = modest_msg_view_get_attachments (MODEST_MSG_VIEW (priv->msg_view));
return selected_attachments;
}
-typedef struct {
- gchar *filepath;
- GtkWidget *banner;
- guint banner_idle_id;
-} DecodeAsyncHelper;
-
-static gboolean
-decode_async_banner_idle (gpointer user_data)
-{
- DecodeAsyncHelper *helper = (DecodeAsyncHelper *) user_data;
-
- helper->banner_idle_id = 0;
- helper->banner = hildon_banner_show_animation (NULL, NULL, _("mail_me_opening"));
-
- return FALSE;
-}
-
static void
on_decode_to_stream_async_handler (TnyMimePart *mime_part,
gboolean cancelled,
GError *err,
gpointer user_data)
{
- DecodeAsyncHelper *helper = (DecodeAsyncHelper *) user_data;
+ gchar *filepath = (gchar *) user_data;
- if (helper->banner_idle_id > 0) {
- g_source_remove (helper->banner_idle_id);
- helper->banner_idle_id = 0;
- }
- if (helper->banner) {
- gtk_widget_destroy (helper->banner);
- helper->banner = NULL;
- }
if (cancelled || err) {
- modest_platform_information_banner (NULL, NULL,
- _("mail_ib_file_operation_failed"));
+ if (err) {
+ modest_platform_information_banner (NULL, NULL,
+ _KR("cerm_device_memory_full"));
+ }
goto free;
}
/* make the file read-only */
- g_chmod(helper->filepath, 0444);
+ g_chmod(filepath, 0444);
/* Activate the file */
- modest_platform_activate_file (helper->filepath, tny_mime_part_get_content_type (mime_part));
+ modest_platform_activate_file (filepath, tny_mime_part_get_content_type (mime_part));
free:
/* Frees */
- g_free (helper->filepath);
- g_slice_free (DecodeAsyncHelper, helper);
+ g_free (filepath);
}
void
mime_part = (TnyMimePart *) tny_iterator_get_current (iter);
g_object_unref (iter);
}
- g_object_unref (selected_attachments);
+ if (selected_attachments)
+ g_object_unref (selected_attachments);
if (error)
- return;
+ goto frees;
} else {
g_object_ref (mime_part);
}
- if (tny_mime_part_is_purged (mime_part)) {
- g_object_unref (mime_part);
- return;
- }
+ if (tny_mime_part_is_purged (mime_part))
+ goto frees;
if (!modest_tny_mime_part_is_msg (mime_part)) {
gchar *filepath = NULL;
TnyFsStream *temp_stream = NULL;
temp_stream = modest_utils_create_temp_stream (att_filename, attachment_uid,
&filepath);
-
+
if (temp_stream != NULL) {
- DecodeAsyncHelper *helper = g_slice_new (DecodeAsyncHelper);
- helper->filepath = g_strdup (filepath);
- helper->banner = NULL;
- helper->banner_idle_id = g_timeout_add (1000, decode_async_banner_idle, helper);
tny_mime_part_decode_to_stream_async (mime_part, TNY_STREAM (temp_stream),
on_decode_to_stream_async_handler,
- NULL,
- helper);
+ NULL,
+ g_strdup (filepath));
g_object_unref (temp_stream);
/* NOTE: files in the temporary area will be automatically
* cleaned after some time if they are no longer in use */
gtk_widget_show_all (GTK_WIDGET (msg_win));
}
}
- g_object_unref (mime_part);
+
+ frees:
+ if (attachment_uid)
+ g_free (attachment_uid);
+ if (mime_part)
+ g_object_unref (mime_part);
}
typedef struct
typedef struct
{
GList *pairs;
- GtkWidget *banner;
GnomeVFSResult result;
} SaveMimePartInfo;
g_list_free (info->pairs);
info->pairs = NULL;
if (with_struct) {
- gtk_widget_destroy (info->banner);
g_slice_free (SaveMimePartInfo, info);
}
}
if (info->result == GNOME_VFS_OK) {
hildon_banner_show_information (NULL, NULL, _CS("sfil_ib_saved"));
} else if (info->result == GNOME_VFS_ERROR_NO_SPACE) {
- hildon_banner_show_information (NULL, NULL, dgettext("ke-recv",
- "cerm_device_memory_full"));
+ hildon_banner_show_information (NULL, NULL,
+ _KR("cerm_device_memory_full"));
} else {
hildon_banner_show_information (NULL, NULL, _("mail_ib_file_operation_failed"));
}
stream = tny_vfs_stream_new (handle);
if (tny_mime_part_decode_to_stream (pair->part, stream, &error) < 0) {
g_warning ("modest: could not save attachment %s: %d (%s)\n", pair->filename, error?error->code:-1, error?error->message:"Unknown error");
-
- info->result = GNOME_VFS_ERROR_IO;
+
+ if ((error->domain == TNY_ERROR_DOMAIN) &&
+ (error->code == TNY_IO_ERROR_WRITE) &&
+ (errno == ENOSPC)) {
+ info->result = GNOME_VFS_ERROR_NO_SPACE;
+ } else {
+ info->result = GNOME_VFS_ERROR_IO;
+ }
}
g_object_unref (G_OBJECT (stream));
g_object_unref (pair->part);
if (!is_ok) {
save_mime_part_info_free (info, TRUE);
} else {
- GtkWidget *banner = hildon_banner_show_animation (NULL, NULL,
- _CS("sfil_ib_saving"));
- info->banner = banner;
g_thread_create ((GThreadFunc)save_mime_part_to_file, info, FALSE, NULL);
}
if (!modest_utils_folder_writable (chooser_uri)) {
hildon_banner_show_information
- (NULL, NULL, dgettext("hildon-fm", "sfil_ib_readonly_location"));
+ (NULL, NULL, _FM("sfil_ib_readonly_location"));
} else {
TnyIterator *iter;
!tny_mime_part_is_purged (mime_part) &&
(tny_mime_part_get_filename (mime_part) != NULL)) {
SaveMimePartPair *pair;
-
+
pair = g_slice_new0 (SaveMimePartPair);
if (tny_list_get_length (mime_parts) > 1) {
}
void
-modest_msg_view_window_save_attachments (ModestMsgViewWindow *window, TnyList *mime_parts)
+modest_msg_view_window_save_attachments (ModestMsgViewWindow *window,
+ TnyList *mime_parts)
{
ModestMsgViewWindowPrivate *priv;
GtkWidget *save_dialog = NULL;
priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (window);
if (mime_parts == NULL) {
- mime_parts = modest_msg_view_get_selected_attachments (MODEST_MSG_VIEW (priv->msg_view));
- if (mime_parts == NULL || tny_list_get_length (mime_parts) == 0)
+ /* In Hildon 2.2 save and delete operate over all the attachments as there's no
+ * selection available */
+ mime_parts = modest_msg_view_get_attachments (MODEST_MSG_VIEW (priv->msg_view));
+ if (mime_parts && !modest_maemo_utils_select_attachments (GTK_WINDOW (window), mime_parts, FALSE)) {
+ g_object_unref (mime_parts);
+ return;
+ }
+ if (mime_parts == NULL || tny_list_get_length (mime_parts) == 0) {
+ if (mime_parts) {
+ g_object_unref (mime_parts);
+ mime_parts = NULL;
+ }
return;
+ }
} else {
g_object_ref (mime_parts);
}
save_multiple_str = g_strdup_printf (_FM("sfil_va_number_of_objects_attachments"),
tny_list_get_length (mime_parts));
}
-
+
save_dialog = hildon_file_chooser_dialog_new (GTK_WINDOW (window),
GTK_FILE_CHOOSER_ACTION_SAVE);
g_return_if_fail (MODEST_IS_MSG_VIEW_WINDOW (window));
priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (window);
- if (get_all)
- mime_parts = modest_msg_view_get_attachments (MODEST_MSG_VIEW (priv->msg_view));
- else
- mime_parts = modest_msg_view_get_selected_attachments (MODEST_MSG_VIEW (priv->msg_view));
+ /* In hildon 2.2 we ignore the get_all flag as we always get all attachments. This is
+ * because we don't have selection
+ */
+ mime_parts = modest_msg_view_get_attachments (MODEST_MSG_VIEW (priv->msg_view));
/* Remove already purged messages from mime parts list */
iter = tny_list_create_iterator (mime_parts);
}
g_object_unref (iter);
- if (tny_list_get_length (mime_parts) == 0) {
+ if (!modest_maemo_utils_select_attachments (GTK_WINDOW (window), mime_parts, TRUE) ||
+ tny_list_get_length (mime_parts) == 0) {
g_object_unref (mime_parts);
return;
}
static void
update_window_title (ModestMsgViewWindow *window)
{
- ModestMsgViewWindowPrivate *priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (window);
+ ModestMsgViewWindowPrivate *priv;
TnyMsg *msg = NULL;
TnyHeader *header = NULL;
gchar *subject = NULL;
-
+
+ priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (window);
+
+ /* Note that if the window is closed while we're retrieving
+ the message, this widget could de deleted */
+ if (!priv->msg_view)
+ return;
+
msg = tny_msg_view_get_msg (TNY_MSG_VIEW (priv->msg_view));
if (msg != NULL) {
}
-static void on_move_focus (GtkWidget *widget,
- GtkDirectionType direction,
- gpointer userdata)
+static void
+on_move_focus (GtkWidget *widget,
+ GtkDirectionType direction,
+ gpointer userdata)
{
g_signal_stop_emission_by_name (G_OBJECT (widget), "move-focus");
}
return FALSE;
}
- return TRUE;;
+ return TRUE;
}
static void
modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_inbox_forward"), "<Control>d",
APP_MENU_CALLBACK (modest_ui_actions_on_forward),
MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_reply_msg));
-
+
modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_inbox_mark_as_read"), NULL,
APP_MENU_CALLBACK (modest_ui_actions_on_mark_as_read),
MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_mark_as_read_msg_in_view));
modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_inbox_mark_as_unread"), NULL,
APP_MENU_CALLBACK (modest_ui_actions_on_mark_as_unread),
MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_mark_as_unread_msg_in_view));
-
+
modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_viewer_save_attachments"), NULL,
APP_MENU_CALLBACK (modest_ui_actions_save_attachments),
MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_save_attachments));
modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_inbox_remove_attachments"), NULL,
APP_MENU_CALLBACK (modest_ui_actions_remove_attachments),
MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_remove_attachments));
-
+
modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_new_message"), "<Control>n",
APP_MENU_CALLBACK (modest_ui_actions_on_new_msg),
MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_new_msg));
gboolean contacts_to_add = FALSE;
msg = tny_msg_view_get_msg (TNY_MSG_VIEW (priv->msg_view));
- if (msg == NULL) return;
- recipients = modest_tny_msg_get_all_recipients_list (msg);
+ if (msg == NULL) {
+ TnyHeader *header;
+
+ header = modest_msg_view_window_get_header (self);
+ if (header == NULL)
+ return;
+ recipients = modest_tny_msg_header_get_all_recipients_list (header);
+ g_object_unref (header);
+ } else {
+ recipients = modest_tny_msg_get_all_recipients_list (msg);
+ g_object_unref (msg);
+ }
if (recipients != NULL) {
GtkWidget *picker_dialog;
}
if (recipients) {g_slist_foreach (recipients, (GFunc) g_free, NULL); g_slist_free (recipients);}
- g_object_unref (msg);
+}
+
+static gboolean
+_modest_msg_view_window_map_event (GtkWidget *widget,
+ GdkEvent *event,
+ gpointer userdata)
+{
+ ModestMsgViewWindow *self = (ModestMsgViewWindow *) userdata;
+ ModestMsgViewWindowPrivate *priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (self);
+
+ if (priv->progress_hint) {
+ hildon_gtk_window_set_progress_indicator (GTK_WINDOW (self), TRUE);
+ }
+
+ return FALSE;
}