aboutsummaryrefslogtreecommitdiffstats
path: root/data
diff options
context:
space:
mode:
authorWonki Kim <wonki_.kim@samsung.com>2018-08-29 15:58:10 +0900
committerHermet Park <hermetpark@gmail.com>2018-08-29 15:58:10 +0900
commit6409cfa41b19f04ef7b4247d078d626e9ec77a8f (patch)
treea728dffaca510eae41e89aa147ff5ac2df370c8d /data
parentevas gl: remove redundant code. (diff)
downloadefl-6409cfa41b19f04ef7b4247d078d626e9ec77a8f.tar.gz
scroller: refactory a momentum scroll animator
Summary: this patch refactories a momentum scroll animator logics. 1. animation duration animating runs within a one second now. and if it needs more time to animate, it decrease intepolation progress by dividing some value. current logic makes sense however, it is not easy to read to know how it works. this patch modify current logic to calculate distance to move, and time to animate. 2. distance to move we can apply simple physics something like mass of pan and friction of scroller itself. but this patch apply just geometric seqeunce to calculate distance to go. it's more easy to customize behavior of scroller than current sine graph based one. 3. accelerate logic scroller sets 'extra_time' to accelerate a scroller for now. but this patch modify logic not to use it. however it uses current momenutum velocity as a bais of next momentum animating. @feature Reviewers: zmike, #reviewers, Hermet Reviewed By: #reviewers, Hermet Subscribers: Hermet, cedric, zmike Tags: #efl, #do_not_merge Differential Revision: https://phab.enlightenment.org/D6643
Diffstat (limited to 'data')
-rw-r--r--data/elementary/config/default/base.src.in31
-rw-r--r--data/elementary/config/mobile/base.src.in12
-rw-r--r--data/elementary/config/standard/base.src.in4
3 files changed, 33 insertions, 14 deletions
diff --git a/data/elementary/config/default/base.src.in b/data/elementary/config/default/base.src.in
index b9d91e41c9..1bbbf62bf2 100644
--- a/data/elementary/config/default/base.src.in
+++ b/data/elementary/config/default/base.src.in
@@ -3,28 +3,39 @@ group "Elm_Config" struct {
value "entry_select_allow" uchar: 1;
value "engine" string: "";
value "vsync" uchar: 0;
+ //
value "thumbscroll_enable" uchar: 1;
value "thumbscroll_threshold" int: 24;
value "thumbscroll_hold_threshold" int: 24;
- value "thumbscroll_momentum_threshold" double: 100.0;
- value "thumbscroll_flick_distance_tolerance" int: 1000;
- value "thumbscroll_friction" double: 1.0;
- value "thumbscroll_min_friction" double: 1.0;
- value "thumbscroll_friction_standard" double: 2000.0;
+ //
value "thumbscroll_bounce_friction" double: 0.5;
value "thumbscroll_bounce_enable" uchar: 1;
+ value "thumbscroll_border_friction" double: 0.5;
+ value "thumbscroll_sensitivity_friction" double: 0.25;
+ //
+ value "thumbscroll_momentum_threshold" double: 100.0;
+ value "thumbscroll_momentum_distance_max" int: 3000;
+ value "thumbscroll_momentum_friction" double: 0.95;
+ value "thumbscroll_momentum_animation_duration_min_limit" double: 0.3;
+ value "thumbscroll_momentum_animation_duration_max_limit" double: 1.3;
+ //
value "thumbscroll_acceleration_threshold" double: 500.0;
value "thumbscroll_acceleration_time_limit" double: 0.7;
value "thumbscroll_acceleration_weight" double: 1.5;
- value "page_scroll_friction" double: 0.5;
- value "bring_in_scroll_friction" double: 0.5;
- value "zoom_friction" double: 0.5;
- value "thumbscroll_border_friction" double: 0.5;
- value "thumbscroll_sensitivity_friction" double: 0.25;
+ //
value "scroll_smooth_start_enable" uchar: 1;
value "scroll_smooth_amount" double: 1.0;
value "scroll_smooth_time_window" double: 0.15;
value "scroll_accel_factor" double: 7.0;
+ // deprecated
+ value "thumbscroll_min_friction" double: 1.0;
+ value "thumbscroll_friction_standard" double: 2000.0;
+ value "thumbscroll_friction" double: 0.95;
+ value "thumbscroll_flick_distance_tolerance" int: 1000;
+ //
+ value "page_scroll_friction" double: 0.5;
+ value "bring_in_scroll_friction" double: 0.5;
+ value "zoom_friction" double: 0.5;
value "focus_autoscroll_mode" uchar: 0;
value "slider_indicator_visible_mode" int: 0;
value "scale" double: 1.0;
diff --git a/data/elementary/config/mobile/base.src.in b/data/elementary/config/mobile/base.src.in
index 9ea71db9d0..a2526bc43f 100644
--- a/data/elementary/config/mobile/base.src.in
+++ b/data/elementary/config/mobile/base.src.in
@@ -7,20 +7,24 @@ group "Elm_Config" struct {
value "thumbscroll_threshold" int: 24;
value "thumbscroll_hold_threshold" int: 100;
value "thumbscroll_momentum_threshold" double: 100.0;
- value "thumbscroll_flick_distance_tolerance" int: 1000;
- value "thumbscroll_friction" double: 1.0;
+ value "thumbscroll_flick_distance_tolerance" int: 3000;
+ value "thumbscroll_friction" double: 0.95;
+ value "thumbscroll_momentum_animation_duration_min_limit" double: 0.3;
+ value "thumbscroll_momentum_animation_duration_max_limit" double: 1.3;
+ // will not be used
value "thumbscroll_min_friction" double: 0.3;
value "thumbscroll_friction_standard" double: 3000.0;
+ //
value "thumbscroll_bounce_friction" double: 0.5;
value "thumbscroll_bounce_enable" uchar: 1;
value "thumbscroll_acceleration_threshold" double: 2000.0;
value "thumbscroll_acceleration_time_limit" double: 0.5;
value "thumbscroll_acceleration_weight" double: 1.5;
+ value "thumbscroll_border_friction" double: 0.5;
+ value "thumbscroll_sensitivity_friction" double: 0.7;
value "page_scroll_friction" double: 0.5;
value "bring_in_scroll_friction" double: 0.5;
value "zoom_friction" double: 0.5;
- value "thumbscroll_border_friction" double: 0.5;
- value "thumbscroll_sensitivity_friction" double: 0.7;
value "scroll_smooth_start_enable" uchar: 1;
value "scroll_smooth_amount" double: 1.0;
value "scroll_smooth_time_window" double: 0.15;
diff --git a/data/elementary/config/standard/base.src.in b/data/elementary/config/standard/base.src.in
index 538cb368ea..4a7107ad07 100644
--- a/data/elementary/config/standard/base.src.in
+++ b/data/elementary/config/standard/base.src.in
@@ -9,8 +9,12 @@ group "Elm_Config" struct {
value "thumbscroll_momentum_threshold" double: 100.0;
value "thumbscroll_flick_distance_tolerance" int: 1000;
value "thumbscroll_friction" double: 1.0;
+ value "thumbscroll_momentum_animation_duration_min_limit" double: 0.3;
+ value "thumbscroll_momentum_animation_duration_max_limit" double: 1.3;
+ // will not be used
value "thumbscroll_min_friction" double: 1.0;
value "thumbscroll_friction_standard" double: 2000.0;
+ //
value "thumbscroll_bounce_friction" double: 0.5;
value "thumbscroll_bounce_enable" uchar: 0;
value "thumbscroll_acceleration_threshold" double: 500.0;