Commit graph

157 commits

Author SHA1 Message Date
Ian Douglas Scott
ccef25c40c Use subscription for cosmic-bg-config
Works, as long as a `config_state_subscription` is used.

Should also try caching image handles.
2024-05-02 08:05:51 -07:00
Ian Douglas Scott
6cca5476ab User hover style for drop target 2024-05-02 08:05:51 -07:00
Ian Douglas Scott
b635c10837 Add offset logic, commented
With large drag surfaces, and no tranparency, this seems a bit akward
when not dragging from near top left. May be better with cursor
indicator.
2024-05-02 08:05:51 -07:00
Ian Douglas Scott
07f7b8f5bd Fix toplevel activation
`new_seat()` is only called when a seat is added after creation of
`SeatState`.
2024-05-01 10:12:00 -07:00
Ian Douglas Scott
249c62ee0a Update libcosmic/iced 2024-04-30 16:25:50 -07:00
Ian Douglas Scott
d759e1d7c2 Use cosmic_bg_config to get background
Scaling doesn't match `cosmic-bg`?
2024-04-30 12:49:08 -07:00
Ian Douglas Scott
bf6acc3f5f Destroy image_source after using it 2024-04-26 15:38:20 -07:00
Ian Douglas Scott
96cca005b7 Rename inaccurately named widget 2024-04-25 14:17:43 -07:00
Ian Douglas Scott
8f571e9e25 Use custom style for workspace items
None of the default styles seem to work quite right here.
2024-04-25 14:10:09 -07:00
Ian Douglas Scott
7997d58ce7 Fix clippy lints 2024-04-24 13:51:20 -07:00
Ian Douglas Scott
3dd5a28e28 backend/mock: fill buffer more efficiently 2024-04-24 13:04:23 -07:00
Ian Douglas Scott
ee1d54a12b Format imports 2024-04-24 13:00:40 -07:00
Ian Douglas Scott
76daf6e980 Update libcosmic/iced for drag-and-drop fixes 2024-04-24 12:46:57 -07:00
Ian Douglas Scott
ef12588615 mock: Use Format::Argb8888
Allows running on KDE, to compare how another compositor implementation.
2024-04-23 17:25:15 -07:00
Ian Douglas Scott
a6548057b6 Don't hide toplevel until drag is started
Seems to fix behavior on Sway, but on Smithay still destroys the drag
grab once the surface that started it is gone.
2024-04-23 17:23:57 -07:00
Ian Douglas Scott
c75a48535a Add a mock backend for testing (including on other compositors)
Should help determine which issues are cosmic-comp bugs.
2024-04-23 13:44:59 -07:00
Ian Douglas Scott
170e102275 Use Cmd instead of sending more wayland objects to frontend
This isn't needed now that the workspaces view is persistent (before, it
was necessary to make sure activation requests are flushed before
closing).

This is easier to spoof, for testing.
2024-04-23 11:54:05 -07:00
Ian Douglas Scott
8365efb30d Fix VisibilityWrapper widget
I believe this fixes how the widget works, though it's hard to tell
since the behavior was inconsistent.

There are still issues related to drag-and-drop in cosmic-comp or
`iced_sctk`, which need to be fixed to get things working fully.
2024-04-22 10:16:41 -07:00
Ian Douglas Scott
6f45933971 Fix various warnings 2024-04-19 15:44:55 -07:00
Ian Douglas Scott
09e03cd096 Hide toplevel from toplevel list when it is being dragged
Uses a custom wrapper widget, that makes `draw` do nothing when visible
is set to false.

This works well sometimes, but can cause weird bugs...
2024-04-19 15:28:16 -07:00
Ian Douglas Scott
b011ecd615 Use single-threaded async executor 2024-04-19 10:54:42 -07:00
Ian Douglas Scott
888b1c542d Don't use dGPU for rendering on dual-graphics systems
Apparently the `antialiasing` flag determines this.
2024-04-09 15:35:09 -07:00
Ian Douglas Scott
bf2cd273f9 Add a no-subsurfaces feature for debugging 2024-04-01 15:13:51 -07:00
Ian Douglas Scott
1fc416bb2e Add force-shm-screencopy feature for debugging 2024-04-01 14:44:29 -07:00
Ian Douglas Scott
a2493fc90e Fix creation of shm buffers 2024-04-01 14:09:15 -07:00
Ian Douglas Scott
62c9f986ba screencopy: Include error in error log 2024-03-28 15:15:32 -07:00
Ian Douglas Scott
094c28e105 cosmic-screencopy-v2 2024-03-25 10:24:47 -07:00
Ian Douglas Scott
b554dc3177 Fix / work around issue with drag surface not being destroyed 2024-03-06 16:09:58 -08:00
Ian Douglas Scott
5e290acbee Use log instead of println! 2024-03-06 14:05:32 -08:00
Ian Douglas Scott
7106001179 Address various warnings 2024-03-05 12:25:20 -08:00
Ian Douglas Scott
ea0de44e42 Remove workspace close button for now 2024-03-05 12:07:38 -08:00
Ian Douglas Scott
78b7bfe957 Use Wayland subsurfaces, dmabuf screencopy
More efficient than shm screencopy, and rendering an iced image into the
window. Done right, should espeically help with multiple GPUs, but more
testing and work is needed there.

Removes mmapping of dmabuf, which errored... I guess not allocated with
right options for that. Relevant only if we want a fallback/test that
involves reading dmabufs.

Using `OnDamage` doesn't seem to work correctly currently. Likely a
compositor issue.
2024-03-01 14:35:19 -08:00
Ian Douglas Scott
1bfcd50383 Update calloop, libcosmic, etc. 2024-03-01 13:07:37 -08:00
Ian Douglas Scott
0dd3abf62c widgets/image_bg: Use layer in rendering
Fixes behavior with wgpu. It seemed to work with software renderer.
2024-02-29 15:51:55 -08:00
Ian Douglas Scott
fb7840d295 Let gbm choose preferred modifier 2024-02-12 15:13:28 -08:00
Ian Douglas Scott
66fcf19ccc Run cargo update, and remove use of WorkspaceAmount
`WorkspaceAmount` has been removed from cosmic-comp for now.
2024-02-07 19:52:33 -08:00
Ian Douglas Scott
015f61922b Update libcosmic 2024-02-06 13:32:29 -08:00
Ian Douglas Scott
6e9119a988 Seperate node from BufferBacking
Should help for moving from `BufferBacking` to types provide by
iced-sctk.
2024-01-26 14:37:18 -08:00
Ian Douglas Scott
a90a3a16b2 Simplify buffer creation code 2024-01-26 14:30:23 -08:00
Ian Douglas Scott
d869a29be7 Have .mmap member for Buffer for both shm and dmabuf 2024-01-26 14:23:04 -08:00
Ian Douglas Scott
2164c1ea5a Create shm buffer directly instead of using RawPool
Currently needed if we want an fd to pass to iced-sctk for subsurfaces.
Rather than a wl_buffer.

It would be good if this logic and the dmabuf type could be shared in
some crate.
2024-01-26 14:13:58 -08:00
Ian Douglas Scott
d50c1f13f6 Fix subtract overflow 2024-01-26 13:04:58 -08:00
Ian Douglas Scott
2b3773c88e Handle gbm::Modifier::Invalid 2024-01-25 18:35:25 -08:00
Ian Douglas Scott
01a64b11fa Add scheduler for async in wayland thread 2024-01-25 17:06:28 -08:00
Ian Douglas Scott
7ae2dc9e06 Fix reference to back buffer 2024-01-25 16:21:21 -08:00
Ian Douglas Scott
9faaa4d6c8 Use array instead of tuple for screencopy swapchain
Can switch to triple buffering by changing one character.
2024-01-25 16:16:26 -08:00
Ian Douglas Scott
6e422b740c Call attach_buffer_and_commit before reading front buffer
This way double buffering is somewhat useful; we can start another
capture before reading out the buffer.
2024-01-25 16:00:37 -08:00
Ian Douglas Scott
89910b8e75 Use double-buffering for screencopy
Currently this is unnecesssary, but it's needed if we use subsurfaces
(or import) instead of immedaitely converting to an image.
2024-01-25 15:58:34 -08:00
Ian Douglas Scott
6262329635 Clean up some of the screencopy code 2024-01-25 15:48:40 -08:00
Ian Douglas Scott
13b565e013 Add a ScreencopySession type
Allows cleaning up some of the relationship between `screencopy.rs` and
`capture.rs`, and groups variables that go together and are set to `Some`/`None`
together.

Should help for adding double buffering.
2024-01-25 15:44:30 -08:00