* Fixes NB#91689. fixes a wrong check for ASCII
[modest] / src / hildon2 / modest-msg-view-window.c
index 4f1f139..20202e5 100644 (file)
@@ -48,6 +48,7 @@
 #include <modest-text-utils.h>
 #include <modest-account-mgr-helpers.h>
 #include "modest-progress-bar.h"
+#include "hildon/hildon-pannable-area.h"
 #include "modest-defs.h"
 #include "modest-hildon-includes.h"
 #include "modest-ui-dimming-manager.h"
@@ -606,7 +607,10 @@ init_window (ModestMsgViewWindow *obj)
        priv->msg_view = GTK_WIDGET (tny_platform_factory_new_msg_view (modest_tny_platform_factory_get_instance ()));
        modest_msg_view_set_shadow_type (MODEST_MSG_VIEW (priv->msg_view), GTK_SHADOW_NONE);
        main_vbox = gtk_vbox_new  (FALSE, 6);
-
+#ifdef MODEST_TOOLKIT_HILDON2
+       priv->main_scroll = hildon_pannable_area_new ();
+       gtk_container_add (GTK_CONTAINER (priv->main_scroll), priv->msg_view);
+#else
 #ifdef MODEST_USE_MOZEMBED
        priv->main_scroll = priv->msg_view;
        gtk_widget_set_size_request (priv->msg_view, -1, 1600);
@@ -618,6 +622,7 @@ init_window (ModestMsgViewWindow *obj)
        gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (priv->main_scroll), GTK_SHADOW_NONE);
        modest_maemo_set_thumbable_scrollbar (GTK_SCROLLED_WINDOW(priv->main_scroll), TRUE);
 
+#endif
        gtk_box_pack_start (GTK_BOX(main_vbox), priv->main_scroll, TRUE, TRUE, 0);
        gtk_container_add   (GTK_CONTAINER(obj), main_vbox);
 
@@ -775,6 +780,7 @@ select_next_valid_row (GtkTreeModel *model,
                                if (msg_is_visible (header, is_outbox)) {
                                        next = gtk_tree_model_get_path (model, &tmp_iter);
                                        *row_reference = gtk_tree_row_reference_new (model, next);
+                                       gtk_tree_path_free (next);
                                        retval = TRUE;
                                        finished = TRUE;
                                }
@@ -804,6 +810,7 @@ select_next_valid_row (GtkTreeModel *model,
                                   message */
                                finished = TRUE;
                        }
+                       gtk_tree_path_free (next);
                } else {
                        /* If there are no more messages and we don't
                           want to start again in the first one then
@@ -814,8 +821,6 @@ select_next_valid_row (GtkTreeModel *model,
 
        /* Free */
        gtk_tree_path_free (path);
-       if (next)
-               gtk_tree_path_free (next);
 
        return retval;
 }
@@ -1018,7 +1023,7 @@ modest_msg_view_window_new_with_header_model (TnyMsg *msg,
 
        tny_msg_view_set_msg (TNY_MSG_VIEW (priv->msg_view), msg);
        update_window_title (MODEST_MSG_VIEW_WINDOW (window));
-       gtk_widget_show_all (GTK_WIDGET (window));
+       /* gtk_widget_show_all (GTK_WIDGET (window)); */
        modest_msg_view_window_update_priority (window);
 
        /* Check dimming rules */
@@ -1052,7 +1057,7 @@ 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);
-       gtk_widget_show_all (GTK_WIDGET (window));
+       /* gtk_widget_show_all (GTK_WIDGET (window));*/
        modest_msg_view_window_update_priority (window);
 
        /* Check dimming rules */
@@ -1082,7 +1087,7 @@ modest_msg_view_window_new_for_attachment (TnyMsg *msg,
        tny_msg_view_set_msg (TNY_MSG_VIEW (priv->msg_view), msg);
        update_window_title (MODEST_MSG_VIEW_WINDOW (obj));
 
-       gtk_widget_show_all (GTK_WIDGET (obj));
+       /* gtk_widget_show_all (GTK_WIDGET (obj)); */
 
        /* Check dimming rules */
        modest_ui_actions_check_toolbar_dimming_rules (MODEST_WINDOW (obj));
@@ -1425,6 +1430,7 @@ modest_msg_view_window_toggle_find_toolbar (GtkToggleAction *toggle,
                hildon_find_toolbar_highlight_entry (HILDON_FIND_TOOLBAR (priv->find_toolbar), TRUE);
        } else {
                gtk_widget_hide (priv->find_toolbar);
+               modest_msg_view_grab_focus (MODEST_MSG_VIEW (priv->msg_view));
        }
 
        /* update the toggle buttons status */
@@ -1835,8 +1841,6 @@ message_reader (ModestMsgViewWindow *window,
                TnyHeader *header,
                GtkTreeRowReference *row_reference)
 {
-       gboolean already_showing = FALSE;
-       ModestWindow *msg_window = NULL;
        ModestWindowMgr *mgr;
        TnyAccount *account;
        TnyFolder *folder;
@@ -1845,15 +1849,6 @@ message_reader (ModestMsgViewWindow *window,
        g_return_val_if_fail (row_reference != NULL, FALSE);
 
        mgr = modest_runtime_get_window_mgr ();
-       already_showing = modest_window_mgr_find_registered_header (mgr, header, &msg_window);
-       if (already_showing && (msg_window != MODEST_WINDOW (window))) {
-               gboolean retval;
-               if (msg_window)
-                       gtk_window_present (GTK_WINDOW (msg_window));
-               g_signal_emit_by_name (G_OBJECT (window), "delete-event", NULL, &retval);
-               return TRUE;
-       }
-
        /* Msg download completed */
        if (!(tny_header_get_flags (header) & TNY_HEADER_FLAG_CACHED)) {
                /* Ask the user if he wants to download the message if
@@ -2638,12 +2633,9 @@ modest_msg_view_window_view_attachment (ModestMsgViewWindow *window,
                found = modest_window_mgr_find_registered_header (mgr, header, &msg_win);
 
                if (found) {
-                       if (msg_win)                            /* there is already a window for this uid; top it */
-                               gtk_window_present (GTK_WINDOW(msg_win));
-                       else 
-                               /* if it's found, but there is no msg_win, it's probably in the process of being created;
-                                * thus, we don't do anything */
-                               g_warning ("window for is already being created");
+                       /* if it's found, but there is no msg_win, it's probably in the process of being created;
+                        * thus, we don't do anything */
+                       g_warning ("window for is already being created");
                } else { 
                        /* it's not found, so create a new window for it */
                        modest_window_mgr_register_header (mgr, header, attachment_uid); /* register the uid before building the window */
@@ -2653,8 +2645,8 @@ modest_msg_view_window_view_attachment (ModestMsgViewWindow *window,
                        msg_win = modest_msg_view_window_new_for_attachment (TNY_MSG (mime_part), account, attachment_uid);
                        modest_window_set_zoom (MODEST_WINDOW (msg_win), 
                                                modest_window_get_zoom (MODEST_WINDOW (window)));
-                       modest_window_mgr_register_window (mgr, msg_win);
-                       gtk_widget_show_all (GTK_WIDGET (msg_win));
+                       modest_window_mgr_register_window (mgr, msg_win, MODEST_WINDOW (window));
+                       /* gtk_widget_show_all (GTK_WIDGET (msg_win));*/
                }
        }
        g_object_unref (mime_part);