aboutsummaryrefslogtreecommitdiff
path: root/src/handlers
AgeCommit message (Collapse)Author
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>
2024-09-30Update SmithayIvan Molodetskikh
2024-09-30handle role specific buffer offsetChristian Meissl
2024-09-10Give focus to on-demand layer surfaces on mapIvan Molodetskikh
2024-09-10Possibly fix some unsync subsurfaces not redrawing outputIvan Molodetskikh
2024-09-06Implement by-id window addressing in IPC and CLI, fix move-column-to-workspaceIvan Molodetskikh
This is a JSON-breaking change for the IPC actions that changed from unit variants to struct variants. Unfortunately, I couldn't find a way with serde to both preserve a single variant, and make it serialize to the old value when the new field is None. I don't think anyone is using these actions from JSON at the moment, so this breaking change is fine.
2024-09-03Use libdisplay-info for make/model/serial parsing, implement throughoutIvan Molodetskikh
2024-09-01Change MappedIt::get() to return u64Ivan Molodetskikh
2024-08-23Register deadline timer for closing transactionIvan Molodetskikh
2024-08-23Implement window close transactionIvan Molodetskikh
Mainly visible with disabled animations.
2024-08-22Implement resize transactionsIvan Molodetskikh
2024-08-22Handle dmabuf blocker separately in toplevel pre-commitIvan Molodetskikh
Will be needed for transactions.
2024-08-13Implement stub mutter-x11-interopIvan Molodetskikh
Allows xdp-gnome dialogs to work with X11 clients. Fixes https://github.com/YaLTeR/niri/issues/594
2024-08-08feat: update screencopy to version 3Michael Yang
2024-07-08bump smithayChristian Meissl
2024-07-06Implement on-demand layer-shell keyboard focusIvan Molodetskikh
2024-07-05Put Outputs config into a dedicated structIvan Molodetskikh
2024-07-05Implement wlr-output-management protocoltet
fix: wlr_output_management use WeakOutput
2024-06-28Implement initial window screencastingIvan Molodetskikh
2024-06-19Handle KDE decorations in Mapped::has_ssdKirill Chibisov
This fixes an issue with default CSD border being drawn for SSD rendering firefox, because only xdg decorations were checked.
2024-06-18Queue redraw after activation in xdg-activationIvan Molodetskikh
2024-06-18Remove unnecessary returnIvan Molodetskikh
2024-06-18Refactor layout to fractional-logicalIvan Molodetskikh
Lets borders, gaps, and everything else stay pixel-perfect even with fractional scale. Allows setting fractional border widths, gaps, struts. See the new wiki .md for more details.
2024-06-18Enable fractional scalingIvan Molodetskikh
2024-06-10Signal fractional scale to clientsIvan Molodetskikh
Doesn't do anything yet because we don't bind the fractional scale manager and don't allow fractional scales.
2024-06-10Implement xdg_activation_v1Peter Collingbourne
Fixes #30.
2024-06-09Fix typos (#429)Ujp8LfXBJ6wCPR
* Fix typos reported by "typos" crate https://github.com/crate-ci/typos * Ignore typo datas -> data See https://github.com/crate-ci/typos?tab=readme-ov-file#false-positives for more configureability. --------- Co-authored-by: Carl Hjerpe <git@hjerpe.xyz> Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2024-05-20Fix no outputs case handling in a few placesIvan Molodetskikh
2024-05-17Redraw on lock surface children commitsIvan Molodetskikh
2024-05-16Update Smithay and other depsIvan Molodetskikh
2024-05-16Implement at-startup window ruleIvan Molodetskikh
2024-05-16Implement named workspacesGergely Nagy
This is an implementation of named, pre-declared workspaces. With this implementation, workspaces can be declared in the configuration file by name: ``` workspace "name" { open-on-output "winit" } ``` The `open-on-output` property is optional, and can be skipped, in which case the workspace will open on the primary output. All actions that were able to target a workspace by index can now target them by either an index, or a name. In case of the command line, where we do not have types available, this means that workspace names that also pass as `u8` cannot be switched to by name, only by index. Unlike dynamic workspaces, named workspaces do not close when they are empty, they remain static. Like dynamic workspaces, named workspaces are bound to a particular output. Switching to a named workspace, or moving a window or column to one will also switch to, or move the thing in question to the output of the workspace. When reloading the configuration, newly added named workspaces will be created, and removed ones will lose their name. If any such orphaned workspace was empty, they will be removed. If they weren't, they'll remain as a dynamic workspace, without a name. Re-declaring a workspace with the same name later will create a new one. Additionally, this also implements a `open-on-workspace "<name>"` window rule. Matching windows will open on the given workspace (or the current one, if the named workspace does not exist). Signed-off-by: Gergely Nagy <niri@gergo.csillger.hu>
2024-05-15Clarify surface destroyed commentIvan Molodetskikh
2024-05-15Use correct function name in commentIvan Molodetskikh
2024-05-15Clear fd flags before sending selectionIvan Molodetskikh