aboutsummaryrefslogtreecommitdiff
path: root/src/layout/tile.rs
AgeCommit message (Collapse)Author
2025-11-24layout: Round focus ring/border width to physical at the right placeIvan Molodetskikh
Before this, focus ring/border width was incorrectly rounded only for layout config, which does not take into account window rules overrides. This means that setting width in window rules prevented correct rounding altogether. Tests didn't check this because window rules weren't tested. This commit also adds basic window rules random generation, making the tests catch this problem too.
2025-10-15Implement maximize-to-edges (true Wayland maximize)Ivan Molodetskikh
2025-10-15layout/tile: Fade out border for fullscreenIvan Molodetskikh
2025-10-15layout/tile: Fade out shadow for fullscreenIvan Molodetskikh
2025-10-15layout/tile: Fade out focus ring for fullscreenIvan Molodetskikh
2025-10-02layout: Store Layout directly in OptionsIvan Molodetskikh
2025-10-02config: Replace resolve_against with MergeWithIvan Molodetskikh
2025-09-17layout/tile: Animate un/fullscreen resizeIvan Molodetskikh
This turned out to require quite a few changes. We keep track of the tile resize animation progress separately now, in order to provide a resizing black fullscreen backdrop for non-resizable windows. The window is always rendered in the middle of the tile, which once again aids with the resizing black fullscreen backdrop. The backdrop itself will fade in from transparency so that it's less jarring. The resize animation now keeps track of the fullscreen progress to deal with the case where an unfullscreen resize is interrupted by another non-fullscreen resize. In this case, the fullscreen progress continues animating to avoid sudden disappearance of the fullscreen backdrop. Some things like border visibility switch to this fullscreen progress once again to avoid jarring appearance/disappearance. The border radius animates in accordance with the fullscreen progress to match the visuals.
2025-09-17layout/tile: Remove unused functionIvan Molodetskikh
As far as I can tell, it was unused even when it was first added.
2025-09-17layout/tile: Extract two variablesIvan Molodetskikh
2025-08-27Fix typosIvan Molodetskikh
2025-08-16niri-ipc: Add window positions and sizes (#1265)yrkv
* Add window sizes and positions to the IPC * basic fixes * report window_loc instead of window pos * clean ups * make scrolling indices 1-based * add printing to niri msg windows * don't include render offset in floating tile pos --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-08-14layout: Offset Y animations for non-animated resizesIvan Molodetskikh
2025-05-12Implement baba-is-float for layersIvan Molodetskikh
2025-05-10add urgent border color and gradientDuncan Overbruck
2025-04-17layout: Don't pass scale to render unnecessarilyIvan Molodetskikh
These parts of the layout already know their scale.
2025-03-17layout/tile: Don't take fullscreen into account in min/max sizeIvan Molodetskikh
They are used strictly for non-fullscreen size computation.
2025-03-17Refactor request_fullscreen() to be an argument on request_size()Ivan Molodetskikh
2025-03-10Keep track of RenderElementStates in offscreensIvan Molodetskikh
This both avoids sending frame callbacks to surfaces invisible on the offscreen (fixing Firefox with subsurface compositing in the process), and fixes searching for split popups during the resize animation.
2025-03-10Make interactively moved window semitransparentIvan Molodetskikh
2025-03-10Offscreen semitransparent tilesIvan Molodetskikh
Now that offscreen does damage tracking, we can reasonably do this. Note this only affects full-tile opacity, not window opacity.
2025-03-10layout/tile: Use animated tile size for open anim geoIvan Molodetskikh
This is the right value to use as the texture will also match the animated size.
2025-03-10tile: Use OffscreenBuffer for resize animsIvan Molodetskikh
OffscreenBuffer knows how to avoid recreating the texture every frame.
2025-02-15Hook up are_transitions_ongoing() for floating and tilesIvan Molodetskikh
Don't spoil it
2025-02-10Implement clicking on tab to switchIvan Molodetskikh
2025-02-10layout: Fix/add animations around tabbed columnsIvan Molodetskikh
2025-02-10Implement tab indicatorsIvan Molodetskikh
2025-02-10layout: Extract tile.hit(), HitType::hit_tile()Ivan Molodetskikh
2025-02-10layout/tile: Rename variableIvan Molodetskikh
2025-02-10Add alpha parameter to shadersIvan Molodetskikh
Lets us add extra opacity.
2025-01-23Add toggle-window-rule-opacity actionIvan Molodetskikh
2025-01-21tile: Rename update() to update_render_elements()Ivan Molodetskikh
2025-01-18Remove Vec from Shadow::render()Ivan Molodetskikh
2025-01-17Implement window shadowsIvan Molodetskikh
2025-01-15Remove obsolete commentIvan Molodetskikh
2025-01-04Migrate to new Rectangle functionsIvan Molodetskikh
2024-12-30Add default-floating-position relative-to propertyIvan Molodetskikh
2024-12-30Add default-floating-position window ruleIvan Molodetskikh
2024-12-30layout: Pass and store view_size on a TileIvan Molodetskikh
2024-12-30floating: Implement toggle-width/height actionsIvan Molodetskikh
2024-12-30floating: Change from getters to pub(super)Ivan Molodetskikh
These fields are just data storage. They won't have any logic in getters/setters.
2024-12-30Preserve tile when moving across monitorsIvan Molodetskikh
2024-12-30Remember floating window positionIvan Molodetskikh
2024-12-30floating: Remember and restore window sizeIvan Molodetskikh
2024-12-30layout: Remember whether to unfullscreen back into floatingIvan Molodetskikh
2024-12-07layout: Extract Tile::verify_invariants()Ivan Molodetskikh
2024-11-25Refactor animation timing to use lazy clocksIvan Molodetskikh
2024-11-25Refactor animations to take explicit current timeIvan Molodetskikh
2024-11-02Follow window corner radius in insert hintIvan Molodetskikh
2024-10-27Implement interactive window moveRasmus Eneman