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",
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;
+ }
}
}
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;
+ }
}
}