aboutsummaryrefslogtreecommitdiff
path: root/src/layout/monitor.rs
AgeCommit message (Collapse)Author
2025-05-01Implement --focus for MoveColumnToWorkspace/Up/DownAberter Yan
2025-05-01Draw workspace shadows behind all workspacesIvan Molodetskikh
2025-04-26overview: Activate window upon dropping from interactive moveIvan Molodetskikh
2025-04-25Fix panic when interactively moving to invisible workspaceIvan Molodetskikh
Introduced in the interactive move between workspaces commit.
2025-04-25Implement interactive move to a new workspace above/betweenIvan Molodetskikh
2025-04-25overview: Add DnD up/down scrollingIvan Molodetskikh
2025-04-25Implement an OverviewIvan Molodetskikh
2025-04-25Render workspaces separately with gaps betweenIvan Molodetskikh
This design makes more sense spatially, and is required for the Overview. Gaps also make it clear how clipping windows to workspace bounds works. Background and bottom layer-shell surfaces get duplicated for each workspace, while top and overlay stay "on top".
2025-04-25layout/monitor: Extract activate_workspace_with_anim_config()Ivan Molodetskikh
2025-04-25layout/monitor: Cache scale, view_size, working_areaIvan Molodetskikh
2025-04-25layout/monitor: Don't consider workspace switch in ↵Ivan Molodetskikh
active_tile_visual_rectangle() This only did something when in the middle of a touchpad gesture, and it didn't really make sense for that edge case.
2025-04-25layout/monitor: Extract add_workspace_at()Ivan Molodetskikh
2025-04-25layout: Move insert hint from ScrollingSpace to MonitorIvan Molodetskikh
2025-04-25layout: Return floating and scrolling elems separately from WorkspaceIvan Molodetskikh
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-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-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-02-27layout/monitor: Remove unused functionIvan Molodetskikh
2025-02-27layout/monitor: Remove redundant passthrough functionsIvan Molodetskikh
2025-02-17Implement expand-column-to-available-widthIvan Molodetskikh
2025-02-10Add set-column-display actionIvan Molodetskikh
2025-02-10Implement tabbed column display modeIvan 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-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-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-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-10Fix new Clippy warningsIvan Molodetskikh
2025-01-10Allow workspace names to be changed dynamically (#904)rustn00b
* Add un/set workspace name actions * Add SetWorkspaceName reference to proptests * Simplify unname_workspace * Add ewaf version of set first workspace name test * Simplify more * Fix comment * Make workspace in set-workspace-name a positional option --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-01-09Add a window swap operation (#899)rustn00b
Swap the active window with the a neighboring column's active window. --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com> Take into account PR comments - no longer behave like an expel when a swap is made in a direction where there is no column to swap with - fix janky animation
2025-01-04Migrate to new Rectangle functionsIvan Molodetskikh
2024-12-30Hide focus ring for unfocused layout and under interactive moveIvan Molodetskikh
2024-12-30layout: Refactor window opening targetsIvan Molodetskikh
2024-12-30Remember floating window positionIvan Molodetskikh
2024-12-30layout: Preserve the Tile when moving across workspacesIvan Molodetskikh
2024-12-30Initial WIP floating window implementationIvan Molodetskikh
2024-12-01layout: Extract ScrollingSpaceIvan Molodetskikh
Leave the Workspace to do the workspace parts, and extract the scrolling parts into a new file. This is a pre-requisite for things like the floating layer (which will live in a workspace alongside the scrolling layer). As part of this huge refactor, I found and fixed at least these issues: - Wrong horizontal popup unconstraining for a smaller window in an always-centered column. - Wrong workspace switch in focus_up_or_right().
2024-11-29Fix new warningsIvan Molodetskikh
2024-11-29Implement empty-workspace-above-first (#745)FluxTape
* Implement empty-workspace-above-first option * add two failing tests * fix interactive_move_onto_empty_output_ewaf and interactive_move_onto_first_empty_workspace tests * Add two failing ewaf option toggle tests * Fix adding/removing first empty workspace on option toggle * Don't remove first empty workspace if focused * Stop workspace switch when enabling ewaf * layout/monitor: Offset workspace switch on adding workspace above * Fix some initial active workspace ids with ewaf * wiki: Document empty-workspace-above-first --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2024-11-25Refactor animation timing to use lazy clocksIvan Molodetskikh
2024-11-25Refactor animations to take explicit current timeIvan Molodetskikh
2024-11-23layout/monitor: Extract add_workspace_bottom()Ivan Molodetskikh
2024-10-27Implement interactive window moveRasmus Eneman
2024-10-17layout: Accept anim_config in remove_column_by_idxIvan Molodetskikh