Commit Graph

1536 Commits

Author SHA1 Message Date
Ivan Molodetskikh 880386e563 render_helpers/resize: Fix logic to allow for partially-filled texture
"texture geo" defines offset and src size, rather than the full texture size.
2025-03-10 07:59:14 +03:00
Ivan Molodetskikh 266c6c3878 offscreen: Don't recreate if size decreased 2025-03-10 07:59:14 +03:00
Ivan Molodetskikh 7b033aa7c6 offscreen: Track and return damage
This is the second part of the damage equation: now the offscreen element
itself reports correct damage, so partial redraws to the texture don't cause
full redraws of the texture element itself.
2025-03-10 07:59:14 +03:00
Ivan Molodetskikh efd8372b20 offscreen: Take damage into account when rendering
Does not yet signal the damage outside, but does skip rerendering if there was
no damage.
2025-03-10 07:59:14 +03:00
Ivan Molodetskikh 74a30be10b Cache texture in OpenAnimation
Don't recreate it unless the size changes. This lays the groundwork for also
tracking damage in the future.
2025-03-10 07:59:14 +03:00
Ivan Molodetskikh 1c521e4831 Update Smithay (Framebuffer type) 2025-03-10 07:59:14 +03:00
Jon Heinritz eda43b2b93 doc: fix wrongly formatted link that rustdoc kept complaining about 2025-03-09 04:24:24 -07:00
Ivan Molodetskikh 9f205d465c mapped: Omit popups from animation snapshot
It's used only for resizes, and those render popups on top.
2025-03-02 10:01:52 +03:00
Alex David d6e736aaf0 Allow disabling tap-and-drag (#1107)
* Allow disabling tap-and-drag

Similar to https://github.com/YaLTeR/niri/pull/1088, this adds a new
touchpad `drag` configuration option that configures tap-and-drag
behavior.

Currently tap-and-drag is always enabled when the `tap` setting is
enabled, but other compositors allow setting this separately.

* Update wiki/Configuration:-Input.md

---------

Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-03-02 10:01:34 +03:00
Martino Ferrari 36b28d9b96 Added top, left, bottom and right floating windows alignement (#1169)
* feat: added top, left, bottom, right alignement options

* feat: implemented extra alignement

* feat: added example

* doc: updated documentation with extra alignements

* doc: moved example in wiki and typo correction

* fix: relative position should be positive and not negative

* fixes

---------

Co-authored-by: Martino Ferrari <martinogiordano.ferrari@iter.org>
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-03-01 17:46:27 +00:00
Ivan Molodetskikh 70dcd229cf Extract encompassing_geo() 2025-02-27 10:38:36 +03:00
Ivan Molodetskikh 26fe4a489a render_helpers: Use upscale(-1) 2025-02-27 09:54:26 +03:00
Ivan Molodetskikh 2363cf48e7 layout/monitor: Remove unused function 2025-02-27 08:21:05 +03:00
Ivan Molodetskikh 848294c09b layout/monitor: Remove redundant passthrough functions 2025-02-27 08:21:05 +03:00
Ivan Molodetskikh 693d935538 Add honor-xdg-activation-with-invalid-serial debug flag 2025-02-26 19:33:58 +03:00
bbb651 🇮🇱 16405b9b2b Implement niri msg pick-window
* feat: `niri msg pick-window`

* fixes

---------

Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
2025-02-26 15:22:27 +03:00
Ivan Molodetskikh 4719cc6d59 cursor: Extract get_render_cursor_named() 2025-02-26 15:10:18 +03:00
nnyyxxxx 1bdded7a44 feat(input): add off option to touch device 2025-02-26 03:32:21 -08:00
Ivan Molodetskikh 5b6b5536fd Also check pointer for activation token validity
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-24 22:34:30 +03:00
Ivan Molodetskikh dca187de37 Don't snap after DnD scroll if view position didn't change
Otherwise, any DnD breaks temporarily centered columns.
2025-02-18 19:06:40 +03:00
Ivan Molodetskikh fe660a253b Don't activate window when pressing the Mod+MMB view gesture
Avoid unnecessary movement.
2025-02-18 19:06:40 +03:00
Ivan Molodetskikh 44c9797844 Take tab indicators into account in expand-column-to-available-width 2025-02-17 22:36:30 +03:00
Ivan Molodetskikh 652d2923bb Use toggle_full_width() for expand-column-to-available-width edge case 2025-02-17 21:57:35 +03:00
Ivan Molodetskikh 85349ce475 Fix expand-column-to-available-width for always-center 2025-02-17 21:48:00 +03:00
Ivan Molodetskikh 92cc2b89f7 Implement expand-column-to-available-width 2025-02-17 21:30:23 +03:00
Ivan Molodetskikh d27d6a504d Make idle notify lazy 2025-02-17 09:09:59 +03:00
Ivan Molodetskikh ec5144feca Make pointer inactivity timer reset lazy 2025-02-17 09:04:07 +03:00
Ivan Molodetskikh 108e88e211 Enable fancy miette errors for the main binary
Seems there's not much dependency/binary size impact now, compared to when I
first made the KDL config.
2025-02-16 19:37:37 +03:00
Ivan Molodetskikh a693f64c41 Add blank line 2025-02-16 10:26:59 +03:00
Ivan Molodetskikh f2b1fc66f2 Make DnD edge view scroll configurable 2025-02-16 10:18:00 +03:00
Ivan Molodetskikh c6e98d5a96 Add a small delay to DnD view scrolling 2025-02-16 10:18:00 +03:00
Ivan Molodetskikh d077350ae4 layout: Remove unused method 2025-02-16 10:18:00 +03:00
Ivan Molodetskikh ca1500ae90 Implement scrolling the view during DnD
DnD is external to the layout, so we just inform it when one is ongoing.
2025-02-15 13:28:57 +03:00
Ivan Molodetskikh d7f3ca00c7 Implement scrolling the view during interactive move 2025-02-15 13:28:57 +03:00
Ivan Molodetskikh fd8140e091 Hook up are_transitions_ongoing() for floating and tiles
Don't spoil it
2025-02-15 13:28:57 +03:00
Ivan Molodetskikh d94fbe9895 layout: Check move output in are_animations_ongoing() 2025-02-15 13:28:57 +03:00
Ivan Molodetskikh 7816f20e6a Implement ext-data-control 2025-02-14 09:03:20 +03:00
Ivan Molodetskikh 0d3610416c Update Smithay (idle-notify 2) 2025-02-14 09:03:20 +03:00
Ivan Chinenov 9e794f358b feat: support for setting tablet calibration matrix; this allows for rotating tablet inputs (#1122)
* feat: support for setting tablet calibration matrix

* Change default matrix
2025-02-14 05:15:45 +00:00
rustN00b 4c98b87486 Add missing period to doc comment 2025-02-13 10:39:25 +03:00
Ivan Molodetskikh a605e7f622 Implement custom hotkey overlay titles 2025-02-13 10:30:33 +03:00
Ivan Molodetskikh 513488f6b8 hotkey overlay: Add pretty for space 2025-02-13 10:30:33 +03:00
Ivan Molodetskikh 43ea4a172a hotkey overlay: Put Ctrl and Shift before Alt
They are commonly written this way.
2025-02-13 10:30:33 +03:00
Ivan Molodetskikh d47b59879a animation/spring: Add a check for from = to in duration()
The overdamped code below was dividing by zero in this case and triggering a
panic.
2025-02-13 08:47:23 +03:00
Ivan Molodetskikh ef80bcc834 Parse the config on the file watcher thread
It takes a while, so let's not block the main thread.
2025-02-12 20:56:32 +03:00
Ivan Molodetskikh eb8bd3894a watcher: Allow running a processing function on the thread 2025-02-12 20:56:32 +03:00
Ivan Molodetskikh 7e552333a9 tab indicator: Add corner-radius setting 2025-02-12 07:59:46 +03:00
Ivan Molodetskikh 7b18ff8870 input: Intercept Enter key when confirming the exit dialog 2025-02-11 13:22:11 +03:00
Ivan Molodetskikh 29b7a41692 Implement is-window-cast-target window rule matcher 2025-02-11 10:31:12 +03:00
Ivan Molodetskikh 20769b4c2f tab indicator: Animate opening 2025-02-10 07:29:33 -08:00