aboutsummaryrefslogtreecommitdiff
path: root/src/ImageViewer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ImageViewer.cpp')
-rw-r--r--src/ImageViewer.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/ImageViewer.cpp b/src/ImageViewer.cpp
index 9777611..8ce9b30 100644
--- a/src/ImageViewer.cpp
+++ b/src/ImageViewer.cpp
@@ -117,6 +117,10 @@ namespace QuickMedia {
return true;
}
+ static double sign(double value) {
+ return value >= 0.0 ? 1.0 : -1.0;
+ }
+
ImageViewerAction ImageViewer::draw(sf::RenderWindow &window) {
const double frame_delta = frame_timer.restart().asSeconds();
const double scroll_speed_key_input = 450.0;
@@ -177,7 +181,11 @@ namespace QuickMedia {
if(middle_mouse_scrolling) {
double distance_to_start_y = (double)sf::Mouse::getPosition(window).y - autoscroll_start_y;
- scroll_speed = -distance_to_start_y * scroll_speed_autoscroll * frame_delta;
+ double dist_abs = std::abs(distance_to_start_y);
+ dist_abs -= 20.0;
+ if(dist_abs < 0.0)
+ dist_abs = 0.0;
+ scroll_speed = -(dist_abs * sign(distance_to_start_y)) * scroll_speed_autoscroll * frame_delta;
const double max_speed = 100.0;
if(scroll_speed > max_speed)
scroll_speed = max_speed;