diff --git a/src/layout/algorithm/tiled/scrolling/ScrollingAlgorithm.cpp b/src/layout/algorithm/tiled/scrolling/ScrollingAlgorithm.cpp index 59fb0f80d..af2976c8e 100644 --- a/src/layout/algorithm/tiled/scrolling/ScrollingAlgorithm.cpp +++ b/src/layout/algorithm/tiled/scrolling/ScrollingAlgorithm.cpp @@ -538,9 +538,11 @@ CScrollingAlgorithm::CScrollingAlgorithm() { // if follow_focus != 0, focuswindow always moves scrolling view // if follow_focus != 0, change in a group's current window state always moves scrolling view // if follow_focus != 0, moving a window into group via the corresponding dispatches `moveintogroup`, `movewindoworgroup` always moves scrolling view - if (*PFOLLOW_FOCUS && (reason == Desktop::FOCUS_REASON_DISPATCH_FOCUSWINDOW || reason == Desktop::FOCUS_REASON_GROUP_CURRENT_WINDOW_CHANGE || reason == Desktop::FOCUS_REASON_DISPATCH_MOVEINTOGROUP)) - focusOnInput(TARGET,INPUT_MODE_HARD); - else + if (*PFOLLOW_FOCUS && + (reason == Desktop::FOCUS_REASON_DISPATCH_FOCUSWINDOW || reason == Desktop::FOCUS_REASON_GROUP_CURRENT_WINDOW_CHANGE || + reason == Desktop::FOCUS_REASON_DISPATCH_MOVEINTOGROUP)) + focusOnInput(TARGET, INPUT_MODE_HARD); + else focusOnInput(TARGET, reason == Desktop::FOCUS_REASON_CLICK ? INPUT_MODE_CLICK : (Desktop::isHardInputFocusReason(reason) ? INPUT_MODE_HARD : INPUT_MODE_SOFT)); });