aboutsummaryrefslogtreecommitdiff
path: root/src/layout
AgeCommit message (Collapse)Author
2025-04-25layout/monitor: Extract workspace_render_idx()Ivan Molodetskikh
2025-04-25layout/monitor: Extract workspaces_render_geo()Ivan Molodetskikh
2025-04-25layout/monitor: Extract WorkspaceSwitchGesture::min_max()Ivan Molodetskikh
2025-04-25layout/monitor: Keep track of workspace switch gesture start idxIvan Molodetskikh
Fixes jump when "catching" an animation with a gesture.
2025-04-25Remove cancellation from swipe gesturesIvan Molodetskikh
It only worked for workspace switch, and even there it was more confusing than helpful.
2025-04-25Add missing bounds checks to move-workspace actionsIvan Molodetskikh
Fixes panics.
2025-04-17layout: Extract Monitor::update_shaders()Ivan Molodetskikh
2025-04-17layout: Remove width and is_full_width from InsertHintIvan Molodetskikh
They were unused.
2025-04-17layout: Don't pass scale to render unnecessarilyIvan Molodetskikh
These parts of the layout already know their scale.
2025-04-17Rename render_floating_for_output to render_interactive_move_for_outputIvan Molodetskikh
2025-04-10layout: Take into account idle time between last gesture event and endIvan Molodetskikh
Fixes cases like: do a quick movement with mouse, then hold it in-place for a while (no events generated), then release the gesture (it uses all that built-up speed). This also happens with DnD scroll and makes it go further than intended.
2025-04-05layout: Avoid calling interactive_move_end() in the middle of ↵Ivan Molodetskikh
interactive_move_update()
2025-04-03layout/scrolling: Use slice::fill()Ivan Molodetskikh
Fix new Clippy warning.
2025-03-31layout: Reset unfullscreen view offset when starting interactive resizeIvan Molodetskikh
2025-03-31Allow negative shadow spreadLunarEclipse
2025-03-29layout: Remove duplicated functionIvan Molodetskikh
2025-03-29Make move-window-to-workspace focus=false work across monitors tooIvan Molodetskikh
2025-03-29screenshot: make selection area modifiable via move/resize keybinds (#1279)nyx
* screenshot: make selection area modifiable via keybinds * input: run fmt * Reimplement screenshot UI binds in a better way --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-03-29Add focus argument to move-window-to-workspace (#1332)nyx
* layout: add focus flag to move-window-to-workspace * lib: update comment * misc: minor dup refactor * input: format code * layout: minor nit * layout: update comment * input: remove unnecessary conditionals * misc: replace boolean * tests: fix the failing one * layout: change to smart * ipc: Option<bool> -> bool * lib: format code * Rewrite focus doc comment --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-03-22layout: Reset unfullscreen view offset when removing windowIvan Molodetskikh
Another old bug found by randomized tests after I expanded the testing mock window.
2025-03-17Implement toggle-windowed-fullscreenIvan Molodetskikh
Windowed, or fake, or detached, fullscreen, is when a window thinks that it's fullscreen, but the compositor treats it as a normal window.
2025-03-17layout: Rename argument from window to idIvan Molodetskikh
2025-03-17layout: Don't forget to call on_commit() for the interactively moved windowIvan Molodetskikh
2025-03-17layout/tests: Implement going into fullscreen stateIvan Molodetskikh
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-17layout: Verify moved tile invariantsIvan Molodetskikh
2025-03-17layout: Test that interactively moved window is not pending fullscreenIvan Molodetskikh
2025-03-17Refactor request_fullscreen() to be an argument on request_size()Ivan Molodetskikh
2025-03-17layout: Switch two places to workspaces_mut()Ivan Molodetskikh
2025-03-14Add move-column-to-index actionDuncan Overbruck
2025-03-14Add focus-column (by index) actionDuncan Overbruck
2025-03-14layout: Preserve previous view offset on consume-leftIvan 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-03-10offscreen: Track and return damageIvan Molodetskikh
This is the second part of the damage equation: now the offscreen element itself reports correct damage, so partial redraws to the texture don't cause full redraws of the texture element itself.
2025-03-10Cache texture in OpenAnimationIvan Molodetskikh
Don't recreate it unless the size changes. This lays the groundwork for also tracking damage in the future.
2025-03-01Added top, left, bottom and right floating windows alignement (#1169)Martino Ferrari
* feat: added top, left, bottom, right alignement options * feat: implemented extra alignement * feat: added example * doc: updated documentation with extra alignements * doc: moved example in wiki and typo correction * fix: relative position should be positive and not negative * fixes --------- Co-authored-by: Martino Ferrari <martinogiordano.ferrari@iter.org> Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-02-27layout/monitor: Remove unused functionIvan Molodetskikh
2025-02-27layout/monitor: Remove redundant passthrough functionsIvan Molodetskikh
2025-02-18Don't snap after DnD scroll if view position didn't changeIvan Molodetskikh
Otherwise, any DnD breaks temporarily centered columns.
2025-02-17Take tab indicators into account in expand-column-to-available-widthIvan Molodetskikh
2025-02-17Use toggle_full_width() for expand-column-to-available-width edge caseIvan Molodetskikh
2025-02-17Fix expand-column-to-available-width for always-centerIvan Molodetskikh
2025-02-17Implement expand-column-to-available-widthIvan Molodetskikh
2025-02-16Make DnD edge view scroll configurableIvan Molodetskikh
2025-02-16Add a small delay to DnD view scrollingIvan Molodetskikh
2025-02-16layout: Remove unused methodIvan Molodetskikh