| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2023-10-07 | Update bounds of toplevel windows | Ivan Molodetskikh | |
| 2023-10-07 | Add gaps setting | Ivan Molodetskikh | |
| The past few refactors have led up to this point, and now it's finally possible. | |||
| 2023-10-07 | layout: Refactor view offset, padding, work area handling | Ivan Molodetskikh | |
| Fixes broken padding on fullscreen windows, especially with struts on the sides present. It is now view offset's job to include padding and struts. | |||
| 2023-10-05 | layout: Add every_op test from starting state | Ivan Molodetskikh | |
| 2023-10-05 | layout: Handle padding in ColumnWidth::resolve() | Ivan Molodetskikh | |
| 2023-10-05 | Refactor layout for configurability, add preset-column-widths option | Ivan Molodetskikh | |
| layout.rs finally gets a struct actually named Layout. | |||
| 2023-10-04 | layout: Store view size in Columns | Ivan Molodetskikh | |
| 2023-10-03 | Add set-column-width action | Ivan Molodetskikh | |
| 2023-10-01 | Avoid sending frame callbacks to invisible surfaces | Ivan Molodetskikh | |
| 2023-10-01 | Make find_window_and_output() accept non-mut self | Ivan Molodetskikh | |
| 2023-09-30 | Compute view offset relative to anim target | Ivan Molodetskikh | |
| This enables quickly tapping focus right-left to keep typing in the current window while showing the next window. Resolves https://github.com/YaLTeR/niri/issues/26 | |||
| 2023-09-30 | Refactor frame scheduling | Ivan Molodetskikh | |
| Combine the redraw state variables into one enum, and refactor to get rid of the requirement that a VBlank must queue a subsequent redraw. Also fix the bug where ongoing animations that produced no damage could stall the redrawing. | |||
| 2023-09-29 | Throttle frame callbacks to once per monitor refresh | Ivan Molodetskikh | |
| Under some circumstances, the compositor can get into a commit-frame callback busy loop with a client. For example, if a client redraws on frame callbacks, but the resulting frame has empty damage (e.g. the damaged part of the client is outside the monitor). Or if the client simply commits with empty damage (looking at you, Firefox). This behavior is compliant with the Wayland specification and with the intended idea of frame callbacks, but causes a lot of unnecessary CPU usage in the client and the compositor. To solve this problem, this commit introduces frame callback throttling. Every surface may only receive a single frame callback in one monitor refresh cycle. If a surface commits resulting in no KMS frame submission, a timer is created, that will fire at the predicted would- be-VBlank time, and send the accumulated frame callbacks. This way, a surface that redraws on frame callbacks will not notice any change in frame callback delivery, if its commits suddenly stop producing KMS updates. | |||
| 2023-09-28 | layout: Add communicate op to tests | Ivan Molodetskikh | |
| 2023-09-28 | layout: Refresh windows too | Ivan Molodetskikh | |
| This will send output enter/leave to new popups. | |||
| 2023-09-27 | layout: Use actual working area on workspace creation | Ivan Molodetskikh | |
| Fixes https://github.com/YaLTeR/niri/issues/19 | |||
| 2023-09-27 | layout: Add more ops for proptest to play with | Ivan Molodetskikh | |
| 2023-09-27 | layout: Add randomized test | Ivan Molodetskikh | |
| 2023-09-27 | Fix test name | Ivan Molodetskikh | |
| 2023-09-26 | Fix panic when the last window on previous workspace is closed | Ivan Molodetskikh | |
| 2023-09-26 | Extract check_ops | Ivan Molodetskikh | |
| 2023-09-26 | Fix panic when adding previously-removed output sometimes | Ivan Molodetskikh | |
| 2023-09-26 | Fix verify_invariants() asserts | Ivan Molodetskikh | |
| 2023-09-26 | Add layer shell exclusive zone support | Ivan Molodetskikh | |
| 2023-09-26 | Make focus ring configurable | Ivan Molodetskikh | |
| 2023-09-24 | Add focus rings | Ivan Molodetskikh | |
| 2023-09-24 | layout: Focus prev column when removing just created column | Ivan Molodetskikh | |
| This works similar to tabs in Firefox: when you create a tab and then close it without focusing any other tabs, the focus returns to the previously-focused tab, rather than the usual next tab. The logic is that in this case, the new tab was likely transient, and the user wants to get right back to what they were doing. In niri's case, this also serves as a workaround for wl-clipboard spawning and destroying a window, messing up the focus. | |||
| 2023-09-24 | layout: Preserve active column when column to the left is removed | Ivan Molodetskikh | |
| 2023-09-21 | Add output configuration & integer scaling support | Ivan Molodetskikh | |
| 2023-09-21 | layout: Fix workspace output updating | Ivan Molodetskikh | |
| 2023-09-16 | Add by-index workspace commands and binds | Ivan Molodetskikh | |
| 2023-09-13 | layout: Correct view offset when swapping columns | Ivan Molodetskikh | |
| 2023-09-13 | Implement minimizing view movement on changes | Ivan Molodetskikh | |
| Before this commit, windows were always left-aligned. Now, when changing focus, if the window is fully visible, the view doesn't move. If the window is not fully visible, the view is moved the minimum amount. | |||
| 2023-09-12 | layout: Add tests for various operations | Ivan Molodetskikh | |
| 2023-09-12 | layout: Fix assertion in verify_invariants() | Ivan Molodetskikh | |
| 2023-09-12 | layout: Replace add_window_to_output with add_window | Ivan Molodetskikh | |
| 2023-09-05 | layout: Fix input to non-active window in column | Ivan Molodetskikh | |
| 2023-09-03 | Send scanout feedbacks to surfaces | Ivan Molodetskikh | |
| 2023-08-27 | Extract different parts of rendering into functions | Ivan Molodetskikh | |
| 2023-08-16 | Remove some commented out code | Ivan Molodetskikh | |
| 2023-08-16 | Implement wp-presentation | Ivan Molodetskikh | |
| 2023-08-16 | Respect max window width | Ivan Molodetskikh | |
| 2023-08-16 | Use the correct min_size state | Ivan Molodetskikh | |
| 2023-08-16 | Put active window on top | Ivan Molodetskikh | |
| 2023-08-16 | Add basic fullscreen impl | Ivan Molodetskikh | |
| 2023-08-16 | Add binds to move between monitors | Ivan Molodetskikh | |
| 2023-08-15 | Add initial layer-shell implementation | Ivan Molodetskikh | |
| Those surfaces never receive mouse focus and always keyboard focus, which may not be always good, but it'll do for now. | |||
| 2023-08-14 | Add Mod+F to maximize | Ivan Molodetskikh | |
| 2023-08-14 | Add Mod+R to toggle between preset widths | Ivan Molodetskikh | |
| 2023-08-14 | Advance animations in process_input_event | Ivan Molodetskikh | |
