- Complete refactor of the library to integrate a pure rust implementation of the protocol,
controlled by the
native_lib
switch cargo feature
- [scanner] Fixed
*mut_
typo when generating code for nullable array arguments - [protocols] Integrate
xdg-decoration
protocol to replace KDE's decoration protocol. - [client]
Proxy
now implementsPartialEq
andEq
- [server]
Resource
now implementsPartialEq
andEq
- [client] Fix regression from previous release where
Display
was no longerSend
andSync
.
- [client] Allow the creation of a
Display
from a foreignwl_display
- [protocols] Expose generated C interfaces for protocol interop
- [protocols] Update wayland-protocols to 1.14
- [client/server] Use
Clone
trait rather than inherent method forclone()
. - [client] GlobalManager is now
Clone
.
- [client/server] Bugfix: Actually destroy the proxy/resource when sending a destructor message.
- [client] Expose
ConnectError
which should have been public from start.
- [client] Fix a typo in the name of
instantiate_*
methods ofGlobalManager
. Old names are kept for backward compatibility but marked as deprecated.
- [client] Check availability of library in
Display::connect_to_env
- [protocols] Tweak cargo features to avoid always pulling both wayland-client and wayland-server.
- [server] Add methods for manual client management
- [server] Add a workaround in
Resource
definition to avoid rust-lang/rust#50153
- Breaking Complete rework of the libraries, basically everything is changed.
- [scanner] All objects are implementable (except display), as it is required to properly setup destructors.
- Breaking [server] Return the implementation data when the creation of an event source fails
- [server] Add
with_idata
to event sources to access idata without removing the event source - Breaking [server] Move common event source functions into new
EventSource
trait
- [sys] Update lazy_static dependency to 1.0
- [protocols] Add KDE's server decoration protocol
- [server] Add a
ptr()
method toDisplay
for ffi purpose
- [protocols] XDG Shell is now stable
- [server] Move
register_global
toEventLoopHandle
- [server] Add idle event sources
- [sys] More robust loading of wayland-egl and wayland-cursor (failed on ubuntu 17.04)
- [protocols] Rework internal structure to reflect versionning of unstable protocols (breaking change for unstable protocols)
- [protocols] Add the wayland-wall protocol collection.
- [client] No longer auto-close the connexion on
WlDisplay
drop (this was unsafe)
- [scanner] Bugfix: properly destroy implementation data when a destructor method is called.
- [server] Bugfix: don't destroy ID of Timer and Signal event sources on drop
- [server] Event sources now return their ID on
destroy()
- [scanner] Update xml-rs dependency to 0.7
- [client] Add
EnvHandler::clone_inner()
- [client] Fields of
EnvNotify
were mistakenly private.
- [client] Add
EnvHandler::init_with_notify()
to still be notified about global events when usingEnvHandler
. - [client/server] Externalise state logic to crate
token_store
- Breaking change: Update bitflags dependency to 1.0. Generated code for protocols will now have bitflags values as associated constants to these bitflags structs.
- [server] Update nix dependency to 0.9
- [server] Add
Resource::same_client_as(..)
for checking if two resources are from the same client.
- [server] Correct some forgotten stuff in the previous release
- Breaking change: large rework of the event loops / event queues to a new architecture separating logic from data, helping data-sharing between different implementations in a same event loop/queue.
- Breaking change: event loops / event queues are no longer
Send
, and as such can accept non-Send
data. It is still possible to directly create them in different threads, as theWlDisplay
isSync
.
- [sys] Print debug msg only when the
WAYLAND_RS_DEBUG
env variable is set - [client/server] Allow removal of handlers from event queues or event loops
- [server] Fix wrong logic in FD event source causing spurious errors
- [sys] Also try to load libwayland-client.so.0 and libwayland-server.so.0
- [scanner] Normalize whitespaces in doc summary (fixes wayland-protocols 0.9.8)
- The
declare_handler!(..)
macros can now handle generic types with trait bounds - [sys] Implement the
wl_signal_*
functions - [sys] Don't panic if the .so versions are too old and missing symbols
- [protocols] Update to wayland-protocols 1.8
- [scanner] Fix objects not being properly destroyed after calling destructor requests
- [protocols] Remove the
nightly
feature, now that rustc'sstatic_recursion
is stable
- Migrate the repository to https://github.com/smithay
- [client] Add a method to create
WlEglSurface
from a rawwl_surface
ptr - [client]
WlDisplay::get_fs
is unsafe as it should always have been
- [server] Fix a memory corruption in global registration
- [scanner] Fix a null-check leading to segfaults
- [server] Bugfix previous release...
- [server] Fix a bug of register-related functions leading to ressources not being properly recognized. Thanks @fangyuanziti.
- [client] Proxy objects are now cloneable via
Proxy
methods - [client] impl Debug for RequestResult
- [server] Server objects are noe cloneable via
Resource
methods - [server] impl Debug for EventResult
- [breaking-change] Be more conservative regarding the use of
user_data
from the C libraries. This makes us compatible with manipulation of wayland objects managed by other libraries.wayland-client
andwayland-server
will not attempt to manage objects already managed by something else.
- [server] Correct secondary event source handlers API
- Robustify macros regarding shadowing of
Result
(thanks to @Daggerbot) - [sys] Fix typos & errors in symbol names (thanks to @jplatte and @drakulix for spotting them)
- [server] Add support for secondary event sources and multiple event loops
- Add
resource_is_registered
to check if a given resource is registered to a given handler - Add 'Resource::post_error()` to send protocol errors
#[derive(PartialEq)]
for enums
- Add a missing public import of
Destroy
trait
- [breaking change] Don't generate result-like return type on proxies that cannot be destroyed
- [breaking change] Correct argument types to take optionnal
destructor_func_t
- Add a destructor mechanism for ressources
- Add a raw user-data mechanism
- Improve a client example (thanks @ideasman42)
- Update metadata of the crates on crates.io
- Properly handle conflicts in bitflags names
- Creation of the crate
- expose interface structs for extention protocols integration
- Add
declare_delegating_handler!(..)
macro for delegading an handler impl to a field of the handler struct - update
lazy_static
dependency
- Add methods to add socket to the server's event loop
- Concurent read API ( EventQueue::prepare_read() and WlDisplay::get_fd() )
- Fix multi-queue dispatching (events on other queue than default were not dispatched)
- Event queues and event loops are now
Send
and require handlers to beSend
- the
cursor
api is nowSend
- fix a typo in
declare_handler!
macro ( #70 from @fangyuanziti )
- Proxies and Resources are nor
Send+Sync
as they should be equals
method to chek if two handles refer to the same wayland objectInit
trait allowing handlers to be initialized after insertion in an event queue/loop
egl
modules binding tolibwayland-egl
providing OpenGL supportcursor
module binding tolibwayland-cursor
giving access to system's cursor theme
Complete rewrite of the libs to a new architecture.
Addition of wayland-server to the libs.
Add Iterator impl to EventIterator.
Fix premature 0.6.0 release
- Add missing ReadEventsGuard public import
- Hide internals details
- Polish the EventIterator API
- Rework
EventIterator
internals to avoid adding unnecessary overhead - Fix soundness of destructors
- Integrate referencing enums from other interfaces
- added stable
wp-viewporter
- added stable
wp-presentation_time
- added unstable
wpu-xdg_shell
- Update
dlib
dependency to v0.3 to match new macro syntax rules.
- Fix typos and missed things introduced in previous version.
- Do not rely on lib for C types, but rather std::os::raw. Should improve soundness in the long term.
- Stop trying to set the dispatcher on buffers from wayland-cursor.
- Interface to
libwayland_cursor
insys
andclient
, behind thecursor
cargo feature.
WlEglSurface
is nowSend
andSync
as it should be.
- wayland-client:
ProxyId
is nowHash
- wayland-sys: Remove inexistant
wl_log
symbols from the bindings - wayland-client: improve
egl_surface_ptr()
method of WlEglSurface
is_available()
andegl::is_available()
functions
First unified version of wayland-sys, wayland-scanner and wayland-client.
CHANGELOG.md
- Use local versions in travis testing