# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] - - various authors ## [1.5.0] - 2024-11-09 - various authors ### Added - `UnknownError` and no more panic for failed resolution (#266) - unsafe public API to resolve FFI events and errors (#266) - `Reply::as_raw` (#267) - `GetModifierMappingReply::keycodes_per_modifier` is public (#271) ### Fixed - Compilation warnings (#275) ## [1.4.0] - 2024-04-23 - various authors ### Added - `BaseEvent::is_from_send_event` (#262) - feature `libxcb_v1_14` (enabled by default) (#250) ### Fixed - Special event API (#261) - DisplayInfo members visibility (#263) ## [1.3.0] - 2023-12-09 - various authors ### Added - add `Connection::poll_for_reply` and `Connection::poll_for_reply_unchecked` (#245) ### Fixed - fix more alignment panic (#246, #247) ## [1.2.2] - 2023-07-22 - various authors ### Fixed - fix serialization panic (impl WiredOut #226, #227) - fix `Send` and `Sync` for events (#233) ## [1.2.1] - 2023-04-23 - various authors ### Fixed - updated `quick-xml` as the old one will no longer be compatible with future rust versions - fixed alignment issue ### Changed - Implement `AsRawXcbConnection` for `Connection` ## [1.2.0] - 2022-11-03 - various authors ### Fixed - Segfault when DISPLAY is unset when using xlib - Return `Unknown` instead of panic for unknown events (disabled feature) (#195) ### Changed - `resolve_event` returns `Event::Unknown` instead of panicking when the event could not be resolved. - Types such as `x::Cw` implement `Ord` and can be sorted dynamically (i.e. for `x::CreateWindow`) - `atoms_struct!` macro can specify `only_if_exists` - add `Event::as_raw()`, `Connection::resolve_event()` ## [1.1.1] - 2022-03-19 - rtbo ### Fixed - Padding offset in events constructors ([x11-clipboard/#26](https://github.com/quininer/x11-clipboard/pull/26)) ## [1.1.0] - 2022-03-16 - rtbo ### Added - Xid types (`x::Atom`, `x::Window`, ...) implement `Hash` - `atoms_struct!` macro - `Connection::send_and_check_request` ### Changed - Some documentation improvements. ## [1.0.0] - 2022-03-06 - rtbo - new 1.0 API - implement the extensions in RUST directly (no need to link to C extension libraries) - XCB resolves protocol events and errors to safe enumerations - requests are structures that can be passed to `Connection::send_request` - typesafe cookies for checked/unchecked and void/non-void requests - typesafe XIDs - `bitflags` masks - `debug_atom_names` feature - improvements of the `Debug` implementations - many, many other improvement and fixes, (~90% of github issues are resolved) - support for xcb-1.14 - support for xinput extension - get rid of the `log` dependency ## [0.10.1] - 2021-09-23 - rtbo - fix some code generation affecting the `present` extension - fix compilation warnings about uninhabited type values ## [0.10.0] - 2021-09-19 - rtbo ### Changed - build script is written in Rust. Python no longer needed. (#56, #62, #89, #99) - moved CI to github actions ### Fixed - fixed some member names (e.g. `size_i_d` => `size_id` / `num__f_b_configs` => `num_fb_configs`) ## [0.9.0] - 2019-11-12 - Lompik ### Fixed - get_reply consume cookies and impl Drop on Cookies (#57) ## [0.8.3] - 2019-11-12 - Lompik ### Fixed - fix use after free when connecting with display names (#65) ## [0.8.2] - 2018-02-13 - chrisduerr/myfreeweb/yamnikov-oleg/eigebong/rtbo - move to log 0.4 (#55) - improve missing python error in build.rs (#49) - add Connection.into_raw_conn - make source generation deterministic (#43) ## [0.8.1] - 2017-08-15 - /rtbo/main--/chrisduerr - fix lifetime inconsistency (#40) - impl AsRawFd for Connection (#39) ## [0.8.0] - 2017-07-11 - mjkillough/eduardosm/rtbo - error trait and unsafe cast_error (#32) - mjkillough - unsafe cast_event - rtbo - allow xcb::connect without xlib_xcb feature (fixes also doc generation) (#35) - eduardosm ## [0.7.8] - 2019/11/12 - Lompik - fix use after free when connecting with display names (#65) (backporting from 0.8) ## [0.7.7] - 2017-08-15 - rtbo/mjkillough - branch 0.7.x to support servo - implement Error/Display for GenericError and ConnError - fix lifetime inconsistencies (#40) - Send and Sync implemented regardless of thread feature ## [0.7.6] - 2016-11-14 - rtbo/ibabushkin - much better handling of union accessors (#27) Credits to Inokentiy Babushkin - other minor fixes ## [0.7.5] - 2016-08 - rtbo - multi-threading support (#23) - other bug fixes ## [0.7.4] - 2016-06 - rtbo - templating send_event* to take event obj instead of str - correct iterator attribute lifetime (#16) ## [0.7.3] - 2016-04-10 - rtbo - templating some accessors ## [0.7.2] - 2016-04-02 - rtbo - fix #14 ## [0.7.1] - 2016-03-29 - rtbo - module names closer to ffi - fix #13 ## [0.7.0] - 2016-03-28 - rtbo - fix connection with strings (#9) - assign response_type in *Event::new (#10) - Connection::connect returns Result (#11) - Some documentation (#12) ## [0.6.2] - 2016-03-04 - rtbo - fix: correct names for DRI2 and 3 FFI constants ## [0.6.1] - 2016-03-02 - rtbo - fix: correct names for 'xtest' extension ## [0.6.0] - 2016-02-22 - rtbo - xlib_xcb: Connection owns the xlib::Display and calls XCloseDisplay - requests accept template slices - POD types distinction ## [0.5.0] - 2016-02-07 - rtbo - adding xlib_xcb - show how to create an opengl enabled window ## [0.4.1] - 2016-02-07 - rtbo - generating union accessors - handling of bool parameters in the wrapper API - rewrite of wrappers structures (pub type instead of struct with base field) - module clean-up and export - Travis CI ## [0.4.0] - 2016-03-02 - rtbo/laumann - first fully functional wrappers - rewritten rs_client.py - new examples - made ffi very close to C - fixed wrappers segfaults ## [0.3.0] - 2013 - Aatch