Mark as read on footer click
authorArtem Garmash <artemgarmash@gmail.com>
Sun, 10 Jan 2010 22:33:27 +0000 (00:33 +0200)
committerArtem Garmash <artem.garmash@nokia.com>
Sun, 27 Jun 2010 19:13:42 +0000 (22:13 +0300)
src/el-home-applet.c

index 666dc02..0a4d62f 100644 (file)
@@ -55,6 +55,8 @@
 #define MESSAGE_HEIGHT (C_HEIGHT - HEADER_HEIGHT)
 #define MESSAGE_WIDTH (C_WIDTH - 2*HILDON_MARGIN_DEFAULT)
 
+#define FOOTER_HEIGHT 26 /* approx, used only for checking clicks, bigger than controls */
+
 #define BOX_RADIOUS 10
 
 #define SCROLL_PERIOD 100 /* ms */
@@ -1028,14 +1030,19 @@ button_press_event_cb (GtkWidget      *widget,
         ELHomeAppletPrivate *priv = self->priv;
 
         if (priv->event_id > 0) {
+                stop_scroll_anim (priv);
+
                 if (event->y < CONTENT_OFFSET_Y_TOP + HEADER_HEIGHT) {
                         if (priv->aggregator &&
                             osso_abook_waitable_is_ready
                             (OSSO_ABOOK_WAITABLE (priv->aggregator), NULL))
                                 priv->active = SELECTED_HEADER;
                 }
+                else if (event->y > (BOX_HEIGHT - CONTENT_OFFSET_Y_BOTTOM - FOOTER_HEIGHT))
+                        priv->active = SELECTED_FOOTER;
                 else
                         priv->active = SELECTED_BODY;
+
                 gtk_widget_queue_draw (widget);
         }
 
@@ -1103,7 +1110,6 @@ button_release_event_cb (GtkWidget      *widget,
 
         switch (priv->active) {
         case SELECTED_BODY:
-                stop_scroll_anim (priv);
                 if (priv->scroll_on_click) {
                         priv->scroll_on_click = FALSE;
                         priv->scroll_anim_id = g_timeout_add (SCROLL_PERIOD,
@@ -1112,7 +1118,6 @@ button_release_event_cb (GtkWidget      *widget,
                 }
                 else {
 #ifndef DEBUG_LAYOUT
-                        /* mark_as_read (self); */
                         open_conversation (self);
 #endif
                 }
@@ -1138,6 +1143,9 @@ button_release_event_cb (GtkWidget      *widget,
                 gtk_widget_queue_draw (widget);
         }
                 break;
+        case SELECTED_FOOTER:
+                mark_as_read (self);
+                break;
         default:;
         }