Commit graph

1362 commits

Author SHA1 Message Date
Ian Douglas Scott
c9f740210f toplevel-info: Send initial state even if empty
This is imported given how
https://github.com/pop-os/cosmic-protocols/pull/39 uses this event.

But the protocol spec also states the event "is emitted on creation" so
this is seemingly incorrect regardless.
2025-01-08 00:49:02 +01:00
Victoria Brekenfeld
addcbc5039 kms: Don't try to restore modifiers, if we don't have any surfaces 2025-01-07 17:48:14 +01:00
Victoria Brekenfeld
ff22b98ec7 output_configuration: Better log errors 2025-01-07 17:48:06 +01:00
Ian Douglas Scott
7f69244e07 Use Mul impl of Size 2025-01-07 12:50:35 +01:00
Ian Douglas Scott
b685512127 Migrate away from Rectangle::from_loc_and_size
Deprecated in `smithay` by https://github.com/Smithay/smithay/pull/1621.
2025-01-07 12:50:35 +01:00
Ian Douglas Scott
9074447c4f chore: Update smithay 2025-01-07 12:50:35 +01:00
Victoria Brekenfeld
42af2af37d render: Fix race during startup 2025-01-07 12:09:42 +01:00
Victoria Brekenfeld
578c77cb69 chore: github-ci was also missing pixman apparently 2025-01-06 20:23:05 +01:00
Victoria Brekenfeld
c07d115d2b chore: Add libdisplay-info to github ci 2025-01-06 20:23:05 +01:00
Victoria Brekenfeld
870e5be2a6 kms: Use scaled sizes for placing new outputs 2025-01-06 20:23:05 +01:00
Victoria Brekenfeld
bebd7c5c40 kms: Cleanup now that output_elements won't panic for uninitialized outputs 2025-01-06 20:23:05 +01:00
Victoria Brekenfeld
db13eea91c shell: Allow active workspace to be None 2025-01-06 20:23:05 +01:00
Victoria Brekenfeld
23570ea9f4 chore: Add libdisplay-info dependency for packaging 2025-01-06 20:23:05 +01:00
Victoria Brekenfeld
3926aee5b6 debug: Fixup feature compilation 2025-01-06 20:23:05 +01:00
Victoria Brekenfeld
6be5009b37 kms: Allow diverging primary plane formats under certain conditions 2025-01-06 20:23:05 +01:00
Victoria Brekenfeld
b5cd62fd7a kms: skip cursor updates for fullscreen content above the minimum refresh rate 2025-01-06 20:23:05 +01:00
Victoria Brekenfeld
adcb81bbe0 deps: Switch from edid-rs to libdisplay-info 2025-01-06 20:23:05 +01:00
Victoria Brekenfeld
546966bf15 drm_lease: Disable overlay planes when active 2025-01-06 20:23:05 +01:00
Victoria Brekenfeld
8b87d6524e kms: Use new DrmOutput api 2025-01-06 20:23:05 +01:00
Victoria Brekenfeld
e356e3c589 xdg_activation: Also consider tiled windows 2025-01-06 20:23:05 +01:00
Victoria Brekenfeld
61b0dddf50 chore: Fix a few warnings 2025-01-06 20:23:05 +01:00
Victoria Brekenfeld
f12f4db0e1 chore: Update smithay 2025-01-06 20:23:05 +01:00
Paul Daniel Faria
e5263bbad8 Update leds when devices are added
This fixes #1104

LEDs on keyboard will now update to match the
compositor state when they're plugged in.
2025-01-06 12:13:51 +01:00
David Brochero
68b6156aa8
Fix sticky toggle crashes on maximized windows (#1110) 2025-01-06 12:10:49 +01:00
Yureka
9b78a2d780 refactor(shell/element): refactor how decorations height is accessed
This fixes several things:
- The xwayland code previously incorrectly used the SSD_HEIGHT (for Windows) even when the X11 surface was in a stack
- The SSD_HEIGHT was defined in surface.rs, even though rendering serverside decorations is done in the window/stack

Rename (min|max)_size to (min|max)_size_without_ssd in CosmicSurface and make it act accordingly
Add a new (min|max)_size() in CosmicWindow and CosmicStack, which takes the surface's (min|max)_size and adds the decorations.
Change all callers to use (min|max)_size() from the window or stack respectively, except is_dialog() where it does not matter.
2024-12-28 15:32:03 +01:00
Ian Douglas Scott
1118aa2877 When removing output global, use disable_global, remove with timer
This should fix an issue where output hotplug can sometimes cause
clients (including XWayland) to crash with a protocol error trying to
bind the output.

Using a timer doesn't seem ideal, but seems to be the correct way to do
this at present. Wlroots `wlr_global_destroy_safe` is basically the same
as this.

Adding a `LoopHandle` argument to `OutputConfigurationState::new` seems
awkward, but maybe better than a handler method for removing globals.
(`IdleNotifierState::new` also takes a `LoopHandle`). Perhaps Smithay
could provide some kind of helper for this.
2024-12-19 00:17:38 +01:00
Victoria Brekenfeld
7ac204ee79 focus: Fix active/focused output on refresh_focus
Previously removing the last output could have left seats with an
invalid active output. We already have logic to check this in
`refresh_focus` but failed to apply it before `update_pointer_focus`.
Let's fix that.
2024-12-16 20:14:37 +01:00
Victoria Brekenfeld
f2e53f09c9 shell: Fix stacking maximized windows 2024-12-16 17:29:56 +01:00
Ian Douglas Scott
6707c92522 toplevel-info: Fix behavior with multiple instances of global
Instead of looking for toplevel handles for the client, look for
toplevel handles for the specific global instance.
2024-12-14 09:32:11 +01:00
Victoria Brekenfeld
2e1f6a4746 shell: Unset focused outputs on remove_output 2024-12-13 16:23:30 +01:00
Victoria Brekenfeld
9b4127555e kms/surface: Fix racy output disable 2024-12-12 14:29:50 +01:00
Ashley Wulber
5b89ad27fb fix: manually scale the damage 2024-12-12 07:53:58 +01:00
Ashley Wulber
3132767a60 fix: improve damage tracking 2024-12-12 07:53:58 +01:00
Ashley Wulber
892c05f4fc fix(iced): use internal_ref size 2024-12-12 07:53:58 +01:00
Ashley Wulber
6c8325856f chore: update deps 2024-12-11 18:28:17 +01:00
Ashley Wulber
5f650e7d08 feat: alt+shift+tab 2024-12-11 18:28:17 +01:00
Vukašin Vojinović
7de52054ff chore: update iced/libcosmic 2024-12-11 16:58:16 +01:00
Ian Douglas Scott
0d0b89d538 Call data_init.init even if weak references are not alive 2024-12-11 10:58:42 +01:00
Ian Douglas Scott
16a1214207 output_configuration: Use unwrap in calls to Resource::data
Having if conditions for these is unnecessary when they should never be
reached. (This is commonly unwrapped in `smithay`.)

Some of these else conditions fail to call `data_init.init` with a new
id, so they'd result in a crash later anyway.
2024-12-11 10:58:42 +01:00
Ian Douglas Scott
fdfc5cbeb4 Use WeakOutput when accessing data of ZwlrOutputHeadV1
It seems cd9ff0b7bb broke mirroring.
Though it's also a bug that if any of these if conditions is not met,
the data will not be initialized.

Fixes https://github.com/pop-os/cosmic-epoch/issues/1341.
2024-12-11 10:58:42 +01:00
Ashley Wulber
2c01c94477 fix: activation of an element outside the current workspace
If the activated element is outside the current workspace, its workspace should be set to urgent
2024-12-10 17:37:01 +01:00
Michal Rostecki
9b50d0f506 main: Update D-Bus activation environment also on non-systemd systems
On systems without systemd, use zbus to update D-Bus activation
environment with `WAYLAND_DISPLAY` and `DISPLAY` variables.

Fixes #1037
2024-12-09 16:33:15 +01:00
Victoria Brekenfeld
7829e7696d focus: Only consider focused output 2024-12-05 18:37:09 +01:00
Victoria Brekenfeld
fce52cb6a2 focus: Un-activate non-active workspaces 2024-12-05 18:37:09 +01:00
Ashley Wulber
76863aaf9b fix: filter by active workspace in overlap notify 2024-12-05 18:20:10 +01:00
Victoria Brekenfeld
fc84fa9948 shell: Fix windows global geometry to include ssd 2024-12-05 18:20:10 +01:00
Ian Douglas Scott
e3b41c5c55 input: Apply output transform to touch/tablet events 2024-12-02 19:50:05 +01:00
Ian Douglas Scott
eaeca9a244 input: Define function for transforming touch/tablet event position 2024-12-02 19:50:05 +01:00
Alyssa Ross
69d251fb74 screencopy: don't force opaque window backgrounds
This meant that, for windows that were not fully opaque, there was no
way to capture their transparency.  No way to put a window with
transparency on top of a background in OBS, for example.
2024-12-02 18:02:48 +01:00
Ashley Wulber
a14d075aa0 refactor: add namespace 2024-11-27 17:23:14 +01:00