summaryrefslogtreecommitdiff
path: root/src/managers
diff options
context:
space:
mode:
authorVaxry <43317083+vaxerski@users.noreply.github.com>2022-10-06 21:26:11 +0100
committerGitHub <noreply@github.com>2022-10-06 21:26:11 +0100
commitc4487534d2230077ee6c61b248602effcbb4df45 (patch)
tree8ccaa3e583180a03629683e8a02f89552006470e /src/managers
parentb4a8efc1a76d4f4e6485fdf39796cb0eb2cf80fd (diff)
parente4820d1c71add4945293e65be14198fd8c53dc3f (diff)
Merge pull request #801 from fufexan/scrollfactor
Add input:touchpad:scroll_factor
Diffstat (limited to 'src/managers')
-rw-r--r--src/managers/input/InputManager.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/managers/input/InputManager.cpp b/src/managers/input/InputManager.cpp
index ae895833..6060a9cf 100644
--- a/src/managers/input/InputManager.cpp
+++ b/src/managers/input/InputManager.cpp
@@ -435,12 +435,17 @@ void CInputManager::processMouseDownKill(wlr_pointer_button_event* e) {
}
void CInputManager::onMouseWheel(wlr_pointer_axis_event* e) {
+ static auto *const PSCROLLFACTOR = &g_pConfigManager->getConfigValuePtr("input:touchpad:scroll_factor")->floatValue;
+
+ auto factor = (*PSCROLLFACTOR <= 0.f || e->source != WLR_AXIS_SOURCE_FINGER ? 1.f : *PSCROLLFACTOR);
+
bool passEvent = g_pKeybindManager->onAxisEvent(e);
wlr_idle_notify_activity(g_pCompositor->m_sWLRIdle, g_pCompositor->m_sSeat.seat);
if (passEvent) {
- wlr_seat_pointer_notify_axis(g_pCompositor->m_sSeat.seat, e->time_msec, e->orientation, e->delta, e->delta_discrete, e->source);
+ wlr_seat_pointer_notify_axis(g_pCompositor->m_sSeat.seat, e->time_msec, e->orientation, factor * e->delta,
+ std::round(factor * e->delta_discrete), e->source);
}
}