Sync headers in ModestHeaderWindow dispose instead of finalize.
[modest] / src / hildon2 / modest-folder-window.c
index 57cef9c..ff85b6b 100644 (file)
@@ -53,6 +53,7 @@
 #include <modest-window-priv.h>
 #include "modest-text-utils.h"
 #include "modest-tny-account.h"
+#include "modest-account-protocol.h"
 
 typedef enum {
        EDIT_MODE_COMMAND_MOVE = 1,
@@ -105,6 +106,9 @@ static void on_visible_account_changed (ModestFolderView *folder_view,
 static void on_account_changed (TnyAccountStore *account_store,
                                TnyAccount *account,
                                gpointer user_data);
+static gboolean on_key_press(GtkWidget *widget,
+                               GdkEventKey *event,
+                               gpointer user_data);
 
 typedef struct _ModestFolderWindowPrivate ModestFolderWindowPrivate;
 struct _ModestFolderWindowPrivate {
@@ -261,6 +265,10 @@ connect_signals (ModestFolderWindow *self)
                                                       G_OBJECT (modest_runtime_get_account_store()),
                                                       "account-changed",
                                                       G_CALLBACK (on_account_changed), self);
+
+
+       g_signal_connect(G_OBJECT(self), "key-press-event",
+                       G_CALLBACK(on_key_press), self);
 }
 
 ModestWindow *
@@ -319,7 +327,7 @@ modest_folder_window_new (TnyFolderStoreQuery *query)
        priv->top_vbox = gtk_vbox_new (0, FALSE);
        top_alignment = gtk_alignment_new (0.0, 0.0, 1.0, 1.0);
        gtk_alignment_set_padding (GTK_ALIGNMENT (top_alignment),
-                                  0, 0,
+                                  HILDON_MARGIN_HALF, 0,
                                   HILDON_MARGIN_DOUBLE, HILDON_MARGIN_DOUBLE);
 
        gtk_container_add (GTK_CONTAINER (pannable), priv->folder_view);
@@ -522,8 +530,12 @@ setup_menu (ModestFolderWindow *self)
                                           APP_MENU_CALLBACK (modest_ui_actions_cancel_send),
                                           MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_cancel_sending_all));
 
-       modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self), _("mcen_me_edit_account"), NULL,
-                                          APP_MENU_CALLBACK (edit_account),
+       modest_hildon2_window_add_to_menu (MODEST_HILDON2_WINDOW (self),
+                                          dngettext(GETTEXT_PACKAGE,
+                                                    "mcen_me_edit_account",
+                                                    "mcen_me_edit_accounts",
+                                                    1),
+                                          NULL, APP_MENU_CALLBACK (edit_account),
                                           MODEST_DIMMING_CALLBACK (modest_ui_dimming_rules_on_edit_accounts));
 }
 
@@ -876,3 +888,31 @@ on_account_changed (TnyAccountStore *account_store,
        if (acc_id && visible && !g_utf8_collate (acc_id, visible))
                update_window_title (MODEST_FOLDER_WINDOW (user_data), account);
 }
+
+
+static gboolean
+on_key_press(GtkWidget *widget, GdkEventKey *event, gpointer user_data)
+{
+       ModestFolderWindowPrivate *priv;
+       HildonPannableArea *pannable;
+
+       if (event->type == GDK_KEY_RELEASE)
+               return FALSE;
+
+       priv = MODEST_FOLDER_WINDOW_GET_PRIVATE (user_data);
+
+       pannable = HILDON_PANNABLE_AREA (gtk_widget_get_parent (priv->folder_view));
+
+       switch (event->keyval) {
+
+       case GDK_Up:
+               modest_maemo_utils_scroll_pannable(pannable, 0, -1);
+               break;
+
+       case GDK_Down:
+               modest_maemo_utils_scroll_pannable(pannable, 0, 1);
+               break;
+       }
+
+       return FALSE;
+}