aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2024-11-26layout/tests: Standardize on usize for output id in testsIvan Molodetskikh
2024-11-25Refactor animation timing to use lazy clocksIvan Molodetskikh
2024-11-25Refactor animations to take explicit current timeIvan Molodetskikh
2024-11-23Extract Niri::advance_animations()Ivan Molodetskikh
2024-11-23layout/monitor: Extract add_workspace_bottom()Ivan Molodetskikh
2024-11-23Add interactive_move_onto_empty_output testIvan Molodetskikh
Tests the add_workspace_bottom() in Monitor::add_tile().
2024-11-23pw: Fix potential crash when disconnecting outputIvan Molodetskikh
2024-11-22Focus target window/output on DnDIvan Molodetskikh
In sway, focus-follows-mouse keeps working during DnD, but not in niri. So it can be surprising when you DnD something into another app, but it doesn't get automatically focused. This commit fixes that. Even if the DnD is not validated, or if there's no target surface (e.g. dropped on the niri background), focus the target output, since that's how Firefox's drag-tab-into-new-window works for example.
2024-11-21Add `focus-window-previous` action (#811)Ridan Vandenbergh
* Add `FocusWindowPrevious` action * remove [` * track previous focus in Niri instead of every window --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2024-11-14Implement layer rules: opacity and block-out-fromIvan Molodetskikh
2024-11-14niri: Extract render_layer()Ivan Molodetskikh
2024-11-14config: Add RegexEq util type instead of manual PartialEqIvan Molodetskikh
2024-11-12Add niri msg layersIvan Molodetskikh
2024-11-12Guard against closed screenshot UI in its bindsIvan Molodetskikh
They can trigger with closed screenshot UI via key repeat.
2024-11-12Add PID to Window IPCIvan Molodetskikh
2024-11-11Change expel-window-from-column to expel the bottom windowIvan Molodetskikh
This way, expel becomes symmetric with consume. This is also how it works in PaperWM. Though, in PaperWM if the expelled window was focused, it will remain focused, while in this commit it is never focused, making it the exact opposite of consume. Use consume-or-expel-window-right for the old expel behavior.
2024-11-11Make consume-or-expel binds more prominentIvan Molodetskikh
I find myself using them much more than regular consume or expel.
2024-11-11Unhide the pointer on scroll events (#797)Ramses
* Unhide the pointer on scroll events Since we reset the surface under the pointer when we hide the pointer (see update_pointer_contents), scroll events don't work when the pointer is hidden. So to make scrolling work, we make sure that we unhide the pointer when a scrolling event occurs. * Update src/input/mod.rs --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2024-11-10Start interactive move on Mod+TouchIvan Molodetskikh
2024-11-10Fix scrolling not working with missing mouse configIvan Molodetskikh
2024-11-08Lock session right away with no outputsIvan Molodetskikh
2024-11-08Rework output connection to always go through on_output_config_changed()Ivan Molodetskikh
This has the following benefits: 1. connector_connected() is now more closely mirroring connector_disconnected() in that it merely lights up the connector, and doesn't check if the connector should be off from the config. 2. We can use more complex on/off logic that depends on multiple connectors. For example, this commit adds logic to only disable the laptop panel on lid close if there are other connected outputs. We don't want to disable the laptop panel on lid close if it's the only connected output because it causes screen lockers to create their surface from scratch on normal laptop unsuspend, which is undesirable and also confuses some screen lockers.
2024-11-08Only call on_output_config_changed() on lid switchIvan Molodetskikh
We don't need to reload the niri output config.
2024-11-06Add disable-monitor-names debug flagIvan Molodetskikh
2024-11-05layout: Preserve active workspace for removed outputsIvan Molodetskikh
2024-11-05layout: Move some types further downIvan Molodetskikh
2024-11-05Disable laptop panel when the lid is closedIvan Molodetskikh
2024-11-05Extract is_laptop_panel() to utilsIvan Molodetskikh
2024-11-03Implement scroll_factor mouse and touchpad setting (#730)elipp
* Implement scroll_factor mouse and touchpad setting * Change to FloatOrInt, add docs * Also change v120 values --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2024-11-03xdg: cleanup activation tokensChristian Meissl
valid tokens will stay around until explicitly cleaned-up. remove the token after it has been successfully used or we consider it timed out to prevent leaking the memory used by the activation tokens
2024-11-03Remove pointer_grab_ongoing in favor of checking the actual grabIvan Molodetskikh
2024-11-03Use is() instead of downcast().is_some()Ivan Molodetskikh
2024-11-03Correct pointer constraint activation logicIvan Molodetskikh
Internally it uses the pointer focus, so make sure we have up-to-date focus before setting it.
2024-11-03Clarify redraw in refresh_pointer_focus()Ivan Molodetskikh
2024-11-03Rename pointer_focus to pointer_contents, clarify commentsIvan Molodetskikh
This is not pointer focus and it shouldn't be pointer focus, let's be clear about it.
2024-11-03Rename surface_under_and_global_space() to contents_under()Ivan Molodetskikh
2024-11-02Replace current_state() with with_toplevel_role()Ivan Molodetskikh
Avoid microallocations that happen in current_state().
2024-11-02Add with_toplevel_role() util functionIvan Molodetskikh
2024-11-02Add Tracy allocation profiling feature flagIvan Molodetskikh
2024-11-02Follow window corner radius in insert hintIvan Molodetskikh
2024-11-02Add gradient support for the insert hintIvan Molodetskikh
Implement it via FocusRing which already handles SolidColor vs. Border render element.
2024-11-02Change TODO to FIXMEIvan Molodetskikh
2024-11-02Remove obsolete TODOIvan Molodetskikh
2024-10-29Don't show the cursor on programmatic movementIvan Molodetskikh
For keyboard-only use, especially with warp-mouse-to-focus, the intention is that the cursor stays hidden from keyboard and other automatic actions, and only shows up with an actual mouse movement.
2024-10-29[cfg-breaking] Rename hide-on-key-press to hide-when-typingIvan Molodetskikh
I originally preferred on-key-press, but when-typing feels more natural and matches sway. This setting had not been in a stable release yet so this is not stable release cfg breaking.
2024-10-28Deny toplevel move from DnD grabsIvan Molodetskikh
Work around https://gitlab.gnome.org/GNOME/gtk/-/issues/7113
2024-10-27Implement touch interactive resizeIvan Molodetskikh
2024-10-27Implement touch interactive moveIvan Molodetskikh
2024-10-27Implement interactive window moveRasmus Eneman
2024-10-27Require Clone for LayoutElement::IdIvan Molodetskikh
Now that we have MappedId, this could really be Copy. But it's quite a big refactor, so for now just require Clone as I'll need it.