diff --git a/libs/ui/source/rich_image_view.cpp b/libs/ui/source/rich_image_view.cpp index 541dfd0e..67eb4758 100644 --- a/libs/ui/source/rich_image_view.cpp +++ b/libs/ui/source/rich_image_view.cpp @@ -47,6 +47,7 @@ namespace psemek::ui // center1 - center0 = (mouse - bbox.center) * (1 / zoom0 - 1 / zoom1) zoom_tgt_ = zoom; + zoom_ = zoom; set_center(center_); } @@ -101,7 +102,9 @@ namespace psemek::ui { if (mouseover_) { - set_zoom(zoom_tgt_ * std::pow(1.25f, e.delta)); + zoom_tgt_ *= std::pow(1.25f, e.delta); + zoom_tgt_ = geom::clamp(zoom_tgt_, zoom_range_); + set_center(center_); return true; } return false;