This is very much incomplete, but it implements the import and export of surfaces. However functions related to setting and imported surface the parent of another surface is not done.
importer destructor destroys all imports made from the same client
Implement SetParentOf, no undoing yet
Add inner import type
Destroy child surface relationships when importing
A note
move init function upwards
use 0.29.0 crate
Move role string constants into the public
Use toplevel_like for surface checks in foreign
add methods to get the parent surface
Make sure ZXDG roles are public api
Consistent ordering of parameters on xdg_foreign impl methods
Let's update the changelog
Document how to use xdg_foreign
wl_shell_surface is likely invalid, so it cannot be imported or exported
Changelog suggestions
remove redundant inner ref cell
Remove all uses of the refcell like behavior
Allow compositor to export surfaces on server
Appease new clippy lints
then
Use string references and iterate in reverse to simplify removals
heed request for order
expose output from output map and return a reference
in find
change scale with keyboard shortcut
scale input coordinates and render location
according to output_scale
scale buffers during rendering
adapt window locations on output scale
change to that the location will appear
to be stable
scale udev pointer location on output scale
change to make the pointer location appear stable
Use a UserDataMap to store the udev output id
Short names for udev outputs for easier output
scale configuration
Add debug logging to egl via the `EGL_KHR_debug` extension similar to our
support for `GL_KHR_debug`. Sadly unlike the GL-extensions the EGL-extension
does not let us provide any user-data for the callback, so we fall back to
using `slog-stdlog`, when available.
Since we only want to initialize this once, when libEGL gets loaded and
not per display, but we need to query the list of supported extensions
first, some initialization steps where moved around.
The required surface attributes for egl surface creation might be very
dependent on the used egl platform. Therefor let the native surface type
handle the attributes instead of deriving them from a set of properties.