aboutsummaryrefslogtreecommitdiff
path: root/src/handlers
AgeCommit message (Collapse)Author
2025-05-06Implement place-within-backdrop layer ruleIvan Molodetskikh
2025-04-27Fix pointer hiding so that it is no longer annoying (#1426)bogdanov
* replace `pointer_hidden` with `pointer_visiblity` * disable hidden pointer after content underneath has changed * fixes --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-04-25Implement an OverviewIvan Molodetskikh
2025-04-25Put the top layer above bottom and background layer popupsIvan Molodetskikh
Makes it consistent with how window popups are below the top layer, also will make more sense for the overview.
2025-03-29layout: Remove duplicated functionIvan Molodetskikh
2025-03-29Make move-window-to-workspace focus=false work across monitors tooIvan Molodetskikh
2025-03-15Move CastTarget to src/niri.rsIvan Molodetskikh
2025-03-13Wait for lock surfaces before lockingIvan Molodetskikh
Fixes the red flash when locking.
2025-03-13Extract utils::is_mapped()Ivan Molodetskikh
2025-03-13Add tiled-state window rule, update the tiled state liveIvan Molodetskikh
2025-02-26Add honor-xdg-activation-with-invalid-serial debug flagIvan Molodetskikh
2025-02-24Also check pointer for activation token validityIvan Molodetskikh
This actually doesn't matter in most cases currently, because it more or less checks for *anything* to have a keyboard focus, so if you have some focused window while clicking on a mako notification, that already qualifies. Signed-off-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-02-17Make idle notify lazyIvan 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-14Implement ext-data-controlIvan Molodetskikh
2025-02-14Update Smithay (idle-notify 2)Ivan Molodetskikh
2025-02-05mapped: Add needs_configure flagIvan Molodetskikh
Allows to de-duplicate configures from requests that require one.
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-27Extract Niri::insert_client()Ivan Molodetskikh
2025-01-25Add clipboard disable-primary settingpeelz
2025-01-23Add find_root_shell_surface() that goes through popupsIvan Molodetskikh
2025-01-21Implement shadows for layer surfacesIvan Molodetskikh
2025-01-18implement `keyboard-shortcuts-inhibit` and `wlr-virtual-pointer` (#630)sodiboo
* stub keyboard-shortcuts-inhibit and virtual-pointer impls * implement keyboard-shortcuts-inhibit * implement virtual-pointer * deal with supressed key release edge-case; add allow-inhibiting property * add toggle-keyboard-shortcuts-inhibit bind * add InputBackend extensions; use Device::output() for absolute pos events * add a `State` parameter to the backend exts and better document future intent * Add some tests for is_inhibiting_shortcuts --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-01-10Fix new Clippy warningsIvan Molodetskikh
2025-01-04Migrate to new Rectangle functionsIvan Molodetskikh
2025-01-03Clear on-demand layer-shell focus in more casesIvan Molodetskikh
2025-01-03Allow pop-up grabs for bottom and background layersIvan Molodetskikh
2025-01-02 skip keyboard focus for layer shell surfaces not...Christian Meissl
...requesting keyboard interactivity
2025-01-02xdg: do not focus unmapped popup on grabChristian Meissl
a grab is requested for an unmapped popup, delay focusing the popup until the first keyboard interaction
2024-12-30Implement default-window-height for scrolling windowsIvan Molodetskikh
2024-12-30Dump post-unfullscreen configure in snapshot testsIvan Molodetskikh
2024-12-30Disable double-resize-click for floating windowsIvan Molodetskikh
2024-12-30Implement buffer delta for toplevelsIvan Molodetskikh
2024-12-30Implement default-window-height window ruleIvan Molodetskikh
Only works for floats that aren't initially fullscreen atm.
2024-12-30floating: Support default-column-width in most casesIvan Molodetskikh
open-fullscreen + open-floating default width is still not supported in this commit.
2024-12-30Add open-focused window ruleIvan Molodetskikh
2024-12-30layout: Refactor window opening targetsIvan Molodetskikh
2024-12-30Implement floating child stacking above parentsIvan Molodetskikh
2024-12-30Initial WIP floating window implementationIvan Molodetskikh
2024-12-22Add test-only single-pixel-buffer supportIvan Molodetskikh
2024-12-11Activate monitors on session unlock (#858)Salman Farooq
So that e.g. unlocking by touching the fingerprint reader powers on the monitors. --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com> Co-authored-by: Salman Farooq <46742354+SalmanFarooqShiekh@users.noreply.github.com>
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-29Add strict-new-window-focus-policy debug flagIvan Molodetskikh
2024-11-29Activate newly mapped windows with a valid activation tokenChristian Meissl
most of the time the activation token is passed while the window is still unmapped. in this case store the intend to activate the window for later retrieval on map.
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-14Implement layer rules: opacity and block-out-fromIvan Molodetskikh
2024-11-12Add PID to Window IPCIvan Molodetskikh
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