summaryrefslogtreecommitdiff
path: root/src/desktop/state/FocusState.cpp
Commit message (Collapse)AuthorAgeFilesLines
* algo/scrolling: various scrolling view related bugfixes (#13974)erstarr2026-05-081-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * fix scrolling view move when a grouped window is closed - prevent redundant space assignment for a grouped window that's about to be unmapped, add a `FOCUS_REASON` for unmapping grouped windows * fix focus_fallback after unmapping a window floating moving view * fix view change when changing workspaces (special and normal). add an optional `RECALCULATE_REASON` parameter to `recalculate()` calls of all algorithms. add an optional `RECALCULATE_MONITOR_REASON` parameter to `recalculateMonitor()` calls. add 2 new `FOCUS_REASON`s, for workspace change and special workspace toggle * Fix hyprctl keyword causing scrolling view move. rename INPUT_MODE_KB to INPUT_MODE_HARD since it seems to have little to do with keybinds * fix fullscreen/maximise moving the scrolling view * fix opening of layer 3 programs moving scrolling view * refactor, clean up and clang-format * fix bad decisions * fix includes, clang-format. * remove TODO * `focuswindow` no longer moves scrolling view when `follow_focus = 0` * fix: changes in a group's current window no longer casues scrolling view shift when `follow_focus = 0` * fix: `moveintogroup`, `movewindoworgroup` no longer causes scrolling view change if `follow_focus = 0` * clang-format * add `RECALCULATE_REASON_UNKNOWN`, `RECALCULATE_MONITOR_REASON_UNKNOWN`, `REMOVE_FROM_GROUP_REASON_UNKNOWN` remove optional wrapper from their enums, refactor code to work with the change * dispatches that call `switchtoWindow()` in CKeybindManager no longer cause scrolling view to move if `follow_focus = 0`. They still cause the move if `follow_focus = 1` Dispatches effected by this: `movefocus`, `cyclenext`, `focuscurrentorlast`, `focuscurrentorurgent` * Fix for Lua: switchToWondow * Fix for Lua: focus({window}) * Fix for Lua: Move Window Into Group * clang-format * Drop `hyprctl keyword` change * test: `focus({window})` with `follow_focus = false` * test: `focus({window})` with `follow_focus = true` * test: test Focus Fallback * test: Focus Fallback with groups * test: workspace change * test: special workspace toggle * test: workspace change - special to special also minor refactoring * test: close window in a group * test: move window into group `follow_focus = false` minor fix in test: expect -> assert * test: move window into group `follow_focus = true` * test: new layer * test: maximise fix in test: expect to assert. * test: fullscreen * test: `dispatch window.focus({ direction })` when `follow_focus = false` * test: `dispatch window.focus({ direction })` when `follow_focus = true` test-fix: expect -> assert * test: move focus within group when `follow_focus = false` * test: move focus within group when `follow_focus = true` * test-fix: kill all layers before killing all windows in layers test. prevents internal post test cleanup function failing to kill all layers test-fix: maximized and fullscreen swapped between their tests test-fix: testScrollingViewBehaviourMoveFocusInGroupFollowFocusTrue missing layout initialization test-fix: testScrollingViewBehaviourWorkspaceChange, testScrollingViewBehaviourCloseWindowInGroup have stale window class in a comment clang-format * catch up with main: move to new test function * clean-up the clean-up part of the tests: redundant * clang-format * pain * suffering: fix rebase fail * test: manually kill all layers since the cleanup function fails * remove test: fullscreen and maximise. scrolling has its own behaviour now
* layout/scrolling: handle fullscreen manually (#14190)Vaxry2026-05-071-0/+3
| | | Makes scroll handle fullscreen by itself, allowing for fs scrolls.
* windows/focus: add fallbacks when focussing workspaces (#14270)fazzi2026-05-041-2/+6
|
* desktop/window: refactor over fullscreen stateVaxry2026-04-291-0/+1
|
* config/lua: init lua config manager, use lua if available (#13817)Vaxry2026-04-261-4/+4
| | | Adds a new lua config manager, which will automatically be used if there is a lua config present.
* event: refactor HookSystem into a typed event bus (#13333)Vaxry2026-02-221-6/+6
| | | | | Refactors the old HookSystem into a typed event bus with clear separation, discovery and types.
* layout: rethonk layouts from the ground up (#12890)Vaxry2026-02-211-12/+18
| | | | | Rewrites layouts to be much smaller, and deal with much less annoying BS. Improves the overall architecture, unifies handling of pseudotiling, and various other improvements.
* desktop: restore invisible floating window alpha/opacity when focused over ↵Naufal Hisyam Muzakki2026-01-211-0/+2
| | | | fullscreen (#12994)
* desktop/window: improve fullscreen handling for grouped windowsVaxry2025-12-221-0/+5
| | | | fixes #12700
* Desktop/history: Move history to desktop (#12676)Vaxry2025-12-201-43/+4
|
* debug: move to hyprutils' logger (#12673)Vaxry2025-12-181-9/+9
|
* desktop: cleanup, unify desktop elements as views (#12563)Vaxry2025-12-081-5/+5
|
* compositor: Configurable behavior when window to be focused conflicts with ↵Nikolai Nechaev2025-11-251-0/+330
fullscreen (#12033) Renames `misc:new_window_takes_over_fullscreen` into `misc:on_focus_under_fullscreen` and implements the following behavior: - By default, when a tiling window is being focused on a workspace where a fullscreen/maximized window exists, respect the `misc:on_focus_under_fullscreen` config variable.