Scroll wheel (and possibly touchpad) better handled, see #3923

This commit is contained in:
Hombre 2018-03-23 23:21:05 +01:00
parent 806e1b32bb
commit bf6702fa56
2 changed files with 13 additions and 9 deletions

View File

@ -289,7 +289,7 @@ void CropWindow::scroll (int state, GdkScrollDirection direction, int x, int y)
if (direction == GDK_SCROLL_UP && !isMaxZoom()) { if (direction == GDK_SCROLL_UP && !isMaxZoom()) {
zoomIn (true, newCenterX, newCenterY); zoomIn (true, newCenterX, newCenterY);
} else if (!isMinZoom()) { } else if (direction == GDK_SCROLL_DOWN && !isMinZoom()) {
zoomOut (true, newCenterX, newCenterY); zoomOut (true, newCenterX, newCenterY);
} }
} }

View File

@ -71,20 +71,24 @@ void ThumbBrowserBase::scrollChanged ()
void ThumbBrowserBase::scroll (int direction) void ThumbBrowserBase::scroll (int direction)
{ {
// GUI already acquired when here // GUI already acquired when here
if (arrangement == TB_Vertical) { if (direction == GDK_SCROLL_UP || direction == GDK_SCROLL_DOWN) {
vscroll.set_value (vscroll.get_value() + (direction == GDK_SCROLL_DOWN ? +1 : -1) * vscroll.get_adjustment()->get_step_increment()); if (arrangement == TB_Vertical) {
} else { vscroll.set_value (vscroll.get_value() + (direction == GDK_SCROLL_DOWN ? +1 : -1) * vscroll.get_adjustment()->get_step_increment());
hscroll.set_value (hscroll.get_value() + (direction == GDK_SCROLL_DOWN ? +1 : -1) * hscroll.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) void ThumbBrowserBase::scrollPage (int direction)
{ {
// GUI already acquired when here // GUI already acquired when here
if (arrangement == TB_Vertical) { if (direction == GDK_SCROLL_UP || direction == GDK_SCROLL_DOWN) {
vscroll.set_value (vscroll.get_value() + (direction == GDK_SCROLL_DOWN ? +1 : -1) * vscroll.get_adjustment()->get_page_increment()); if (arrangement == TB_Vertical) {
} else { vscroll.set_value (vscroll.get_value() + (direction == GDK_SCROLL_DOWN ? +1 : -1) * vscroll.get_adjustment()->get_page_increment());
hscroll.set_value (hscroll.get_value() + (direction == GDK_SCROLL_DOWN ? +1 : -1) * hscroll.get_adjustment()->get_page_increment()); } else {
hscroll.set_value (hscroll.get_value() + (direction == GDK_SCROLL_DOWN ? +1 : -1) * hscroll.get_adjustment()->get_page_increment());
}
} }
} }