ModestMsgViewWindowPrivate *priv= NULL;
TnyMsg *msg = NULL;
TnyHeader *header = NULL;
+ GtkTreePath *path = NULL;
GtkTreeIter iter;
g_return_val_if_fail (MODEST_IS_MSG_VIEW_WINDOW (self), NULL);
}
/* Get current message iter */
+ path = gtk_tree_row_reference_get_path (priv->row_reference);
+ g_return_val_if_fail (path != NULL, NULL);
gtk_tree_model_get_iter (priv->header_model,
&iter,
- gtk_tree_row_reference_get_path (priv->row_reference));
+ path);
/* Get current message header */
gtk_tree_model_get (priv->header_model, &iter,
if (priv->header_model) {
path = gtk_tree_row_reference_get_path (priv->row_reference);
- if (!path)
- return TRUE;
+ if (path == NULL) return FALSE;
while (!has_next) {
TnyHeader *header;
gtk_tree_path_next (path);
TnyHeaderFlags flags;
ModestMailOperation *mail_op = NULL;
ModestMsgViewWindowPrivate *priv;
+ GtkTreePath *path= NULL;
GtkTreeIter tmp_iter;
g_return_val_if_fail (MODEST_IS_MSG_VIEW_WINDOW (window), FALSE);
priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (window);
if (priv->header_model) {
+ path = gtk_tree_row_reference_get_path (priv->row_reference);
+ if (path != NULL) return FALSE;
+
gtk_tree_model_get_iter (priv->header_model,
&tmp_iter,
- gtk_tree_row_reference_get_path (priv->row_reference));
+ path);
while (gtk_tree_model_iter_next (priv->header_model, &tmp_iter)) {
TnyHeader *header;
GtkTreePath *path;
if (priv->header_model) {
TnyHeader *header;
GtkTreeIter iter;
+ GtkTreePath *path = NULL;
+ path = gtk_tree_row_reference_get_path (priv->row_reference);
+ g_return_if_fail (path != NULL);
gtk_tree_model_get_iter (priv->header_model,
&iter,
gtk_tree_row_reference_get_path (priv->row_reference));
priv->status = MODEST_MAIL_OPERATION_STATUS_SUCCESS;
}
+ /* Notify about operation end */
+ modest_mail_operation_notify_end (self, TRUE);
+
/* If user defined callback function was defined, call it */
if (helper->user_callback) {
gdk_threads_enter ();
g_slice_free (XFerMsgAsyncHelper, helper);
g_object_unref (folder);
- /* Notify about operation end */
- modest_mail_operation_notify_end (self, TRUE);
}
void
transfer_msgs_from_viewer_cb (const GObject *object, gpointer user_data)
{
ModestMsgViewWindow *self = NULL;
+ gboolean last, first;
g_return_if_fail (MODEST_IS_MSG_VIEW_WINDOW (object));
self = MODEST_MSG_VIEW_WINDOW (object);
-
- /* If there are not more messages don't do anything. The
- viewer will show the same message */
- if (!modest_msg_view_window_select_first_message (self))
- return;
+
+ last = modest_msg_view_window_last_message_selected (self);
+ first = modest_msg_view_window_first_message_selected (self);
+ if (last & first) {
+ /* No more messages to view, so close this window */
+ gboolean ret_value;
+ g_signal_emit_by_name (G_OBJECT (self), "delete-event", NULL, &ret_value);
+ } else if (last)
+ modest_msg_view_window_select_previous_message (self);
+ else
+ modest_msg_view_window_select_next_message (self);
}
void