TnyFolder *folder;
+ /* autoscroll */
+ gboolean autoscroll;
+
/* banners */
GtkWidget *updating_banner;
guint updating_banner_timeout;
ModestHeaderWindow *self);
static void set_moveto_edit_mode (GtkButton *button,
ModestHeaderWindow *self);
+static gboolean on_expose_event(GtkTreeView *header_view,
+ GdkEventExpose *event,
+ gpointer user_data);
+static void on_vertical_movement (HildonPannableArea *area,
+ HildonMovementDirection direction,
+ gdouble x, gdouble y, gpointer user_data);
/* globals */
static GtkWindowClass *parent_class = NULL;
priv->folder = NULL;
priv->updating_banner = NULL;
priv->updating_banner_timeout = 0;
+ priv->autoscroll = TRUE;
modest_window_mgr_register_help_id (modest_runtime_get_window_mgr(),
GTK_WINDOW(obj),
"updating-msg-list",
G_CALLBACK (on_updating_msg_list),
self);
-
+ priv->sighandlers =
+ modest_signal_mgr_connect (priv->sighandlers,
+ G_OBJECT (priv->header_view),
+ "expose-event",
+ G_CALLBACK (on_expose_event),
+ self);
+
+ priv->sighandlers =
+ modest_signal_mgr_connect (priv->sighandlers,
+ G_OBJECT (priv->contents_view),
+ "vertical-movement",
+ G_CALLBACK (on_vertical_movement),
+ self);
+
/* TODO: connect header view activate */
/* window */
return align;
}
+static void
+on_vertical_movement (HildonPannableArea *area,
+ HildonMovementDirection direction,
+ gdouble x, gdouble y, gpointer user_data)
+{
+ ModestHeaderWindow *self = (ModestHeaderWindow *) user_data;
+ ModestHeaderWindowPrivate *priv = MODEST_HEADER_WINDOW_GET_PRIVATE (self);
+
+ priv->autoscroll = FALSE;
+}
+
ModestWindow *
modest_header_window_new (TnyFolder *folder)
{
set_edit_mode (self, EDIT_MODE_COMMAND_MOVE);
}
+
+static gboolean
+on_expose_event(GtkTreeView *header_view,
+ GdkEventExpose *event,
+ gpointer user_data)
+{
+ ModestHeaderWindow *self = (ModestHeaderWindow *) user_data;
+ ModestHeaderWindowPrivate *priv = MODEST_HEADER_WINDOW_GET_PRIVATE (self);
+
+ g_return_val_if_fail (MODEST_IS_HEADER_WINDOW (self), FALSE);
+
+ if (priv->autoscroll)
+ hildon_pannable_area_jump_to (HILDON_PANNABLE_AREA (priv->contents_view), 0.0, 0.0);
+
+ return FALSE;
+}