| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2025-04-25 | Render workspaces separately with gaps between | Ivan 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-25 | layout/monitor: Extract activate_workspace_with_anim_config() | Ivan Molodetskikh | |
| 2025-04-25 | layout: Extract interactive_moved_window_under() and add output check | Ivan Molodetskikh | |
| Fixes interactively moved window getting input on every output rather than just its own. | |||
| 2025-04-25 | Pass target workspace to view offset grab | Ivan Molodetskikh | |
| 2025-04-25 | layout/scrolling: Support view offset anim during gesture | Ivan Molodetskikh | |
| Brings back moving the newly active window into focus upon interactive move dragging out. | |||
| 2025-04-25 | layout/monitor: Cache scale, view_size, working_area | Ivan Molodetskikh | |
| 2025-04-25 | layout/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-25 | layout/monitor: Extract add_workspace_at() | Ivan Molodetskikh | |
| 2025-04-25 | layout: Move insert hint from ScrollingSpace to Monitor | Ivan Molodetskikh | |
| 2025-04-25 | layout: Return floating and scrolling elems separately from Workspace | Ivan Molodetskikh | |
| 2025-04-25 | layout/tab_indicator: Use round_max1 where appropriate | Ivan Molodetskikh | |
| 2025-04-25 | layout/monitor: Extract workspace_render_idx() | Ivan Molodetskikh | |
| 2025-04-25 | layout/monitor: Extract workspaces_render_geo() | Ivan Molodetskikh | |
| 2025-04-25 | layout/monitor: Extract WorkspaceSwitchGesture::min_max() | Ivan Molodetskikh | |
| 2025-04-25 | layout/monitor: Keep track of workspace switch gesture start idx | Ivan Molodetskikh | |
| Fixes jump when "catching" an animation with a gesture. | |||
| 2025-04-25 | Remove cancellation from swipe gestures | Ivan Molodetskikh | |
| It only worked for workspace switch, and even there it was more confusing than helpful. | |||
| 2025-04-25 | Add missing bounds checks to move-workspace actions | Ivan Molodetskikh | |
| Fixes panics. | |||
| 2025-04-17 | layout: Extract Monitor::update_shaders() | Ivan Molodetskikh | |
| 2025-04-17 | layout: Remove width and is_full_width from InsertHint | Ivan Molodetskikh | |
| They were unused. | |||
| 2025-04-17 | layout: Don't pass scale to render unnecessarily | Ivan Molodetskikh | |
| These parts of the layout already know their scale. | |||
| 2025-04-17 | Rename render_floating_for_output to render_interactive_move_for_output | Ivan Molodetskikh | |
| 2025-04-10 | layout: Take into account idle time between last gesture event and end | Ivan 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-05 | layout: Avoid calling interactive_move_end() in the middle of ↵ | Ivan Molodetskikh | |
| interactive_move_update() | |||
| 2025-04-03 | layout/scrolling: Use slice::fill() | Ivan Molodetskikh | |
| Fix new Clippy warning. | |||
| 2025-03-31 | layout: Reset unfullscreen view offset when starting interactive resize | Ivan Molodetskikh | |
| 2025-03-31 | Allow negative shadow spread | LunarEclipse | |
| 2025-03-29 | layout: Remove duplicated function | Ivan Molodetskikh | |
| 2025-03-29 | Make move-window-to-workspace focus=false work across monitors too | Ivan Molodetskikh | |
| 2025-03-29 | screenshot: 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-29 | Add 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-22 | layout: Reset unfullscreen view offset when removing window | Ivan Molodetskikh | |
| Another old bug found by randomized tests after I expanded the testing mock window. | |||
| 2025-03-17 | Implement toggle-windowed-fullscreen | Ivan 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-17 | layout: Rename argument from window to id | Ivan Molodetskikh | |
| 2025-03-17 | layout: Don't forget to call on_commit() for the interactively moved window | Ivan Molodetskikh | |
| 2025-03-17 | layout/tests: Implement going into fullscreen state | Ivan Molodetskikh | |
| 2025-03-17 | layout/tile: Don't take fullscreen into account in min/max size | Ivan Molodetskikh | |
| They are used strictly for non-fullscreen size computation. | |||
| 2025-03-17 | layout: Verify moved tile invariants | Ivan Molodetskikh | |
| 2025-03-17 | layout: Test that interactively moved window is not pending fullscreen | Ivan Molodetskikh | |
| 2025-03-17 | Refactor request_fullscreen() to be an argument on request_size() | Ivan Molodetskikh | |
| 2025-03-17 | layout: Switch two places to workspaces_mut() | Ivan Molodetskikh | |
| 2025-03-14 | Add move-column-to-index action | Duncan Overbruck | |
| 2025-03-14 | Add focus-column (by index) action | Duncan Overbruck | |
| 2025-03-14 | layout: Preserve previous view offset on consume-left | Ivan Molodetskikh | |
| 2025-03-10 | Keep track of RenderElementStates in offscreens | Ivan 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-10 | Make interactively moved window semitransparent | Ivan Molodetskikh | |
| 2025-03-10 | Offscreen semitransparent tiles | Ivan Molodetskikh | |
| Now that offscreen does damage tracking, we can reasonably do this. Note this only affects full-tile opacity, not window opacity. | |||
| 2025-03-10 | layout/tile: Use animated tile size for open anim geo | Ivan Molodetskikh | |
| This is the right value to use as the texture will also match the animated size. | |||
| 2025-03-10 | tile: Use OffscreenBuffer for resize anims | Ivan Molodetskikh | |
| OffscreenBuffer knows how to avoid recreating the texture every frame. | |||
| 2025-03-10 | offscreen: Track and return damage | Ivan 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-10 | Cache texture in OpenAnimation | Ivan Molodetskikh | |
| Don't recreate it unless the size changes. This lays the groundwork for also tracking damage in the future. | |||
