/*
- Copyright (C) 2008 Paul Davis
+ Copyright (C) 2008 Paul Davis
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
unzoomed_page += scale * fract * range;
unzoomed_page = min(unzoomed_page, adj.get_upper() - unzoomed_val);
unzoomed_page = max(unzoomed_page, min_page_size);
-
+
if (pinch){
temp = unzoomed_val + unzoomed_page;
unzoomed_val -= scale * fract * range * 0.5;
unzoomed_val = min(unzoomed_val, temp - min_page_size);
unzoomed_val = max(unzoomed_val, adj.get_lower());
}
-
+
break;
case Handle2:
temp = unzoomed_val + unzoomed_page;
unzoomed_val += scale * fract * range;
unzoomed_val = min(unzoomed_val, temp - min_page_size);
unzoomed_val = max(unzoomed_val, adj.get_lower());
-
+
unzoomed_page = temp - unzoomed_val;
-
+
if (pinch){
-
+
unzoomed_page -= scale * fract * range;
}
-
- unzoomed_page = min(unzoomed_page, adj.get_upper() - unzoomed_val);
+
+ unzoomed_page = min(unzoomed_page, adj.get_upper() - unzoomed_val);
unzoomed_page = max(unzoomed_page, min_page_size);
break;
default:
* We don't start doing zoom until we are at least one scroomer width outside the scroomer's
* area.
*/
-
+
if (ev->x > (get_width() * 2)) {
zoom = ev->x - get_width();
-
+
double higher = unzoomed_val + unzoomed_page - half_min_page - val_at_pointer;
double lower = val_at_pointer - (unzoomed_val + half_min_page);
page = min(page, adj.get_upper() - val);
} else if (ev->x < 0) {
/* on zoom out increase the page size as well as moving the range towards the mouse pos*/
- zoom = abs(ev->x);
+ /*zoom = abs(ev->x);
- /*double higher = unzoomed_val + unzoomed_page - half_min_page - val_at_pointer;
+ double higher = unzoomed_val + unzoomed_page - half_min_page - val_at_pointer;
double lower = val_at_pointer - (unzoomed_val + half_min_page);
higher *= zoom / 128;
adj.set_page_size (rint (page));
adj.set_value (rint (val));
adj.value_changed();
-
+
return true;
}
{
switch (ev->direction) {
case GDK_SCROLL_UP:
- adj.set_value (adj.get_value() + adj.get_page_size() / 10.0);
+ adj.set_value (min (adj.get_value() + adj.get_page_size() / 10.0, adj.get_upper() - adj.get_page_size()));
break;
case GDK_SCROLL_DOWN:
adj.set_value (adj.get_value() - adj.get_page_size() / 10.0);
unzoomed_val = adj.get_value();
unzoomed_page = adj.get_page_size();
grab_window = ev->window;
-
+
if (ev->button == 3){
pinch = true;
} else {
DragStarting (); /* EMIT SIGNAL */
}
-
+
if (ev->type == GDK_2BUTTON_PRESS && ev->button == 1) {
DoubleClicked();
}
default:
break;
}
-
+
grab_comp = None;
remove_modal_grab();