| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
| |
Makes scroll handle fullscreen by itself, allowing for fs scrolls.
|
| |
|
|
| |
(#14272)
|
| | |
|
| |
|
|
|
| |
* workspace rules: support modifying persistent and monitor
* support modifying isDefault
|
| | |
|
| | |
|
| | |
|
| |
|
| |
Adds a new lua config manager, which will automatically be used if there is a lua config present.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* input: implement follow_mouse_shrink
Add a new config option `input:follow_mouse_shrink` (INT, 0-300, default 0)
that shrinks inactive window hitboxes by the specified number of pixels for
focus detection purposes. This creates a dead zone in gaps between windows
where moving the cursor will not trigger a focus change.
The shrink only applies to inactive (non-focused) windows and only during
mouse-move focus checks (follow_mouse = 1). Click and scroll interactions
are unaffected — clicking on a window in the shrunk area still works
normally once the window is focused.
Closes #9973
* tests: add integration test for follow_mouse_shrink
|
| |
|
|
|
|
|
| |
Improves the overlay's rendering:
- GPU accelerated
- supports gradients
- wraps
- cleaner code a bit
|
| |
|
|
| |
optimizes the rendering, drops direct cairo, fixes up api.
Also improves the visuals etc of the overlay
|
| |
|
| |
Part 8 of Ujin's refactors.
|
| |
|
| |
moves to notification/, and adds a new style manager getter.
|
| | |
|
| |
|
|
| |
caches popup extents in the head to avoid potentially expensive traversals
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* misc: silence warnings about ignoring return value on reads
silence warnings on ignored return values on read() and print an error
if it occurs.
* misc: silence warnings about ignoring return value on writes
silence warnings on ignored return values on write() and print an error
where we can, or pass them the maybe_unused attribute.
* misc: silence warnings about ignoring return value on pipe
silence warnings on ignored return value on pipe(), print an error and
exit on failure.
|
| | |
|
| |
|
|
|
|
|
| |
Part 7 of ujin's refactors
---------
Co-authored-by: Vaxry <vaxry@vaxry.net>
|
| |
|
|
|
|
|
|
|
| |
coord (#13720)
* Be more selective about how we expand the window box here so that we're not overlapping with any neighbouring windows.
* Don't use getWindowInDirection to see if we're clear to expand the hit box. Instead, just see if our edge is close to the edge of the workspace.
* Clang-format changes
|
| |
|
|
| |
Massively refactors the config infrastructure, sorely
needed and will be req'd for the lua stuff
|
| | |
|
| |
|
|
|
|
|
|
|
| |
necessary (#13607)
Simplify the compositor fullscreen state processing: use the complete
fullscreen mode value except when the effective fullscreen mode value
is needed.
Fixes #13041.
|
| | |
|
| | |
|
| |
|
|
| |
failure (#13590)
|
| |
|
|
| |
ref https://github.com/hyprwm/Hyprland/discussions/13386
|
| | |
|
| |
|
| |
When all monitors disconnect, non-active workspaces could migrate to the wrong output after reconnect. Preserve workspace ownership and re-apply assigned monitor bindings on connect.
|
| |
|
|
| |
fixes edge detection, making it more relaxed and intuitive
|
| |
|
| |
in a multimon scenario, due to our positioning hacks, and due to the fact work area is a rect anyways, likely wont make sense
|
| |
|
|
|
| |
Refactors the old HookSystem into a typed event bus with clear
separation,
discovery and types.
|
| |
|
| |
Implements the new screencopy protocols
|
| |
|
|
|
| |
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.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
After suspend/wake, the animation tick timer state (m_lastTickValid,
m_tickScheduled) could be stale, causing framerate drops when blur is
enabled. This was introduced in 2b0fd417 which changed the animation
tick timing mechanism.
Reset the tick state when the session becomes active to ensure a clean
state for the animation system.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* fix image description info events
* always send some target primaries
* set edid values as target primaries and luminances
* init monitor image description
* set default luminances for tf
* fix BT1886 luminances
* fix mastering values and overrides
* set maxCLL & maxFALL
* typo
* add FALL & CLL to preferred HDR image description
* fix ref luminances
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* fix named primaries
* default to gamma22
* mark mastering primaries as supported
* remove xx-cm and frog support
* immutable primaries and image descriptions
* clang-format
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
I've tested this change with different modes from the monitor default
and validated that dpms still works, at least on my machine. If there's
a good reason why this exists, feel free to correct me, but this helps
get us closer to a flicker-free experience.
|
| | |
|
| | |
|
| |
|
|
|
| |
getMonitorFromVector can return nullptr on empty m_monitors, as such is
the case when the compositor is going down and a surface exist. return
early in vectorToWindowUnified if that happends.
|