* src/maemo/modest-msg-view-window.c:
[modest] / src / maemo / modest-msg-view-window.c
index 53189f2..9e3bcc8 100644 (file)
@@ -950,10 +950,13 @@ modest_msg_view_window_new_for_search_result (TnyMsg *msg,
        tny_msg_view_set_msg (TNY_MSG_VIEW (priv->msg_view), msg);
        
        update_window_title (window);
-       modest_msg_view_window_update_priority (window);
-
        gtk_widget_show_all (GTK_WIDGET (window));
+       modest_msg_view_window_update_priority (window);
 
+       /* Check dimming rules */
+       modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (window));
+       modest_ui_actions_check_menu_dimming_rules (MODEST_WINDOW (window));
+       modest_window_check_dimming_rules_group (MODEST_WINDOW (window), MODEST_DIMMING_RULES_CLIPBOARD);
 
        return MODEST_WINDOW(window);
 }
@@ -1285,10 +1288,14 @@ modest_msg_view_window_find_toolbar_close (GtkWidget *widget,
 {
        GtkToggleAction *toggle;
        ModestWindowPrivate *parent_priv;
+       ModestMsgViewWindowPrivate *priv;
+
+       priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (obj);
        parent_priv = MODEST_WINDOW_GET_PRIVATE (obj);
        
        toggle = GTK_TOGGLE_ACTION (gtk_ui_manager_get_action (parent_priv->ui_manager, "/ToolBar/FindInMessage"));
        gtk_toggle_action_set_active (toggle, FALSE);
+       modest_msg_view_grab_focus (MODEST_MSG_VIEW (priv->msg_view));
 }
 
 static void
@@ -1642,6 +1649,10 @@ message_reader_performer (gboolean canceled,
        modest_mail_operation_get_msg (mail_op, info->header, view_msg_cb, info->row_reference);
        g_object_unref (mail_op);
 
+       /* Update dimming rules */
+       modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (parent_window));
+       modest_ui_actions_check_menu_dimming_rules (MODEST_WINDOW (parent_window));
+
  frees:
        /* Frees. The row_reference will be freed by the view_msg_cb callback */
        g_object_unref (info->header);
@@ -1780,7 +1791,7 @@ modest_msg_view_window_select_next_message (ModestMsgViewWindow *window)
        /* Free */
        g_object_unref (header);
 
-       return retval;          
+       return retval;
 }
 
 gboolean        
@@ -2745,7 +2756,7 @@ modest_msg_view_window_remove_attachments (ModestMsgViewWindow *window, gboolean
 
        n_attachments = tny_list_get_length (mime_parts);
        if (n_attachments == 1) {
-               const gchar *filename;
+               gchar *filename;
                TnyMimePart *part;
 
                iter = tny_list_create_iterator (mime_parts);
@@ -2754,14 +2765,15 @@ modest_msg_view_window_remove_attachments (ModestMsgViewWindow *window, gboolean
                if (modest_tny_mime_part_is_msg (part)) {
                        TnyHeader *header;
                        header = tny_msg_get_header (TNY_MSG (part));
-                       filename = tny_header_get_subject (header);
+                       filename = tny_header_dup_subject (header);
                        g_object_unref (header);
                        if (filename == NULL)
-                               filename = _("mail_va_no_subject");
+                               filename = g_strdup (_("mail_va_no_subject"));
                } else {
-                       filename = tny_mime_part_get_filename (TNY_MIME_PART (part));
+                       filename = g_strdup (tny_mime_part_get_filename (TNY_MIME_PART (part)));
                }
                confirmation_message = g_strdup_printf (_("mcen_nc_purge_file_text"), filename);
+               g_free (filename);
                g_object_unref (part);
        } else {
                confirmation_message = g_strdup_printf (ngettext("mcen_nc_purge_file_text", 
@@ -2824,18 +2836,21 @@ update_window_title (ModestMsgViewWindow *window)
        ModestMsgViewWindowPrivate *priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (window);
        TnyMsg *msg = NULL;
        TnyHeader *header = NULL;
-       const gchar *subject = NULL;
+       gchar *subject = NULL;
        
        msg = tny_msg_view_get_msg (TNY_MSG_VIEW (priv->msg_view));
 
        if (msg != NULL) {
                header = tny_msg_get_header (msg);
-               subject = tny_header_get_subject (header);
+               subject = tny_header_dup_subject (header);
+               g_object_unref (header);
                g_object_unref (msg);
        }
 
-       if ((subject == NULL)||(subject[0] == '\0'))
-               subject = _("mail_va_no_subject");
+       if ((subject == NULL)||(subject[0] == '\0')) {
+               g_free (subject);
+               subject = g_strdup (_("mail_va_no_subject"));
+       }
 
        gtk_window_set_title (GTK_WINDOW (window), subject);
 }