Commit graph

1016 commits

Author SHA1 Message Date
11f60acc94 merge: epoch-1.10.0 d'upstream
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 07:00:05 +02:00
Hojjat
9f746ea3ff fix: the logic for resize direction in tiling mode 2026-09-25 17:01:54 +02:00
51c6cfedf6 merge: epoch-1.9.0 d'upstream
# Conflicts:
#	Cargo.lock
2026-09-24 20:48:00 +02:00
Hojjat
58837e27b8 fix: send pointer leave to root menu if no sub menu is open 2026-09-24 15:47:37 +02:00
Hojjat
6645edff64 fix: clear sticky windows, or floating windows focus hint if focus moves 2026-09-24 15:47:22 +02:00
Hojjat
651f701f84 shell/focus: Don't dismiss grabbing popups of exclusive layer surfaces 2026-09-16 11:04:07 -06:00
Ian Douglas Scott
a7349b72e3 Add cosmic-session-lock-layer-v1 protocol
https://github.com/pop-os/cosmic-protocols/pull/88
2026-09-11 14:38:07 -06:00
Ian Douglas Scott
f9e02f4321 Add comments to functions that iterate over surfaces
These should be kept in sync with `render_input_order_internal`.
2026-09-11 14:38:07 -06:00
a69f659983 Merge tag 'epoch-1.8.0' into local/yoda-main
Epoch 1.8.0

# Conflicts:
#	Cargo.lock
2026-09-10 17:57:28 +02:00
haydonryan
f61c0f9f76 tabs: avoid two HashSet allocations in tab-change detection
Replace the symmetric_difference over two freshly-materialized HashSets
with direct contains_key lookups on the existing key sets. Semantically
identical (set difference non-empty iff any key is in exactly one set) but
removes two heap HashSet allocations plus hashing of every key on each
widget update. Also drops the now-unused HashSet import.

Implements compact-idiomatic-code-20 from the cosmic-comp optimization
report. Created with the help of DeepSeek V4 Flash.
2026-09-07 15:42:06 +02:00
Hojjat
0f56d214b9 chore: clippy fixes 2026-09-05 01:16:34 +02:00
Hojjat
e8caf335b3 refactor: align the corner radii order with the theme
It's [TL, TR, BR, BL] everywhere now
2026-09-04 13:43:40 +02:00
Victoria Brekenfeld
bd0b834128 element/stack: Use correct serial for tablet grabs 2026-09-03 21:00:11 +02:00
Victoria Brekenfeld
1c8a0070c0 element/stack: Handle touch (and tablet) inputs on tabs 2026-09-03 21:00:11 +02:00
Victoria Brekenfeld
2a3b4dca5f shell: fix client initiated tablet grabs 2026-09-03 21:00:11 +02:00
Victoria Brekenfeld
6bf75e1c10 shell: Handle Tablet grabs 2026-09-03 21:00:11 +02:00
Victoria Brekenfeld
bb95a57f5a move: Make sure to always unset tool grab 2026-09-03 21:00:11 +02:00
Victoria Brekenfeld
87d73dbce3 resize/tiling: Set cursor icons on tool input 2026-09-03 21:00:11 +02:00
Victoria Brekenfeld
f00ff834c9 resize/tiling: Fix location for tablet tools 2026-09-03 21:00:11 +02:00
Victoria Brekenfeld
b8824128a0 element: Add cursor shape and resize handling on tool input 2026-09-03 21:00:11 +02:00
Victoria Brekenfeld
e65f6608a4 element: Remove unnecessary grab variants 2026-09-03 21:00:11 +02:00
Victoria Brekenfeld
9125f8a2a7 input: Add pointer-emulation grab for tablet tools 2026-09-03 21:00:11 +02:00
Victoria Brekenfeld
6467f79025 shell: Add tablet grabs 2026-09-03 21:00:11 +02:00
RipleyTom
94178034dd feat: allow XWayland window to start minimized 2026-08-31 16:29:03 +02:00
af6d31f413 Merge tag 'epoch-1.7.0' into local/yoda-main
Epoch 1.7.0
2026-08-27 07:49:24 +02:00
Victoria Brekenfeld
5c93094574 chore: update smithay 2026-08-26 20:07:05 +02:00
Hojjat
31827ed240 improv: clear image_cache on refresh 2026-08-25 17:33:56 +02:00
Tom Grushka
738e0b3124 a11y: magnifier: change zoom stepping to multiplicative, bound max, add presets
1. Change magnifier zoom stepping from additive to multiplicative,
   because zoom is a ratio, not a difference, and human perception is
   logarithmic (browser zoom steps, map zoom levels, microscope powers).

2. Add `pub const ZoomConfig::ZOOM_INCREMENT_PRESETS` with two
   additional presets: 10% (macOS, Cinnamon) and 75% (for users at
   70-90x zoom).

3. Bound the zoom level to a generous maximum, beyond what anyone is expected
   to need, to prevent runaway / unrecoverable levels (#1230).

Full background and rationale at #2615.

I used AI to assist with research and issue writeup. Code is 100% mine.

- Closes #2615.
- Fixes #1239.
- Partially addresses #1230 and #1237.
2026-08-21 22:56:16 +02:00
Hojjat
f20de50e41 feat: shake cursor to find by magnifying the cursor 2026-08-21 00:39:02 +02:00
f60c573f4d Merge upstream/master (COSMIC 1.6) into local/yoda-main
32 commits amont, aucun conflit de code : seul le lockfile divergeait,
il est regenere. Les 9 commits yoda sont preserves, dont le patch des
onglets de piles suivant WindowControlsPosition.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-19 21:56:05 +02:00
b45d12edef stack tabs: follow WindowControlsPosition for the close button
The window stack tabs build their own Tab widget rather than using
libcosmic segmented_button, so they kept the close button on the right
even with macOS-style controls enabled.

Order the tab items from the configured position: close first when
Start, last when End, with the container alignment following.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-19 21:18:39 +02:00
Hojjat
f4ee52c46a Ei protocol support
- Use the configured keyboard layout, track ei seats to reconfigure their keyboards
- DBus interface
- Disambiguate input devices per backend instance
- Add support for `ei_keysym` and `ei_text`
- Act as input method for ei_text UTF-8 injection
- Create a region per output for abosolute pointer position
- Map ei region for touchscreen emulation
- Release pointer buttons and keys on removal
- Send modifiers to EI connections
2026-08-17 12:22:35 -07:00
Hojjat
58c018dd40 fix(shell): take presentation feedback from fullscreen surfaces 2026-07-31 13:42:00 -06:00
Victoria Brekenfeld
091583ac84 backend: Support wl-dmabuf v6 2026-07-29 22:08:23 +02:00
RipleyTom
5ce21fb4f3 fix: ensure X window focus on unmap/map 2026-07-27 21:38:26 +02:00
d1849f639b fix: resolve rebase conflicts and fix package name 2026-07-22 15:21:58 +02:00
ba1232cffc fix: absorb libcosmic theme-v2 API (private containers, text::Style, wgpu 28)
Leyoda 2026 – GPLv3
2026-07-22 15:02:24 +02:00
Ian Douglas Scott
270ba7bf80 image-copy: Update toplevel cursor position for cursor_follows_focus 2026-07-21 17:02:58 +02:00
Ian Douglas Scott
27956e6e00 Make cursor_geometry() return a CursorGeometry struct
A bit better than just a tuple.
2026-07-21 17:02:58 +02:00
RipleyTom
8955024bff Fix: improve edge pointer accuracy 2026-07-21 15:50:19 +02:00
Hojjat
aabf1cdc08 fix: flicker on wayland context menu pop up
fix
2026-07-21 12:59:20 +02:00
Victoria Brekenfeld
2d95d46a37 chore: formatting fixes 2026-07-16 19:43:10 +02:00
Victoria Brekenfeld
8ab946f10a chore: clippy fixes 2026-07-16 19:43:10 +02:00
Hojjat
2329cea5c9 fix: input to cropped tiled windows should be bound to the tile 2026-07-15 22:55:05 +02:00
Graham Walker
b8807a541f Fix detached active window hint 2026-07-15 13:16:28 -06:00
Victoria Brekenfeld
dec1ee8633 fixup: logic error 2026-07-14 18:16:50 -04:00
Victoria Brekenfeld
603c90b103 element/surface: Avoid scanning out translucent surfaces 2026-07-14 18:16:50 -04:00
Ilia Malanin
7a7c6b7fd4 fix: take into account pending maximized state when recalculating window geometry 2026-07-13 17:24:56 +02:00
Tom Grushka
0596cce40d remove redundant level condition; simplify level early return on ZoomMovement::Centered 2026-07-13 13:08:45 +02:00
Tom Grushka
4d14f5568f improve comments 2026-07-13 13:08:45 +02:00