aboutsummaryrefslogtreecommitdiff
path: root/src/handlers
AgeCommit message (Collapse)Author
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
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-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-02Replace current_state() with with_toplevel_role()Ivan Molodetskikh
Avoid microallocations that happen in current_state().
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-10layout: Replace move_window_to_output with move_to_outputIvan Molodetskikh
2024-10-10layout: Reduce field visibilityIvan Molodetskikh
The outside code isn't supposed to mess with the fields.
2024-10-06implement locked cursor position hints (#685)sodiboo
* implement cursor position hints * Remove redundant fully qualified path * Find root surface * Convert nesting to if-return * Manually wrap error messages * Remove error!() prints * Add queue redraw --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>