diff options
author | Yevgeny Makarov <jenkm> | 2020-11-09 14:26:53 +0300 |
---|---|---|
committer | Brecht Van Lommel <brecht@blender.org> | 2020-11-09 15:51:08 +0300 |
commit | 055ed335a111bebed7193acd083f54d5c82929ff (patch) | |
tree | 2d36a6ea151c60eb53cd2a7dfb4a398df0b2f8d9 /source/blender/windowmanager/intern/wm_event_query.c | |
parent | 0c4d12986a746b644c177224e4f70edec1f50d7a (diff) |
macOS: follow system preference for natural trackpad scroll direction
And remove Blender preference, which was expected to be set to match the system
preference for correct behavior. Instead just handle this automatically.
Differential Revision: https://developer.blender.org/D9402
Diffstat (limited to 'source/blender/windowmanager/intern/wm_event_query.c')
-rw-r--r-- | source/blender/windowmanager/intern/wm_event_query.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/source/blender/windowmanager/intern/wm_event_query.c b/source/blender/windowmanager/intern/wm_event_query.c index db80296bdb8..a996796104b 100644 --- a/source/blender/windowmanager/intern/wm_event_query.c +++ b/source/blender/windowmanager/intern/wm_event_query.c @@ -423,6 +423,38 @@ bool WM_event_is_tablet(const struct wmEvent *event) /** \} */ /* -------------------------------------------------------------------- */ +/** \name Event Scroll's Absolute Deltas + * + * User may change the scroll behavior, and the deltas are automatically inverted. + * These functions return the absolute direction, swipe up/right gives positive values. + * + * \{ */ + +int WM_event_absolute_delta_x(const struct wmEvent *event) +{ + int dx = event->x - event->prevx; + + if (!event->is_direction_inverted) { + dx = -dx; + } + + return dx; +} + +int WM_event_absolute_delta_y(const struct wmEvent *event) +{ + int dy = event->y - event->prevy; + + if (!event->is_direction_inverted) { + dy = -dy; + } + + return dy; +} + +/** \} */ + +/* -------------------------------------------------------------------- */ /** \name Event IME Input Access * \{ */ |