aboutsummaryrefslogtreecommitdiff
path: root/src/layout/mod.rs
AgeCommit message (Collapse)Author
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-05layout: Avoid calling interactive_move_end() in the middle of ↵Ivan Molodetskikh
interactive_move_update()
2025-03-29layout: Remove duplicated functionIvan Molodetskikh
2025-03-29Make move-window-to-workspace focus=false work across monitors tooIvan Molodetskikh
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-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: 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-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-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-17Implement expand-column-to-available-widthIvan Molodetskikh
2025-02-16Make DnD edge view scroll configurableIvan Molodetskikh
2025-02-15Implement scrolling the view during DnDIvan Molodetskikh
DnD is external to the layout, so we just inform it when one is ongoing.
2025-02-15Implement scrolling the view during interactive moveIvan Molodetskikh
2025-02-15layout: Check move output in are_animations_ongoing()Ivan Molodetskikh
2025-02-10tab indicator: Animate openingIvan Molodetskikh
2025-02-10Implement clicking on tab to switchIvan Molodetskikh
2025-02-10Make send_frame() a function on MappedIvan Molodetskikh
We'll add some extra logic there.
2025-02-10Implement tab indicatorsIvan Molodetskikh
2025-02-10Add set-column-display actionIvan Molodetskikh
2025-02-10Move ColumnDisplay to niri-ipcIvan Molodetskikh
2025-02-10Implement tabbed column display modeIvan Molodetskikh
2025-02-10layout: Extract tile.hit(), HitType::hit_tile()Ivan Molodetskikh
2025-02-10Account for border in contents_under()Ivan Molodetskikh
Fixes pointer clicks going through window borders to a layer surface below, also fixes window not getting activated in all cases from a border click.
2025-02-10layout: Fix variable namesIvan Molodetskikh
2025-02-05Add focus-window-in-column (by index) actionIvan Molodetskikh
2025-02-05Add focus-window-top/bottom/down-or-top/up-or-bottom actionsIvan Molodetskikh
2025-02-05Fix find_window_and_output() returning None with no outputsIvan Molodetskikh
As far as I can tell, this would mess up a ton of the logic. Not sure how anything worked with no outputs before?
2025-01-31Take border into account for fixed preset-column-width for tiled windowsIvan Molodetskikh
2025-01-31Extract SizeChange::from(PresetSize)Ivan Molodetskikh
2025-01-31layout: Update module commentIvan Molodetskikh
2025-01-31layout: Move tests to separate fileIvan Molodetskikh
This way changing just the tests won't rebuild the main library.
2025-01-30misc: Fix typosbbb651
Using [`typos`](https://github.com/crate-ci/typos) cli
2025-01-29layout: Do not update original output for named workspaces upon adding windowsIvan Molodetskikh
The way named workspaces are generally used makes them more "attached" to their original output. For example, you have a two-monitor setup with named workspaces on both. When you disconnect the monitor to go somewhere and work for a while, then return, you probably want your named workspaces to return to where they were on your second monitor. This is in contrast to unnamed workspaces which are more transient and should more easily follow you wherever you're working.
2025-01-29layout: Update workspace original output on moving even if same monitorIvan Molodetskikh
Moving is an explicit action that puts the workspace on a specific monitor. It makes sense to update the original output even if the workspace already happens to be on the target monitor.
2025-01-25Add move-workspace-to-index and move-workspace-to-monitor actions (#1007)Kirottu
* Added move-workspace-to-index and move-workspace-to-monitor IPC actions * Added redraws to the workspace handling actions, fixed tests that panicked, fixed other mentioned problems. * Fixed workspace focusing and handling numbered workspaces with `move-workspace-to-index` * Fixed more inconsistencies with move-workspace-to-monitor * Added back `self.workspace_switch = None` * Reordered some workspace cleanup logic * Fix formatting * Add missing blank lines * Fix moving workspace to same monitor and wrong current index updating * Move function up and add fixme comment --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
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