Revision history for libXcb Perl bindings.

0.23    2024-10-05

    - Add XComposite support

    - Implement get_image_data() to allow receiving XImages
      Also implement get_image_data_rgba() which does the same but returns
      XImage data in RGBA colorspace.

    - Add WM_SIZE_HINTS constants to make them usable

    - Fix several memory leaks

    - Remove MouseX::NativeTraits dependency

0.22    2023-11-24

    - Add cpanfile

    - Add last xproto.xml eventcopy constants: FOCUS_OUT, CIRCULATE_REQUEST

    - Add missing 'detail' field to FocusIn event structure

0.21    2023-10-18

    - Add GenericError event

    - Add constant for KEY_RELEASE

    - Add INSTALL.md

    - Fix X11::XCB::DESTROY for failed connections

    - Fix warnings in _GenerateMyXS.pm
      And resolve #144815.

0.20    2023-09-26

    - Fix type cast for ClientMessage data to avoid warning

    - Add RandR support
      This commit adds most of RandR extension support. There are several
      randr types, specifically struct randr_get_provider_property_reply,
      mode_info_t, transform_t, monitor_info_t which are still not included
      into a typemap, so these functions are not implemented:
      randr_create_mode, randr_set_monitor, randr_set_crtc_transform.
      Read-only RandR support is better than nothing, huh? :)

    - Implement xcb_get_setup
      It looks like it's missing in xml and _GenerateMyXS.pm does not see it
      so it was added manually.

    - Implement X11::XCB::Connection::get_keymap in XCB.xs
      X11 keymap is being received in several steps: at first we should call
      C<xcb_get_setup()> and then C<xcb_get_keyboard_mapping()>. The latter
      returns data (like several other XCB functions) via accessors
      (xcb_get_keyboard_mapping_keysyms in this case). In order to simplify
      Keymap requests from Perl, a new function in Connection.pm implemented
      which returns an array with keysyms. POD is updated correspondingly.

    - Implement xcb_request_check and xcb_change_window_attributes_checked
      There was a TODO to implement *_checked requests as they're missing in
      xml. One of them is now implemented as well as C<xcb_request_check()>
      itself.

    - Add events:
      ButtonPress, ButtonRelease, ConfigureNotify, ConfigureRequest,
      CreateNotify, DestroyNotify, EnterNotify, KeyPress, KeyRelease,
      LeaveNotify, MapRequest, MotionNotify, PropertyNotify, and UnmapNotify.

    - Add XKB support
      Like with RandR, most of X11 XKEYBOARD extension functionality is
      implemented. An xkb typemap for xcb_xkb_action_t is not
      implemented yet, so C<xcb_xkb_set_behavior()> and
      C<xcb_xkb_sym_interpret()> are not implemented as well. The other
      functionality, especially C<xkb_get_state()> and Xkb events, looks
      working good.

    - Fix missing pad0 field for all events
      After adding Xkb support it was revealed that some extensions could pass
      vital data through pad0 field of the event. So this field was added to
      be more aligned with X11
      protocol.

    - Implement set_flags() for X11_XCB_ICCCM_WMHintsPtr
      It looks like current implementation of X11::XCB::ICCCM::WMHints was
      created only for read-only purposes, so C<set_flags()> was implemented
      to allow change the internal state of WMHintsPtr object from Perl.

    - Implement X11::XCB::Connection::get_query_tree_children in XCB.xs
      As XCB replies on get_query_tree with accessor get_query_tree_children,
      a simple wrapper was added to make it possible to get an array with
      children IDs' in a single call from Perl.