diff options
Diffstat (limited to 'src/ui/documentwidget.c')
-rw-r--r-- | src/ui/documentwidget.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/ui/documentwidget.c b/src/ui/documentwidget.c index 13f21df6..f1506fc3 100644 --- a/src/ui/documentwidget.c +++ b/src/ui/documentwidget.c | |||
@@ -947,6 +947,9 @@ static void refreshWhileScrolling_DocumentWidget_(iAny *ptr) { | |||
947 | } | 947 | } |
948 | 948 | ||
949 | static void smoothScroll_DocumentWidget_(iDocumentWidget *d, int offset, int duration) { | 949 | static void smoothScroll_DocumentWidget_(iDocumentWidget *d, int offset, int duration) { |
950 | if (!prefs_App()->smoothScrolling) { | ||
951 | duration = 0; /* always instant */ | ||
952 | } | ||
950 | int destY = targetValue_Anim(&d->scrollY) + offset; | 953 | int destY = targetValue_Anim(&d->scrollY) + offset; |
951 | if (destY < 0) { | 954 | if (destY < 0) { |
952 | destY = 0; | 955 | destY = 0; |
@@ -958,7 +961,12 @@ static void smoothScroll_DocumentWidget_(iDocumentWidget *d, int offset, int dur | |||
958 | else { | 961 | else { |
959 | destY = 0; | 962 | destY = 0; |
960 | } | 963 | } |
961 | setValueEased_Anim(&d->scrollY, destY, duration); | 964 | if (duration) { |
965 | setValueEased_Anim(&d->scrollY, destY, duration); | ||
966 | } | ||
967 | else { | ||
968 | setValue_Anim(&d->scrollY, destY, 0); | ||
969 | } | ||
962 | updateVisible_DocumentWidget_(d); | 970 | updateVisible_DocumentWidget_(d); |
963 | refresh_Widget(as_Widget(d)); | 971 | refresh_Widget(as_Widget(d)); |
964 | if (duration > 0) { | 972 | if (duration > 0) { |