Created the Copy, Paste and CutVirtualKeyCodes and added support for them on X11 and Wayland
Fix .with_decorations(false) in macOS
On Mac, NSWindow and supporting objects might be alive long after they were closed which resulted in apps consuming more heap then needed. Mainly it was affecting multi window applications. Not expecting any user visible change of behaviour after the fix.
Fix regression of Window platform extensions for macOS where NSFullSizeContentViewWindowMask was not being correctly applied to .fullsize_content_view.
Corrected get_position on Windows to be relative to the screen rather than to the taskbar.
Corrected Moved event on Windows to use position values equivalent to those returned by get_position. It previously supplied client area positions instead of window positions, and would additionally interpret negative values as being very large (around u16::MAX).
Implemented Moved event on macOS.
On X11, the Moved event correctly use window positions rather than client area positions. Additionally, a stray Moved that unconditionally accompanied Resized with the client area position relative to the parent has been eliminated; Moved is still received alongside Resized, but now only once and always correctly.
On Windows, implemented all variants of DeviceEvent other than Text. Mouse DeviceEvents are now received even if the window isn’t in the foreground.
DeviceId on Windows is no longer a unit struct, and now contains a u32. For WindowEvents, this will always be 0, but on DeviceEvents it will be the handle to that device. DeviceIdExt::get_persistent_identifier can be used to acquire a unique identifier for that device that persists across replugs/reboots/etc.
Corrected run_forever on X11 to stop discarding Awakened events.
Various safety and correctness improvements to the X11 backend internals.
Fixed memory leak on X11 every time the mouse entered the window.
On X11, drag and drop now works reliably in release mode.
Added WindowBuilderExt::with_resize_increments and WindowBuilderExt::with_base_size to X11, allowing for more optional hints to be set.
Added WindowBuilder::with_window_icon and Window::set_window_icon, finally making it possible to set the window icon on Windows and X11. The icon_loading feature can be enabled to allow for icons to be easily loaded; see example program window_icon.rs for usage.
Windows additionally has WindowBuilderExt::with_taskbar_icon and WindowExt::set_taskbar_icon.
On Windows, fix panic when trying to call set_fullscreen(None) on a window that has not been fullscreened prior.