-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
subsurface_widget
fixes
#189
Conversation
I guess drag surfaces are currently rendered offscreen, and passed to The But really |
This type is an `Arc`, so there's no major benefit to using a reference, or a `Cow` to make it generic. Drag surfaces currently require a `'static` `Element`, so this is needed their.
Otherwise the `draw` call in response to `AboutToWait` causes this list to grow, and eventually hit errors in `sendmsg` due to too many buffered file descriptors from creating subsurfaces. Probably the number of places `UserInterface::draw` are called should be cleaned up. And it shouldn't be called in `AboutToWiat` like this. Some improvements could probably be made in upstream iced.
This was previously needed, but should be redundant now that an empty input region is set for the subsurface. With that, the subsurface should never get input events, so mapping them isn't needed.
This argument was completely ignored by the wgpu renderer, and used only for the `clip_mask` by the `tiny_skia` renderer. I believe creating a new clip mask is correct. This way it's possible to render offscreen without needing a surface.
`.create_surface()` actually created another wgpu surface for the parent surface. Which ends up calling `vkCreateSwapchainKHR`. Looks like that technically should have errored with `VK_ERROR_NATIVE_WINDOW_IN_USE_KHR`, but Mesa doesn't produce that error in every case where it should: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7467.
This is potentially useful. Other properties are specific to shm/dmabuf, and not meaningful in general.
In an earlier version, this took a `WlBuffer`, so the width/height arguments were needed. But since using the same `wl_buffer` multiple times conflicted with `release` handling we instead accept `SubsurfaceBuffer`, which stores the same height/width.
Fixes for issues I see in cosmic-workspaces, when trying to update to latest iced rebase.
Still not working for subsurfaces of drag surfaces...