Modified webpage: now tinymail repository is in gitorious.
[modest] / src / widgets / modest-scrollable.c
index fab9450..268f304 100644 (file)
@@ -217,13 +217,13 @@ modest_scrollable_base_init (gpointer g_iface)
                                                                        G_PARAM_CONSTRUCT));
 
                g_object_interface_install_property (g_iface,
                                                                        G_PARAM_CONSTRUCT));
 
                g_object_interface_install_property (g_iface,
-                                                    g_param_spec_enum ("movement_mode",
-                                                                       "Directions scroll is allowed",
-                                                                       "Movements allowed in the scrollable",
-                                                                       MODEST_TYPE_MOVEMENT_MODE,
-                                                                       MODEST_MOVEMENT_MODE_VERTICAL,
-                                                                       G_PARAM_READWRITE |
-                                                                       G_PARAM_CONSTRUCT));
+                                                    g_param_spec_flags ("movement_mode",
+                                                                        "Directions scroll is allowed",
+                                                                        "Movements allowed in the scrollable",
+                                                                        MODEST_TYPE_MOVEMENT_MODE,
+                                                                        MODEST_MOVEMENT_MODE_VERTICAL,
+                                                                        G_PARAM_READWRITE |
+                                                                        G_PARAM_CONSTRUCT));
 
                g_object_interface_install_property (g_iface,
                                                     g_param_spec_int ("horizontal-max-overshoot",
 
                g_object_interface_install_property (g_iface,
                                                     g_param_spec_int ("horizontal-max-overshoot",
@@ -293,6 +293,11 @@ modest_scrollable_scroll (ModestScrollable *scrollable,
                h_pos = h_adj->value + h_adj->step_increment * horizontal;
                if (horizontal > 0) {
                        h_pos += h_adj->page_size;
                h_pos = h_adj->value + h_adj->step_increment * horizontal;
                if (horizontal > 0) {
                        h_pos += h_adj->page_size;
+                       if (h_pos > h_adj->upper - h_adj->page_size) {
+                               h_pos = h_adj->upper - h_adj->page_size;
+                       } else if (h_pos < 0) {
+                               h_pos = 0;
+                       }
                }
        }
 
                }
        }
 
@@ -305,6 +310,11 @@ modest_scrollable_scroll (ModestScrollable *scrollable,
                v_pos = v_adj->value + v_adj->step_increment * vertical;
                if (vertical > 0) {
                        v_pos += v_adj->page_size;
                v_pos = v_adj->value + v_adj->step_increment * vertical;
                if (vertical > 0) {
                        v_pos += v_adj->page_size;
+                       if (v_pos > v_adj->upper - v_adj->page_size) {
+                               v_pos = v_adj->upper - v_adj->page_size;
+                       } else if (v_pos < 0) {
+                               v_pos = 0;
+                       }
                }
        }
 
                }
        }