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

@@ -1834,7 +1834,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent &p_input) {
if (mb.mod.command) {
zoom->set_val(zoom->get_val() + zoom->get_step());
} else {
v_scroll->set_val(v_scroll->get_val() - v_scroll->get_page() / 8);
v_scroll->set_val(v_scroll->get_val() - v_scroll->get_page() * mb.factor / 8);
}
}
@@ -1843,10 +1843,19 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent &p_input) {
if (mb.mod.command) {
zoom->set_val(zoom->get_val() - zoom->get_step());
} else {
v_scroll->set_val(v_scroll->get_val() + v_scroll->get_page() / 8);
v_scroll->set_val(v_scroll->get_val() + v_scroll->get_page() * mb.factor / 8);
}
}
if (mb.button_index == BUTTON_WHEEL_RIGHT && mb.pressed) {
h_scroll->set_val(h_scroll->get_val() - h_scroll->get_page() * mb.factor / 8);
}
if (mb.button_index == BUTTON_WHEEL_LEFT && mb.pressed) {
v_scroll->set_val(v_scroll->get_val() + v_scroll->get_page() * mb.factor / 8);
}
if (mb.button_index == BUTTON_RIGHT && mb.pressed) {
Point2 mpos = Point2(mb.x, mb.y) - ofs;