2019-02-05 Chris Feng Bump version to 0.17 2019-02-05 Chris Feng Update copyright year to 2019 2018-12-28 adisbladis Fix startup using non-posix shells * xcb.el (xcb:create-auth-info): Use lisp for string substitution instead of shell 2018-10-14 Chris Feng Bump version to 0.16 2018-09-23 Chris Feng Eliminate a compile warning with `xcb:deftypealias' * xcb-types.el (xcb:deftypealias): Use variable property instead of `defvaralias'/`indirect-variable' to store the fundamental type. 2018-09-16 Stefan Monnier Simplify debugging and fix dynamic-scoping `eval' * xcb-types.el (xcb:debug): New global minor mode to replace `xcb:debug-on' and `xcb:debug-toggle'. (xcb:-log): Use it. * xcb-types.el (xcb:deftypealias): Use lexical-scoping `eval'. 2018-09-09 Chris Feng ; Minor fixes for Calvo's patch set. 2018-09-04 Adrián Medraño Calvo Command for toggling debugging output * xcb-types.el (xcb:-debug-toggle): New function for toggling debugging output. 2018-09-04 Adrián Medraño Calvo Print backtrace upon event listener errors * xcb.el (xcb:-process-events): Output backtrace of erroring event listeners when `xcb:debug-on' is enabled. 2018-09-04 Adrián Medraño Calvo * xcb.el (xcb:-cache-request): Avoid logging large objects 2018-09-04 Adrián Medraño Calvo * xcb-types.el (slot-unbound): Correct mistyped message 2018-09-04 Adrián Medraño Calvo Print log output to an XELB-specific messages buffer Using `message' to log debugging information is cumbersome, as the output appears constantly in the minibuffer, obscuring prompts and other information. In the case of long messages, it might resize the minibuffer, which causes EXWM to perform additional actions due to the log output. This change reimplements XELB debug logging using a separate buffer (*XELB-DEBUG*). Basic functionality, like scrolling when point is at the end of the buffer is maintained. * xcb-types.el (exwm--log): Use `xcb-debug-message' instead of `message'. Prefix all messages with the name of the function. Make FORMAT-STRING argument optional. Support toggling debug output at runtime. * xcb-debug.el: New file. (xcb-debug-buffer): New variable holding the buffer where debug messages are output to. (xcb-debug-message): New function printing a message to `xcb-debug-buffer'. (xcb-debug-backtrace): New function printing a backtrace. (xcb-debug-backtrace-on-error): New function printing a backtrace upon error. (xcb-debug--clear, xcb-debug--mark): New functions. 2018-09-02 Chris Feng Revisit event cache timely ; Previously events are only sent to listeners in ; `xcb:-connection-filter'. But with `event-lock' this process can be ; skipped when `event-lock' is hold elsewhere. With such non-blocking ; lock this process should get rechecked whenever `event-lock' is ; released. * xcb.el (xcb:-process-events): New method for processing cached events. (xcb:-connection-filter, xcb:flush, xcb:-+reply, xcb:aux:sync): Use it. 2018-08-19 Chris Feng Eliminate compile warnings 2018-07-18 Chris Feng Bump version to 0.15 2018-06-18 Chris Feng Fix `xcb:unmarshal' for * el_client.el (xelb-parse-list): Place list placeholder after the real one so that to be correctly referred by . (xelb-parse-switch): Never flatten the condition list for . * xcb-types.el (xcb:unmarshal of xcb:-struct): Stop after processing . * xcb-types.el (xcb:--struct): New common super class for all classes in XELB. Currently it's used to override `slot-unbound'. (xcb:-struct): * xcb-ewmh.el (xcb:ewmh:-_NET_DESKTOP_GEOMETRY) (xcb:ewmh:-_NET_DESKTOP_LAYOUT, xcb:ewmh:-_NET_WM_STRUT) (xcb:ewmh:-_NET_WM_STRUT_PARTIAL, xcb:ewmh:-_NET_WM_ICON_GEOMETRY) (xcb:ewmh:-_NET_FRAME_EXTENTS, xcb:ewmh:-_NET_WM_SYNC_REQUEST_COUNTER) (xcb:ewmh:-_NET_WM_FULLSCREEN_MONITORS): * xcb-icccm.el (xcb:icccm:--ClientMessage, xcb:icccm:-WM_SIZE_HINTS) (xcb:icccm:-WM_HINTS, xcb:icccm:-WM_STATE, xcb:icccm:-WM_ICON_SIZE): * xcb-keysyms.el (xcb:keysyms:-device): * xcb.el (xcb:connection, xcb:auth-info): Use it. 2018-06-18 Chris Feng Add support for and drop implicit padding * el_client.el (xelb-parse-required_start_align): New function for parsing . (xelb-parse-structure-content): Use it. (xelb-parse-list): Drop implicit padding after . * xcb-types.el (xcb:-marshal-field, xcb:unmarshal, xcb:-unmarshal-field): Make adaptions for . 2018-06-12 Chris Feng Fix handling of generic events * xcb.el (xcb:-connection-filter): Correct wrong generic event length. (xcb:-error-or-event-class->number): Correct wrong conversion of generic event codes. 2018-05-20 Chris Feng Sync with upstream protocol 2018-04-15 Paul Eggert Port to 32-bit Emacs master Rewrite #xFFFFFFFF to 4294967295. and similarly for other hex constants intended to be floating-point on 32-bit Emacs. * el_client.el (xelb-parse-enum): Omit enums that do not fit in 32-bit Emacs. * xcb-xinput.el (xcb:xinput:ModifierMask:Any): * xcb-xkb.el (xcb:xkb:Control:IgnoreLockMods) (xcb:xkb:Control:PerKeyRepeat, xcb:xkb:Control:ControlsEnabled): Remove. 2018-04-08 Chris Feng Temporarily disable update on every NewKeyboardNotify event * xcb-keysyms.el (xcb:keysyms:-on-NewKeyboardNotify): Only handle the first NewKeyboardNotify event (as a result of selecting that event). XELB is currently not efficient enough to handle every such event. 2018-04-01 Chris Feng Do not block NewKeyboardNotify events concerned with SetMap requests * xcb-keysyms.el (xcb:keysyms:-on-NewKeyboardNotify): NewKeyboardNotify events related to SetMap requests should be processed or keycodes can be out-of-date. 2018-03-14 Chris Feng Bump version to 0.14 2018-03-08 medranocalvo Support WM_Sn atoms (#19) * xcb-icccm.el (xcb:icccm:-atom, xcb:icccm:init): Register WM_Sn atoms for each screen. 2018-03-04 Chris Feng Ensure KeyTypes are initialized * xcb-keysyms.el (xcb:keysyms:-update-keytypes): Ditto. 2018-03-03 Chris Feng Rename `xcb:-fd' to `xcb:fd' and sync with upstream protocol 2018-02-24 Chris Feng Bump version to 0.13 2018-01-14 Chris Feng Do not convert events with unsupported modifiers * xcb-keysyms.el (xcb:keysyms:event->keysym): Reset the keysym when failing to convert the modifiers. 2018-01-14 Chris Feng Support symbol representations of ASCII in key events * xcb-keysyms.el (xcb:keysyms:event->keysym): Support converting events with ASCII as symbols (e.g. treating 'C-a as an alternative form of ?\C-a). 2018-01-14 Chris Feng Update copyright year to 2018 2017-12-10 Chris Feng Add support for fast switching between multiple keyboards * xcb-keysyms.el (xcb:keysyms:-device): New class containing the properties of a keyboard. (xcb:keysyms:-get-current-device): New method for retrieving the current keyboard object. (xcb:keysyms:-on-NewKeyboardNotify, xcb:keysyms:-on-MapNotify): Cache the properties of all keyboards. * xcb.el (xcb:-get-extra-plist, xcb:-set-extra-plist): New methods for getting/setting module-specific properties. * xcb-keysyms.el (xcb:keysyms:init, xcb:keysyms:-set-per-client-flags) (xcb:keysyms:-on-NewKeyboardNotify, xcb:keysyms:-on-MapNotify) (xcb:keysyms:-update-keytypes, xcb:keysyms:-update-keycodes) (xcb:keysyms:keycode->keysym, xcb:keysyms:keysym->keycode): Use them. 2017-11-26 Chris Feng Add support for callback function for keyboard update * xcb-keysyms.el (xcb:keysyms:init): Now accept an optional argument as a callback function for keyboard update. (xcb:keysyms:-on-NewKeyboardNotify, xcb:keysyms:-on-MapNotify): Call the callback function after updating the keyboard. * xcb-keysyms.el (xcb:keysyms:-on-NewKeyboardNotify): Filter out keyboard change events not intended for the current active one. 2017-11-26 Chris Feng Make connection-specific variables private * xcb-keysyms.el (xcb:keysyms:-opcode, xcb:keysyms:-device) (xcb:keysyms:-keytypes, xcb:keysyms:-keycodes) (xcb:keysyms:-min-keycode, xcb:keysyms:-max-keycode): Deleted. (xcb:keysyms:init, xcb:keysyms:-on-NewKeyboardNotify) (xcb:keysyms:-on-MapNotify, xcb:keysyms:-on-MapNotify) (xcb:keysyms:-update-keytypes, xcb:keysyms:-update-keycodes) (xcb:keysyms:keycode->keysym, xcb:keysyms:keysym->keycode): Use the connection object's 'extra-plist' slot for storing and retrieving connection-specific variables. 2017-11-05 Chris Feng Add support for * el_client.el (xelb-parse-top-level-element, xelb-parse-eventstruct): Add support for . * xcb-xinput.el: Sync with upstream protocol. 2017-02-05 Chris Feng Fix checkdoc warnings 2017-02-05 Chris Feng Sync with upstream protocol 2017-02-05 Chris Feng Update copyright year to 2017 2016-11-19 Chris Feng Bump version to 0.12 2016-11-13 Chris Feng Correct the detection of modifier keys * xcb-keysyms.el (xcb:keysyms:-update-modkeys): Detect modifier keys with the core protocol request 'GetModifierMapping'; also detect shift-lock and num-lock modifiers. (xcb:keysyms:keysym->event): Use the detected shift-lock modifier. 2016-09-25 Chris Feng Protect the event lock ; It's observed the event lock can occasionally fail to be decreased, ; though the cause is unclear. * xcb.el (xcb:flush, xcb:-+reply, xcb:aux:sync): Protect the event lock. 2016-09-23 Chris Feng Add missing slots for WM_SIZE_HINTS classes * xcb-icccm.el (xcb:icccm:get-WM_SIZE_HINTS) (xcb:icccm:set-WM_SIZE_HINTS): Add the missing 'property' slot. 2016-08-14 Chris Feng Bump version to 0.11 2016-08-12 Chris Feng Save a sequence number after the packet is saved * xcb.el (xcb:-convert-sequence): Do not save the sequence number here. (xcb:-connection-filter): Save it here. 2016-08-11 Chris Feng Split connection filter * xcb.el (xcb:-connection-filter, xcb:-connection-setup-filter): Split out connection setup code from the former into the latter. (xcb:-connect): Set process filter to `xcb:-connection-setup-filter'. 2016-08-11 Chris Feng Fix sequence number wrapping issues * xcb.el (xcb:connection-timeout): Reduce timeout to 3. (xcb:connection): Merge slots 'error-sequence' and 'reply-sequence' into 'last-seen-sequence'. (xcb:-sequence-cmp16): Removed. * xcb.el (xcb:-SEQUENCE-SEGMENT-MASK): New constant representing the segment mask of a sequence number. (xcb:-convert-sequence): New method for converting 16-bit sequence number received from the server into that used in the client. (xcb:-connection-filter): Use this method. (xcb:-+request, xcb:-+request-checked, xcb:-+request-unchecked) (xcb:-+reply, xcb:-request-check, xcb:aux:sync): Avoid using 16-bit sequence number. (xcb:-cache-request): Force wrapping sequence numbers. (xcb:-+reqply, xcb:-request-check, xcb:aux:sync): Check sequence number wrapping. * xcb.el (xcb:aux:sync): Discard any reply or error. 2016-08-06 Chris Feng Fix XGE and XKB events support * el_client.el (xelb-xge-alist nil): New variable for recording X generic events (XGE). (xelb-parse): Output XGE list. (xelb-parse-event, xelb-parse-eventcopy): Set XGE list. * xcb-types.el (xcb:marshal for xcb:-event): Rewritten to take XGE and XKB into consideration. (xcb:-generic-event): New type representing XGE. * xcb.el (xcb:-connection-filter, xcb:+event) (xcb:-error-or-event-class->number): Fix XGE and XKB events support. * el_client.el (xelb-parse-request): Insert slots for sequence number and reply length. (xelb-parse-event, xelb-parse-eventcopy): Insert slots for sequence number and event code. (xelb-parse-error, xelb-parse-errorcopy): Insert slot for error code. * xcb-types.el (xcb:-reply): Remove 'length' slot; add '~reply' slot. (xcb:-event): Add '~code' slot. (xcb:-error): Add '~error', '~code' and '~sequence' slots. * xcb.el (xcb:-+reply): Do not manipulate the length. (xcb:unmarshal for xcb:-reply, xcb:-event and xcb:-error): Removed. * el_client.el (xelb-node-type, xelb-parse-typedef) (xelb-parse-eventcopy, xelb-parse-errorcopy, xelb-parse-enumref): Prefer module-local names to global ones. 2016-08-06 Chris Feng * xcb-renderutil.el (xcb:renderutil:find-format): Traverse the 'formats' slot; return format ID. 2016-08-06 Chris Feng * xcb-ewmh.el (xcb:ewmh:-atoms): List _NET_WM_CM_S0 by default. 2016-07-31 Chris Feng Bump version to 0.10 2016-07-31 Chris Feng * xcb.el (xcb:disconnect): Check before disconnecting. 2016-07-30 Chris Feng ; * xcb.el (xcb:disconnect): Flush before disconnection. 2016-07-29 Chris Feng Support system-specific and legacy keysyms * xcb-keysyms.el (xcb:keysyms:event->keysym, xcb:keysyms:keysym->event): Also search `system-key-alist' and `x-keysym-table' for system-specific and legacy keysyms respectively. 2016-07-29 Chris Feng Use numerical keysyms and mod-masks * xcb-keysyms.el (xcb:keysyms:event->keysym): Always return a cons cell containing a numerical keysym and a mod-mask. (xcb:keysyms:keysym->event): Adapt to use numerical mod-masks. 2016-07-29 Chris Feng Set XKB per-client flags * xcb-keysyms.el (xcb:keysyms:-set-per-client-flags): New function for setting XKB per-client flags (required for GrabKey and SendEvent). (xcb:keysyms:init, xcb:keysyms:-on-NewKeyboardNotify): Use it. 2016-07-29 Chris Feng Adapt 'xcb-keysyms' library to use XKB * xcb-keysyms.el: Remove a todo entry; load 'xcb-xkb'. (xcb:keysyms:auto-update): Removed since no longer required. (xcb:keysyms:num-lock-mask, xcb:keysyms:mode-switch-mask): Removed since no longer used in conversion. (xcb:keysyms:-opcode, xcb:keysyms:-device, xcb:keysyms:-keytypes) (xcb:keysyms:-keycodes, xcb:keysyms:-modkeys, xcb:keysyms:-min-keycode) (xcb:keysyms:-max-keycode): Shared internal local data. (xcb:keysyms:init): Reworked to initialize XKB. (xcb:keysyms:-on-NewKeyboardNotify): New event handler for XKB NewKeyboardNotify evnet. (xcb:keysyms:-on-MapNotify): New event handler for XKB MapNotify. (xcb:keysyms:-update-keytypes): New method for updating XKB key types. (xcb:keysyms:update-keyboard-mapping, xcb:keysyms:-update-keycodes): Rename the former to the latter to update XKB keycodes-keysym mapping. (xcb:keysyms:update-modifier-mapping, xcb:keysyms:-update-modkeys): Rename the former to the latter to update XKB modifier keys. (xcb:keysyms:keycode->keysym): Reworked to perform the conversion using XKB rules; always return a cons cell with numerical elements. (xcb:keysyms:keysym->keycode): Reworked to perform the conversion using XKB keycodes; always return an integer. (xcb:keysyms:event->keysym): Detect additional modifiers using the new `xcb:keysyms:keycode->keysym'. 2016-07-29 Chris Feng Fix extension event number * xcb.el (xcb:-connection-filter): Add the second byte to the extension event number. 2016-07-29 Chris Feng Eliminate compile warnings for Emacs 24 * el_client.el: Require eieio and xcb-types; do not use the forth argument to `libxml-parse-xml-region'. * xcb-types.el: Backport `cl--slot-descriptor-initform'. 2016-07-29 Chris Feng Precompute the size of ; Rationale: Some unions in XKB are not aligned, which makes ; marshaling/unmarshaling unions at runtime impossible. * el_client.el (xelb-node-size): New function for calculating node size. (xelb-type-size): New function for calculation the size of a type. (xelb-parse-union): Precompute the size of . * xcb-types.el (xcb:-union): Add a '~size~ slot for storing the size. (xcb:marshal for xcb:-union, xcb:unmarshal for xcb:-union): Marshal and unmarshal using the precomputed size. * xcb-randr.el: * xcb-xkb.el: * xcb-xproto.el: Regenerated. 2016-07-29 Chris Feng Fix issues with * el_client.el (xelb-parse): Evaluate just generated forms. (xelb-parse-enumref): Return the enum value instead of symbol. (xelb-parse-unop): Add a missing comma. * el_client.el (xelb-parse-switch): Aggressively simplify [bit]cases. * xcb-types.el (xcb:-marshal-field, xcb:-unmarshal-field): Adjust the checks for switch conditions; skip `xcb:-ignore' type slots. * xcb-dri2.el: * xcb-render.el: * xcb-screensaver.el: * xcb-sync.el: * xcb-xf86vidmode.el: * xcb-xinput.el: * xcb-xkb.el: * xcb-xproto.el: Regenerated. 2016-07-29 Chris Feng Enable XKB module * .elpaignore: Unblock almost all files. * el_client.el (xelb-excluded-replies<25): New constants storing replies that should not be loaded on Emacs 24. (xelb-parse-request): Prevent loading replies stored in `xelb-excluded-replies<25' on Emacs 24. * xcb-xkb.el: Regenerated. 2016-07-25 Chris Feng Bump version to 0.9 2016-07-13 Chris Feng * xcb-icccm.el (xcb:icccm:-atoms): Add WM_CHANGE_STATE atom. 2016-07-12 Chris Feng * xcb-ewmh.el (xcb:ewmh:-_NET_WM_STRUT_PARTIAL): Fix typos. 2016-06-03 Chris Feng Sync with upstream protocol 2016-05-25 Chris Feng Bump version to 0.8 2016-05-23 Chris Feng Add optional arguments to force refreshing atoms * xcb-ewmh.el (xcb:ewmh:init) * xcb-icccm.el (xcb:icccm:init, xcb:icccm:intern-atoms): * xcb-systemtray.el (xcb:systemtray:init): * xcb-xembed.el (xcb:xembed:init): Add optional arguments to force refreshing atoms. 2016-05-21 Chris Feng Bump version to 0.7 2016-05-17 Chris Feng Improve performance of `xcb:create-auth-info' * xcb.el (xcb:create-auth-info): Improve performance. 2016-05-17 Chris Feng Fix the parsing of X11 properties * xcb-icccm.el (xcb:icccm:-GetProperty~reply): Do not use the 'bytes-after' field. 2016-05-13 Chris Feng Implement basic authentication during connection setup * xcb.el (xcb:create-auth-info): Implement the MIT-MAGIC-COOKIE-1 authentication protocol. (xcb:connect): Try sockets as well; deprecate the '_screen' argument. (xcb:display->socket): New function returns the socket path for an X11 display name. (xcb:connect-to-display-with-auth-info): Use `xcb:create-auth-info'; deprecate the '_screen' argument. (xcb:parse-display): Simplify regexps (don't know why they were written that way). (xcb:connect-to-socket): Use `xcb:display->socket' and `xcb:create-auth-info'. 2016-04-21 Chris Feng Add 'MANAGER' atom * xcb-icccm.el (xcb:icccm:-atoms): Add 'MANAGER' atom. 2016-03-25 Chris Feng Avoid using the global value `x-display-name' * xcb.el (xcb:connect-to-display-with-auth-info, xcb:connect-to-socket): Use the frame parameter 'display' instead of `x-display-name' since the latter can be cleared by e.g. launching an emacsclient. 2016-03-06 Chris Feng Detect implicit list length * el_client.el (xelb-request-fields): New variable holding fields in the current request. (xelb-parse-request): Set/Clear the variable accordingly. (xelb-parse-fieldref): Detect implicit list length. * el_client.el (xelb-parse-request): Remove the extra argument. (xelb-parse-exprfield): Remove the extra quote. 2016-02-28 Chris Feng Add renderutil library * xcb-renderutil: New library adding utility functions for the Render extension. 2016-02-22 Chris Feng Bump version to 0.6 2016-02-19 Chris Feng Clear modifier bits for modifier key events * xcb-keysyms.el (xcb:keysyms:keysym->event): Clear modifier bits for modifier keys. 2016-02-19 Chris Feng Avoid loading cl-lib at runtime 2016-02-19 Chris Feng Avoid duplicated initialization * xcb-ewmh.el, xcb-icccm.el, xcb-systemtray.el, xcb-xembed.el: Avoid duplicated initialization. 2016-02-19 Chris Feng Implement XEmbed and System Tray protocols * xcb-xembed.el: New module implementing the XEmbed protocol. * xcb-systemtray.el: New module implementing the System Tray protocol. * xcb-ewmh.el (xcb:ewmh:--ClientMessage): Removed. * xcb-icccm.el, xcb-ewmh.el: Fix comments. 2016-02-12 Chris Feng Bump version to 0.5 2016-02-11 Chris Feng Fixes for compatibility and compilation issues * xcb-types.el: Backport the version of `with-slots' from Emacs 25 to 24. * xcb-keysyms.el (xcb:keysyms:init): Remove error logs which break after compilation. * el_client.el: Eliminate a compilation warning. 2016-02-11 Chris Feng Data types related fixes * el_client.el (xelb-imports, xelb-parse-import): Save imported libs in new variable `xelb-imports'. (xelb-node-type, xelb-parse-field, xelb-parse-list, xelb-parse-exprfield): Use new function `xelb-node-type' to search defined types. * xcb-composite.el: * xcb-damage.el: * xcb-glx.el: * xcb-present.el: * xcb-randr.el: * xcb-xfixes.el: * xcb-xinput.el: * xcb-xv.el: * xcb-xvmc.el: Data types corrected. * xcb-types.el: Add new 8 bytes data types `xcb:-u8' and `xcb:CARD64'. Define `xcb:-fd' as an alias of `xcb:-i4'. (xcb:-pack-u8, xcb:-pack-u8-lsb, xcb:-unpack-u8, xcb:-unpack-u8-lsb): New functions for packing/unpacking 8 bytes data on 64/32-bit machines. * Makefile: Eliminate a warning. 2016-02-10 Chris Feng Allow users to disable the keyboard mapping auto-update feature * xcb-keysyms.el (xcb:keysyms:auto-update, xcb:keysyms:init): Use new variable `xcb:keysyms:auto-update' to control the keyboard mapping auto-update feature. This feature does not work well with e.g. XTEST extension and should be disabled sometimes. We need to switch to use the Xkb extension (does not work with Emacs 24) to resolve the problem. 2016-02-07 Chris Feng Handle MappingNotfiy event * xcb-keysyms.el (xcb:keysyms:init): Update keyboard/modifier mapping on MappingNotfiy event. 2016-01-06 Chris Feng Update copyright year to 2016 2016-01-06 Chris Feng Sync with upstream protocol * el_client.el (xelb-parse-structure-content, xelb-parse-switch): Ignore node (used for alignment checking purpose only). * xcb-xkb.el: Add various explicit paddings. 2015-12-13 Chris Feng Improve the handling of modifier keys * xcb-keysyms.el (xcb:keysyms:update-modifier-mapping): Find modifiers according to x_find_modifier_meanings in xterm.c. (xcb:keysyms:event->keysym, xcb:keysyms:keysym->event): Take x-alt-keysym, x-meta-keysym, x-hyper-keysym and x-super-keysym into account when doing X KEYSYM <-> Emacs event translation. 2015-12-13 Chris Feng Escape an open-parenthesis 2015-11-09 Chris Feng Bump version to 0.4 2015-11-08 Chris Feng Fix a mouse event to KEYSYM translation issue * xcb-keysyms.el (xcb:keysyms:event->keysym): Prevent adding implicit shift modifier for mouse events. 2015-11-06 Chris Feng Minor fix for the sequence number comparison function * xcb.el (xcb:-sequence-cmp16): Return the difference of sequence numbers instead. 2015-11-05 Chris Feng Fix the reply/error sequence number overflow issue * xcb.el (xcb:-+reply, xcb:-request-check, xcb:aux:sync): The sequence number of a reply/error is always 16 bits (taken as the least significant word of the sequence number of the corresponding request). * xcb.el (xcb:-sequence-cmp16): New function for comparing 16-bit sequence numbers. (xcb:+request-unchecked, xcb:-request-check, xcb:aux:sync): Compare sequence numbers using xcb:-sequence-cmp16. 2015-11-01 Chris Feng Bump version to 0.3 2015-10-31 Chris Feng Fix a typo and silence a compilation warning 2015-10-30 Chris Feng Add necessary shift mask for event to KEYSYM conversion * xcb-keysyms.el (xcb:keysyms:event->keysym): Add necessary shift mask (required by characters like '!@#' on US keyboard). (xcb:keysyms:event->keysym, xcb:keysyms:keysym->event): Turned into methods of xcb:connection. (xcb:keysyms:update-modifier-mapping): Use new calling conventions. 2015-10-28 Chris Feng Handle missing modifier keys when converting event to keysym * xcb-keysyms.el (xcb:keysyms:event->keysym): Return nil when any modifier key in the event is not present. 2015-10-28 Chris Feng Sync with upstream protocol ; Add explicit paddings. 2015-10-27 Chris Feng Handle nonlocal exits when calling event handlers * xcb.el (xcb:-connection-filter): Do cleanups from nonlocal exits. 2015-10-26 Chris Feng Fix shift key issues * xcb-keysyms.el (xcb:keysyms:keycode->keysym): Restrict case conversions to Latin-1 KEYSYMs/characters. * xcb-keysyms.el (xcb:keysyms:keysym->keycode): Allow shift modifier for KEYSYMs/characters not in Latin-1 (e.g. function keys). 2015-10-25 Chris Feng Ignore errors from event handlers * xcb.el (xcb:-connection-filter): Ignore errors from event handlers to prevent them from freezing XELB. 2015-09-27 Chris Feng Minor fixes * el_client.el: * xcb-keysyms.el: Use the new syntax for number comparison * xcb-types.el: Fix use of eval-when-compile / eval-and-compile. 2015-09-26 Chris Feng Bump version to 0.2 2015-09-26 Chris Feng Fix packaging issues; add support for ISO function keys * .elpaignore: Add xcb-xkb.el as it does not work on Emacs 24. * xcb-types.el: * xcb-xim.el: Fix compilation errors on Emacs 24. * README.md: Renamed from README.org, or its content will be taken as the long description of this package by GNU ELPA. * xcb-keysyms.el (xcb:keysyms:-xf86-keys, xcb:keysyms:keysym->event): Fix typos about XF86keysym. * xcb-keysyms.el (xcb:keysyms:-iso-function-keys) (xcb:keysyms:event->keysym, xcb:keysyms:keysym->event): Add support for ISO function keys. 2015-09-22 Chris Feng Bump version to 0.1 2015-09-21 Chris Feng Clean up backport code * xelb.el: Add cl-generic as dependency. * xcb-types.el: Load cl-generic; Remove backport code for cl-defgeneric, cl-defmethod, cl-call-next-method, cl--slot-descriptor-name and cl--slot-descriptor-initform; Backport eieio-slot-descriptor-name. * xcb.el (xcb:disconnect): * xcb-types.el (xcb:marshal of xcb:-struct, xcb:-marshal-field) (xcb:unmarshal of xcb-struct, xcb:unmarshal of xcb:-union) (xcb:-unmarshal-field, xcb:marshal of xcb:-union): * xcb-icccm.el (xcb:unmarshal of xcb:icccm:-GetProperty-explicit~reply) (xcb:marshal of xcb:icccm:-ChangeProperty-explicit): Use eieio-slot-descriptor-name instead of cl--slot-descriptor-name; avoid using cl--slot-descriptor-initform. * xcb.el (xcb:connection): Provide default values for all slots. * README.org: Renamed from README.md; add note on cl-generic package. 2015-09-20 Chris Feng Backport cl-defgeneric to Emacs 24 * xcb-types.el: Define cl-defgeneric as an alias to defgeneric. 2015-09-19 Chris Feng Avoid autoloading an EIEIO method * xcb.el: * xcb-type.el: Avoid autoloading xcb:-error-or-event-class->number. 2015-09-19 Chris Feng Update SHM and GLX libraries * xcb-shm.el (xcb:shm:PutImage): The send-event slot is now of type xcb:BOOL. * xcb-glx.el (xcb:glx:IsEnabled, xcb:glx:IsEnabled~reply): New request and reply. 2015-09-19 Chris Feng Fix copyright and coding conventions * el_client.el: Prefix global definitions. * Add copyright/license and fix library header/footer conventions for generated libraries. 2015-09-18 Stefan Monnier Add copyright line to generated files; Add elpa files to gitignore 2015-09-11 Chris Feng Minor fix * el_client.el: Should require `pp' library. 2015-09-08 Chris Feng Fix remaining compile warnings * el_client.el (parse): remove a warning concerning pp-escape-newlines * xcb_types.el: remove warnings about the backward-compatible code * xcb.el: autoload xcb:connection and xcb:-error-or-event-class->number 2015-09-07 Chris Feng Add support for XF86 keysyms * xcb-keysyms.el: new vector xcb:keysyms:-xf86-keys * xcb-keysyms.el (xcb:keysyms:event->keysym, xcb:keysyms:keysym->event): add support for XF86 keysyms 2015-09-07 Chris Feng Add a missing function key * xcb-keysyms.el (xcb:keysyms:-function-keys): add a missing function key 2015-09-06 Chris Feng Code cleanups * xcb-keysyms.el (xcb:keysyms:-function-keys): change from list to vector * xcb-keysyms.el (xcb:keysyms:event->keysym), xcb-types.el (cl--slot-descriptor-name, cl--slot-descriptor-initform) (cl--slot-descriptor-type, xcb:-unpack-u1, xcb:-unpack-u2) (xcb:-unpack-u2-lsb, xcb:-unpack-u4, xcb:-unpack-u4-lsb) (xcb:-unmarshal-field), xcb.el (xcb:-connection-filter): use `aref` instead of `elt` to index vectors * xelb.el, xcb.el: fix first line * .elpaignore: ignore Makefile and README.md 2015-09-05 Chris Feng Protect process-send-string * xcb.el (xcb:flush): protect process-send-string since input might also come when calling it. Courtesy of @pipcet. 2015-09-04 Chris Feng Flatten directory structure It seems to be the only way to get this package built. 2015-09-03 Chris Feng Fix compiling issues * util/xcb-ewmh.el, util/xcb-icccm.el: eliminate compile warnings by defining atom variables at compile time * xcb.el: `xcb:debug-on' should be used just in this file 2015-09-03 Chris Feng Prepare for GNU ELPA release * Transfer copyright to Free Software Foundation * Add packaging components (e.g. headers) * Drop support for Emacs < 24.4 * Coding style fixes: + Quote functions with "#'" + Wrap long lines + Fix doc strings / comments * Replace `string-to-int' with `string-to-number' * Fix compiling errors / eliminate compiling warnings * Remove the redundant COPYING file * Add .gitignore and .elpaignore * Rename README to README.md since the former may be used as the package description by packaging systems (we prefer the ';;; Commentary' header) 2015-09-01 Chris Feng Fix race conditions * Ensure event handlers are running sequentially * Only accept outputs from the current process when calling `accept-process-output process` (close ch11ng/exwm#53) 2015-08-30 Chris Feng Generate implicit paddings at compile time This commit improves aaddcd9 by generating implicit paddings at compile time rather than deducting them at runtime. 2015-08-28 Chris Feng Merge xelb-util into this repo 2015-08-28 Chris Feng Move generated libraries to lib/ 2015-08-27 Chris Feng Fix a typo in 32-bit version `xcb:-unpack-u4-lsb` 2015-08-23 Chris Feng Merge pull request #4 from pipcet/data-offset Adjust to unmarshalling API changes. 2015-08-23 Philip Adjust to unmarshalling API changes. 2015-08-23 Philip Improve performance when unmarshalling long vectors. Avoid using `substring'; instead, use an extra offset argument. https://github.com/ch11ng/xelb/pull/2 2015-08-22 Chris Feng Merge pull request #3 from pipcet/ignore-missing-values It's valid for WM_NORMAL_HINTS responses only to have 15 words. 2015-08-22 Philip It's valid for WM_NORMAL_HINTS responses only to have 15 words. * xcb-icccm.el (xcb:unmarshal): Accept short responses to the WM_NORMAL_HINTS property, such as that provided by Xnest. 2015-08-21 Philip Don't assume key events are numbers; they can be symbols. * xcb-keysyms.el (xcb:keysyms:keysym->event): Don't die when translating events like shift-KP7. 2015-08-17 Chris Feng Provide a way to disable auto-padding The auto-padding feature need to be disabled for at least XIM. Perhaps it's better to insert auto-padding fields with code generator directly. 2015-08-17 Chris Feng Disable auto-padding for xcb-xim 2015-08-17 Chris Feng Add implicit paddings after variable-length The XCB-XML description files omit paddings after . This commit enables XELB to take these paddings into account when marshalling/unmarshalling. 2015-08-16 Chris Feng Make the manipulation of message cache more robust On Fedora 22 with Xorg 1.17.2, lots of redundant bytes are received during connection setup. This commit uses a more reliable way to calculate the consumed bytes. Fix ch11ng/exwm#26. 2015-08-15 Philip allow key mappings without mode switch or NumLock keys 2015-08-12 Chris Feng Fix keyboard mapping update problem Keep result from previous update. 2015-08-11 Chris Feng Check `length` slot in `xcb:icccm:-GetProperty~reply` Some program (GIMP sometimes) seems only set `length` slot to 0 while leaving other slots (including `value-len`) uninitialized. This commit makes sure `length` slot is also checked. 2015-08-10 Chris Feng Fix an emacsclient bug When calling `xcb:keysyms:update-modifier-mapping` from a terminal (e.g. created by `emacsclient -t`), the selected frame cannot be used to receive X events. 2015-08-10 Chris Feng Set the `display` slot of `xcb:connection` in `xcb:connect-to-socket` The slot value is guessed from the socket name, which is not always accurate. 2015-08-09 Chris Feng Fix ch11ng/exwm#16 (cursor size not matching) 2015-08-09 Chris Feng Disable concurrency of events The event handling mechanism was designed to be preemptive, which made events arriving in a wrong order (for applications using this library) and caused many problems therefore. This commit disables such behavior. 2015-08-06 Chris Feng Provide more verbose message when connection failed or auth required 2015-08-06 Chris Feng Fix integer overflow on 32-bit platform 2015-08-06 Chris Feng Fix for 32bit platform 2015-08-05 Chris Feng Update xcb-randr.el Was: randr: add RandR 1.5 requests and data types 2015-08-04 Chris Feng Cleanup code Also make counter more robust. 2015-07-19 Chris Feng Fix shift bit for converting from keysym to Emacs event Emacs only set shift bit for letters. 2015-07-17 Chris Feng First commit 2015-07-17 Chris Feng First commit