diff --git a/rtgui/cropwindow.cc b/rtgui/cropwindow.cc index 2b20de001..08ea9d0f7 100644 --- a/rtgui/cropwindow.cc +++ b/rtgui/cropwindow.cc @@ -289,7 +289,7 @@ void CropWindow::scroll (int state, GdkScrollDirection direction, int x, int y) if (direction == GDK_SCROLL_UP && !isMaxZoom()) { zoomIn (true, newCenterX, newCenterY); - } else if (!isMinZoom()) { + } else if (direction == GDK_SCROLL_DOWN && !isMinZoom()) { zoomOut (true, newCenterX, newCenterY); } } diff --git a/rtgui/thumbbrowserbase.cc b/rtgui/thumbbrowserbase.cc index abb8ec68d..2d27550bc 100644 --- a/rtgui/thumbbrowserbase.cc +++ b/rtgui/thumbbrowserbase.cc @@ -71,20 +71,24 @@ void ThumbBrowserBase::scrollChanged () void ThumbBrowserBase::scroll (int direction) { // GUI already acquired when here - if (arrangement == TB_Vertical) { - vscroll.set_value (vscroll.get_value() + (direction == GDK_SCROLL_DOWN ? +1 : -1) * vscroll.get_adjustment()->get_step_increment()); - } else { - hscroll.set_value (hscroll.get_value() + (direction == GDK_SCROLL_DOWN ? +1 : -1) * hscroll.get_adjustment()->get_step_increment()); + if (direction == GDK_SCROLL_UP || direction == GDK_SCROLL_DOWN) { + if (arrangement == TB_Vertical) { + vscroll.set_value (vscroll.get_value() + (direction == GDK_SCROLL_DOWN ? +1 : -1) * vscroll.get_adjustment()->get_step_increment()); + } else { + hscroll.set_value (hscroll.get_value() + (direction == GDK_SCROLL_DOWN ? +1 : -1) * hscroll.get_adjustment()->get_step_increment()); + } } } void ThumbBrowserBase::scrollPage (int direction) { // GUI already acquired when here - if (arrangement == TB_Vertical) { - vscroll.set_value (vscroll.get_value() + (direction == GDK_SCROLL_DOWN ? +1 : -1) * vscroll.get_adjustment()->get_page_increment()); - } else { - hscroll.set_value (hscroll.get_value() + (direction == GDK_SCROLL_DOWN ? +1 : -1) * hscroll.get_adjustment()->get_page_increment()); + if (direction == GDK_SCROLL_UP || direction == GDK_SCROLL_DOWN) { + if (arrangement == TB_Vertical) { + vscroll.set_value (vscroll.get_value() + (direction == GDK_SCROLL_DOWN ? +1 : -1) * vscroll.get_adjustment()->get_page_increment()); + } else { + hscroll.set_value (hscroll.get_value() + (direction == GDK_SCROLL_DOWN ? +1 : -1) * hscroll.get_adjustment()->get_page_increment()); + } } }