Implemented scrolling factor for smooth trackpad scrolling

Working platforms platform: OSX, Windows.
Support for almost all ui elements, including project list.

Ported from 304a1f5b5a (#7864).
Fixes #492 and #3913.
This commit is contained in:
Sean Bohan 2017-05-13 12:02:26 +08:00
parent e7328fe5a0
commit ee670f3724
15 changed files with 111 additions and 67 deletions

View file

@ -1041,7 +1041,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent &p_event) {
return;
float prev_zoom = zoom;
zoom = zoom * 0.95;
zoom = zoom * (1 - (0.05 * b.factor));
{
Point2 ofs(b.x, b.y);
ofs = ofs / prev_zoom - ofs / zoom;
@ -1059,7 +1059,7 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent &p_event) {
return;
float prev_zoom = zoom;
zoom = zoom * (1.0 / 0.95);
zoom = zoom * ((0.95 + (0.05 * b.factor)) / 0.95);
{
Point2 ofs(b.x, b.y);
ofs = ofs / prev_zoom - ofs / zoom;

View file

@ -523,10 +523,10 @@ void Polygon2DEditor::_uv_input(const InputEvent &p_input) {
} else if (mb.button_index == BUTTON_WHEEL_UP && mb.pressed) {
uv_zoom->set_val(uv_zoom->get_val() / 0.9);
uv_zoom->set_val(uv_zoom->get_val() / (1 - (0.1 * mb.factor)));
} else if (mb.button_index == BUTTON_WHEEL_DOWN && mb.pressed) {
uv_zoom->set_val(uv_zoom->get_val() * 0.9);
uv_zoom->set_val(uv_zoom->get_val() * (1 - (0.1 * mb.factor)));
}
} else if (p_input.type == InputEvent::MOUSE_MOTION) {