1libxkbcommon 1.4.0 - 2022-02-04 2================== 3 4- Add `enable-tools` option to Meson build (on by default) to allow disabling 5 the `xkbcli` tools. 6 7 Contributed by Alex Xu (Hello71). 8 9- In `xkbcli list`, fix "YAML Norway problem" in output. 10 11 Contributed by Peter Hutterer. 12 13- In libxkbregistry, variants now inherit iso639, iso3166 and brief from parent 14 layout if omitted. 15 16 Contributed by M Hickford. 17 18- In libxkbregistry, don't call `xmlCleanupParser()` - it's not supposed to 19 be called by libraries. 20 21 Contributed by Peter Hutterer. 22 23- In libxkbregistry, skip over invalid ISO-639 or ISO-3166 entries. 24 25 Contributed by Peter Hutterer. 26 27libxkbcommon 1.3.1 - 2021-09-10 28================== 29 30- In `xkbcli interactive-x11`, use the Esc keysym instead of the Esc keycode 31 for quitting. 32 33 Contributed by Simon Ser. 34 35- In `xkbcli how-to-type`, add `--keysym` argugment for how to type a keysym 36 instead of a Unicode codepoint. 37 38- Fix a crash in `xkb_x11_keymap_new_from_device` error handling given some 39 invalid keymaps. Regressed in 1.2.0. 40 41 Reported by Zack Weinberg. Tested by Uli Schlachter. 42 43libxkbcommon 1.3.0 - 2021-05-01 44================== 45 46- Change `xkbcli list` to output YAML, instead of the previous ad-hoc format. 47 48 This allows to more easily process the information in a programmetic way, for 49 example 50 51 xkbcli list | yq -r ".layouts[].layout" 52 53 Contributed by Peter Hutterer. 54 55- Optimize a certain part of keymap compilation (atom interning). 56 57- Fix segmentation fault in case-insensitive `xkb_keysym_from_name` for certain 58 values like the empty string. 59 60 Contributed by Isaac Freund. 61 62- Support building libxkbcommon as a meson subproject. 63 64 Contributed by Adrian Perez de Castro. 65 66- Add `ftruncate` fallback for `posix_fallocate` in `xkbcli interactive-wayland` 67 for FreeBSD. 68 69 Contributed by Evgeniy Khramtsov. 70 71- Properly export library symbols in MSVC. 72 73 Contributed by Adrian Perez de Castro. 74 75libxkbcommon 1.2.1 - 2021-04-07 76================== 77 78- Fix `xkb_x11_keymap_new_from_device()` failing when the keymap contains key 79 types with missing level names, like the one used by the `numpad:mac` option 80 in xkeyboard-config. Regressed in 1.2.0. 81 82libxkbcommon 1.2.0 - 2021-04-03 83================== 84 85- `xkb_x11_keymap_new_from_device()` is much faster. It now performs only 2 86 roundtrips to the X server, instead of dozens (in first-time calls). 87 88 Contributed by Uli Schlachter. 89 90- Case-sensitive `xkb_keysym_from_name()` is much faster. 91 92- Keysym names of the form `0x12AB` and `U12AB` are parsed more strictly. 93 Previously the hexadecimal part was parsed with `strtoul()`, now only up 94 to 8 hexadecimal digits (0-9A-Fa-f) are allowed. 95 96- Compose files now have a size limit (65535 internal nodes). Further sequences 97 are discared and a warning is issued. 98 99- Compose table loading (`xkb_compose_table_new_from_locale()` and similar) is 100 much faster. 101 102- Use `poll()` instead of `epoll()` for `xlbcli interactive-evdev`, making it 103 portable to FreeBSD which provides evdev but not epoll. On FreeBSD, remember 104 to install the `evdev-proto` package to get the evdev headers. 105 106- The build now requires a C11 compiler (uses anonymous structs/unions). 107 108libxkbcommon 1.1.0 - 2021-02-27 109================== 110 111- Publish the `xkb-format-text-v1.md` file in the HTML documentation. This file 112 existed for a long time but only in the Git repository. 113 Link: https://xkbcommon.org/doc/current/md_doc_keymap_format_text_v1.html 114 115- Add partial documentation for xkb_symbols to xkb-format-text-v1.md. 116 117 Contributed by Simon Zeni. 118 119- Update keysym definitions to latest xorgproto. In particular, this adds many 120 special keysyms corresponding to Linux evdev keycodes. 121 122 Contributed by Peter Hutterer <@who-t.net>. 123 124- New API: 125 Too many XKB_KEY_* definitions to list here. 126 127libxkbcommon 1.0.3 - 2020-11-23 128================== 129 130- Fix (hopefully) a segfault in xkb_x11_keymap_new_from_device() in some 131 unclear situation (bug introduced in 1.0.2). 132 133- Fix keymaps created with xkb_x11_keymap_new_from_device() don't have level 134 names (bug introduced in 0.8.0). 135 136libxkbcommon 1.0.2 - 2020-11-20 137================== 138 139- Fix a bug where a keysym that cannot be resolved in a keymap gets compiled to 140 a garbage keysym. Now it is set to XKB_KEY_NoSymbol instead. 141 142- Improve the speed of xkb_x11_keymap_new_from_device() on repeated calls in the 143 same xkb_context(). 144 145 146libxkbcommon 1.0.1 - 2020-09-11 147================== 148 149- Fix the tool-option-parsing test failing. 150 151- Remove requirement for pytest in the tool-option-parsing test. 152 153- Make the table output of `xkbcli how-to-type` aligned. 154 155- Some portability and test isolation fixes. 156 157libxkbcommon 1.0.0 - 2020-09-05 158================== 159 160Note: this release is API and ABI compatible with previous releases -- the 161major version bump is only an indication of stability. 162 163- Add libxkbregistry as configure-time optional library. libxkbregistry is a C 164 library that lists available XKB models, layouts and variants for a given 165 ruleset. This is a separate library (libxkbregistry.so, pkgconfig file 166 xkbregistry.pc) and aimed at tools that provide a listing of available 167 keyboard layouts to the user. See the Documentation for details on the API. 168 169 Contributed by Peter Hutterer <@who-t.net>. 170 171- Better support custom user configuration: 172 173 * Allow including XKB files from other paths. 174 175 Previously, a 'symbols/us' file in path A would shadow the same file in 176 path B. This is suboptimal, we rarely need to hide the system files - we 177 care mostly about *extending* them. By continuing to check other lookup 178 paths, we make it possible for a XDG_CONFIG_HOME/xkb/symbols/us file to 179 have sections including those from /usr/share/X11/xkb/symbols/us. 180 181 Note that this is not possible for rules files, which need to be manually 182 controlled to get the right bits resolved. 183 184 * Add /etc/xkb as extra lookup path for system data files. 185 186 This completes the usual triplet of configuration locations available for 187 most processes: 188 - vendor-provided data files in /usr/share/X11/xkb 189 - system-specific data files in /etc/xkb 190 - user-specific data files in $XDG_CONFIG_HOME/xkb 191 192 The default lookup order user, system, vendor, just like everything else 193 that uses these conventions. 194 195 For include directives in rules files, the '%E' resolves to that path. 196 197 * Add a new section to the documentation for custom user configuration. 198 199 Contributed by Peter Hutterer <@who-t.net>. 200 201- Add an `xkbcli` command-line utility. 202 203 This tool offers various subcommands for introspection and debugging. 204 Currently the available subcommands are: 205 206 list 207 List available rules, models, layouts, variants and options 208 209 interactive-wayland 210 Interactive debugger for XKB keymaps for Wayland 211 212 interactive-x11 213 Interactive debugger for XKB keymaps for X11 214 215 interactive-evdev 216 Interactive debugger for XKB keymaps for evdev (Linux) 217 218 compile-keymap 219 Compile an XKB keymap 220 221 how-to-type 222 See separate entry below. 223 224 See the manpages for usage information. 225 226 Contributed by Peter Hutterer <@who-t.net>. 227 228- Add `xkb_utf32_to_keysym()` to translate a Unicode codepoint to a keysym. 229 When a special keysym (`XKB_KEY_` constant) for the codepoint exists, it is 230 returned, otherwise the direct encoding is used, if permissible. 231 232 Contributed by Jaroslaw Kubik <@froglogic.com>. 233 234- Add `xkb_keymap_key_get_mods_for_level()` which retrieves sets of modifiers 235 which produce a given shift level in a given key+layout. 236 237 Contributed by Jaroslaw Kubik <@froglogic.com>. 238 239- Add `xkbcli how-to-type` command, which, using `xkb_utf32_to_keysym()` 240 and `xkb_keymap_key_get_mods_for_level()` and other APIs, prints out all 241 the ways to produce a given keysym. 242 243 For example, how to type `?` (codepoint 63) in a us,de keymap? 244 245 $ xkbcli how-to-type --layout us,de 63 | column -ts $'\t' 246 keysym: question (0x3f) 247 KEYCODE KEY NAME LAYOUT# LAYOUT NAME LEVEL# MODIFIERS 248 20 AE11 2 German 2 [ Shift ] 249 20 AE11 2 German 2 [ Shift Lock ] 250 61 AB10 1 English (US) 2 [ Shift ] 251 252- Add a new section to the documentation describing the format of the XKB 253 rules file. 254 255- Search for Compose in $XDG_CONFIG_HOME/XCompose (fallback to 256 ~/.config/XCompose) before trying $HOME/.XCompose. 257 258 Note that libX11 still only searches in $HOME/.XCompose. 259 260 Contributed by Emmanuel Gil Peyrot <@linkmauve.fr>. 261 262- Bump meson requirement to >= 0.49.0. 263 264- Fix build with byacc. 265 266- Fix building X11 tests on PE targets. 267 268 Contributed by Jon Turney <@dronecode.org.uk> 269 270- The tests no longer rely on bash, only Python (which is already used by 271 meson). 272 273- New API: 274 xkb_utf32_to_keysym 275 xkb_keymap_key_get_mods_for_level 276 XKB_KEY_XF86FullScreen 277 278 279libxkbcommon 0.10.0 - 2020-01-18 280=================== 281 282- (security) Fix quadratic complexity in the XKB file parser. See commit 283 message 7c42945e04a2107827a057245298dedc0475cc88 for details. 284 285- Add $XDG_CONFIG_HOME/xkb to the default search path. If $XDG_CONFIG_HOME 286 is not set, $HOME/.config/xkb is used. If $HOME is not set, the path is not 287 added. 288 289 The XDG path is looked up before the existing default search path $HOME/.xkb. 290 291 Contributed by Peter Hutterer <@who-t.net>. 292 293- Add support for include statements in XKB rules files. 294 295 This is a step towards making local XKB customizations more tenable and 296 convenient, without modifying system files. 297 298 You can now include other rules files like this: 299 300 ! include %S/evdev 301 302 Two directives are supported, %H to $HOME and %S for the system-installed 303 rules directory (usually /usr/share/X11/xkb/rules). 304 305 See commit message ca033a29d2ca910fd17b1ae287cb420205bdddc8 and 306 doc/rules-format.txt in the xkbcommon source code for more information. 307 308 Contributed by Peter Hutterer <@who-t.net>. 309 310- Downgrade "Symbol added to modifier map for multiple modifiers" log to a 311 warning. 312 313 This error message was too annoying to be shown by default. When working on 314 keymaps, set `XKB_LOG_LEVEL=debug XKB_LOG_VERBOSITY=10` to see all possible 315 messages. 316 317- Support building on Windows using the meson MSVC backend. 318 319 Contributed by Adrian Perez de Castro <@igalia.com>. 320 321- Fix bug where the merge mode only applied to the first vmod in a 322 `virtual_modifiers` statement. Given 323 324 augment virtual_modifiers NumLock,Alt,LevelThree 325 326 Previously it was incorrectly treated as 327 328 augment virtual_modifiers NumLock; 329 virtual_modifiers Alt; 330 virtual_modifiers LevelThree; 331 332 Now it is treated as 333 334 augment virtual_modifiers NumLock; 335 augment virtual_modifiers Alt; 336 augment virtual_modifiers LevelThree; 337 338- Reject interpret modifier predicate with more than one value. Given 339 340 interpret ISO_Level3_Shift+AnyOf(all,extraneous) { ... }; 341 342 Previously, extraneous (and further) was ignored. Now it's rejected. 343 344- Correctly handle capitalization of the ssharp keysym. 345 346- Speed up and improve the internal `xkeyboard-config` tool. This tool 347 compiles all layout/variant combinations in the xkeyboard-config dataset 348 and reports any issues it finds. 349 350 Contributed by Peter Hutterer <@who-t.net>. 351 352- Speed up "atoms" (string interning). This code goes back at least to X11R1 353 (released 1987). 354 355 356libxkbcommon 0.9.1 - 2019-10-19 357================== 358 359- Fix context creation failing when run in privileged processes as defined by 360 `secure_getenv(3)`, e.g. GDM. 361 362 363libxkbcommon 0.9.0 - 2019-10-19 364================== 365 366- Move ~/.xkb to before XKB_CONFIG_ROOT (the system XKB path, usually 367 /usr/share/X11/xkb) in the default include path. This enables the user 368 to have full control of the keymap definitions, instead of only augmenting 369 them. 370 371- Remove the Autotools build system. Use the meson build system instead. 372 373- Fix invalid names used for levels above 8 when dumping keymaps. Previously, 374 e.g. "Level20" was dumped, but only up to "Level8" is accepted by the 375 parser. Now "20" is dumped. 376 377- Change level references to always be dumped as e.g. "5" instead of "Level5". 378 379 Change group references to always be dumped capitalized e.g. "Group3" instead 380 of "group3". Previously it was inconsistent. 381 382 These changes affect the output of xkb_keymap_get_as_string(). 383 384- Fix several build issues on macOS/Darwin, Solaris, NetBSD, cross compilation. 385 386- Port the interactive-wayland test program to the stable version of xdg-shell. 387 388 389libxkbcommon 0.8.4 - 2019-02-22 390================== 391 392- Fix build of xkbcommon-x11 static library with meson. 393 394- Fix building using meson from the tarball generated by autotools. 395 396 397libxkbcommon 0.8.3 - 2019-02-08 398================== 399 400- Fix build of static libraries with meson. 401 (Future note: xkbcommon-x11 was *not* fixed in this release.) 402 403- New API: 404 XKB_KEY_XF86MonBrightnessCycle 405 XKB_KEY_XF86RotationLockToggle 406 407 408libxkbcommon 0.8.2 - 2018-08-05 409================== 410 411- Fix various problems found with fuzzing (see commit messages for 412 more details): 413 414 - Fix a few NULL-dereferences, out-of-bounds access and undefined behavior 415 in the XKB text format parser. 416 417 418libxkbcommon 0.8.1 - 2018-08-03 419================== 420 421- Fix various problems found in the meson build (see commit messages for more 422 details): 423 424 - Fix compilation on Darwin. 425 426 - Fix compilation of the x11 tests and demos when XCB is installed in a 427 non-standard location. 428 429 - Fix xkbcommon-x11.pc missing the Requires specification. 430 431- Fix various problems found with fuzzing and Coverity (see commit messages for 432 more details): 433 434 - Fix stack overflow in the XKB text format parser when evaluating boolean 435 negation. 436 437 - Fix NULL-dereferences in the XKB text format parser when some unsupported 438 tokens appear (the tokens are still parsed for backward compatibility). 439 440 - Fix NULL-dereference in the XKB text format parser when parsing an 441 xkb_geometry section. 442 443 - Fix an infinite loop in the Compose text format parser on some inputs. 444 445 - Fix an invalid free() when using multiple keysyms. 446 447- Replace the Unicode characters for the leftanglebracket and rightanglebracket 448 keysyms from the deprecated LEFT/RIGHT-POINTING ANGLE BRACKET to 449 MATHEMATICAL LEFT/RIGHT ANGLE BRACKET. 450 451- Reject out-of-range Unicode codepoints in xkb_keysym_to_utf8 and 452 xkb_keysym_to_utf32. 453 454 455libxkbcommon 0.8.0 - 2017-12-15 456================== 457 458- Added xkb_keysym_to_{upper,lower} to perform case-conversion directly on 459 keysyms. This is useful in some odd cases, but working with the Unicode 460 representations should be preferred when possible. 461 462- Added Unicode conversion rules for the signifblank and permille keysyms. 463 464- Fixed a bug in the parsing of XKB key type definitions where the number 465 of levels were determined by the number of level *names*. Keymaps which 466 omit level names were hence miscompiled. 467 468 This regressed in version 0.4.3. Keymaps from xkeyboard-config were not 469 affected since they don't omit level names. 470 471- New API: 472 xkb_keysym_to_upper() 473 xkb_keysym_to_lower() 474 475 476libxkbcommon 0.7.2 - 2017-08-04 477================== 478 479- Added a Meson build system as an alternative to existing autotools build 480 system. 481 482 The intent is to remove the autotools build in one of the next releases. 483 Please try to convert to it and report any problems. 484 485 See http://mesonbuild.com/Quick-guide.html for basic usage, the 486 meson_options.txt for the project-specific configuration options, 487 and the PACKAGING file for more details. 488 489 There are some noteworthy differences compared to the autotools build: 490 491 - Feature auto-detection is not performed. By default, all features are 492 enabled (currently: docs, x11, wayland). The build fails if any of 493 the required dependencies are not available. To disable a feature, 494 pass -Denable-<feature>=false to meson. 495 496 - The libraries are either installed as shared or static, as specified 497 by the -Ddefault_library=shared/static option. With autotools, both 498 versions are installed by default. 499 500 - xorg-util-macros is not used. 501 502 - A parser generator (bison/byacc) is always required - there is no 503 fallback to pre-generated output bundled in the tarball, as there is 504 in autotools. 505 506- Removed Android.mk support. 507 508- Removed the *-uninstalled.pc pkgconfig files. 509 510- Ported the interactive-wayland demo program to v6 of the xdg-shell 511 protocol. 512 513- Added new keysym definitions from xproto. 514 515- New API: 516 XKB_KEY_XF86Keyboard 517 XKB_KEY_XF86WWAN 518 XKB_KEY_XF86RFKill 519 XKB_KEY_XF86AudioPreset 520 521 522libxkbcommon 0.7.1 - 2017-01-18 523================== 524 525- Fixed various reported problems when the current locale is tr_TR.UTF-8. 526 527 The function xkb_keysym_from_name() used to perform case-insensitive 528 string comparisons in a locale-dependent way, but required it to to 529 work as in the C/ASCII locale (the so called "Turkish i problem"). 530 531 The function is now no longer affected by the current locale. 532 533- Fixed compilation in NetBSD. 534 535 536libxkbcommon 0.7.0 - 2016-11-11 537================== 538 539- Added support for different "modes" of calculating consumed modifiers. 540 The existing mode, based on the XKB standard, has proven to be 541 unintuitive in various shortcut implementations. 542 543 A new mode, based on the calculation used by the GTK toolkit, is added. 544 This mode is less eager to declare a modifier as consumed. 545 546- Added a new interactive demo program using the Wayland protocol. 547 See the PACKAGING file for the new (optional) test dependencies. 548 549- Fixed a compilation error on GNU Hurd. 550 551- New API: 552 enum xkb_consumed_mode 553 XKB_CONSUMED_MODE_XKB 554 XKB_CONSUMED_MODE_GTK 555 xkb_state_key_get_consumed_mods2 556 xkb_state_mod_index_is_consumed2 557 558 559libxkbcommon 0.6.1 - 2016-04-08 560================== 561 562- Added LICENSE to distributed files in tarball releases. 563 564- Minor typo fix in xkb_keymap_get_as_string() documentation. 565 566 567libxkbcommon 0.6.0 - 2016-03-16 568================== 569 570- If the XKB_CONFIG_ROOT environment variable is set, it is used as the XKB 571 configuration root instead of the path determined at build time. 572 573- Tests and benchmarks now build correctly on OSX. 574 575- An XKB keymap provides a name for each key it defines. Traditionally, 576 these names are limited to at most 4 characters, and are thus somewhat 577 obscure, but might still be useful (xkbcommon lifts the 4 character limit). 578 579 The new functions xkb_keymap_key_get_name() and xkb_keymap_key_by_name() 580 can be used to get the name of a key or find a key by name. Note that 581 a key may have aliases. 582 583- Documentation improvements. 584 585- New API: 586 xkb_keymap_key_by_name() 587 xkb_keymap_key_get_name() 588 589 590libxkbcommon 0.5.0 - 2014-10-18 591================== 592 593- Added support for Compose/dead keys in a new module (included in 594 libxkbcommon). See the documentation or the 595 xkbcommon/xkbcommon-compose.h header file for more details. 596 597- Improved and reordered some sections of the documentation. 598 599- The doxygen HTML pages were made nicer to read. 600 601- Most tests now run also on non-linux platforms. 602 603- A warning is emitted by default about RMLVO values which are not used 604 during keymap compilation, which are most often a user misconfiguration. 605 For example, "terminate:ctrl_alt_backspace" instead of 606 "terminate:ctrl_alt_bksp". 607 608- Added symbol versioning for libxkbcommon and libxkbcommon-x11. 609 Note: binaries compiled against this and future versions will not be 610 able to link against the previous versions of the library. 611 612- Removed several compatablity symbols from the binary (the API isn't 613 affected). This affects binaries which 614 615 1. Were compiled against a pre-stable (<0.2.0) version of libxkbcommon, and 616 2. Are linked against the this or later version of libxkbcommon. 617 618 Such a scenario is likely to fail already. 619 620- If Xvfb is not available, the x11comp test is now correctly skipped 621 instead of hanging. 622 623- Benchmarks were moved to a separate bench/ directory. 624 625- Build fixes from OpenBSD. 626 627- Fixed a bug where key type entries such as "map[None] = Level2;" were 628 ignored. 629 630- New API: 631 XKB_COMPOSE_* 632 xkb_compose_* 633 634 635libxkbcommon 0.4.3 - 2014-08-19 636================== 637 638- Fixed a bug which caused xkb_x11_keymap_new_from_device() to misrepresent 639 modifiers for some keymaps. 640 641 https://github.com/xkbcommon/libxkbcommon/issues/9 642 643- Fixed a bug which caused xkb_x11_keymap_new_from_device() to ignore XKB 644 PrivateAction's. 645 646- Modifiers are now always fully resolved after xkb_state_update_mask(). 647 Previously the given state components were used as-is, without 648 considering virtual modifier mappings. 649 Note: this only affects non-standard uses of xkb_state_update_mask(). 650 651- Added a test for xkbcommon-x11, "x11comp". The test uses the system's 652 Xvfb server and xkbcomp. If they do not exist or fail, the test is 653 skipped. 654 655- Fixed memory leaks after parse errors in the XKB yacc parser. 656 The fix required changes which are currently incompatible with byacc. 657 658 659libxkbcommon 0.4.2 - 2014-05-15 660================== 661 662- Fixed a bug where explicitly passing "--enable-x11" to ./configure would 663 in fact disable it (regressed in 0.4.1). 664 665- Added @since version annotations to the API documentation for everything 666 introduced after the initial stable release (0.2.0). 667 668- Added a section to the documentation about keysym transformations, and 669 clarified which functions perform a given transformation. 670 671- XKB files which fail to compile during keymap construction can no longer 672 have any effect on the resulting keymap: changes are only applied when 673 the entire compilation succeeds. 674 Note: this was a minor correctness issue inherited from xkbcomp. 675 676- Fix an out-of-bounds array access in src/x11/util.c:adopt_atoms() 677 error-handling code. 678 Note: it seems impossible to trigger in the current code since the input 679 size cannot exceed the required size. 680 681 682libxkbcommon 0.4.1 - 2014-03-27 683================== 684 685- Converted README to markdown and added a Quick Guide to the 686 documentation, which breezes through the most common parts of 687 xkbcommon. 688 689- Added two new functions, xkb_state_key_get_utf{8,32}(). They 690 combine the operations of xkb_state_key_get_syms() and 691 xkb_keysym_to_utf{8,32}(), and provide a nicer interface for it 692 (espcially for multiple-keysyms-per-level). 693 694- The xkb_state_key_get_utf{8,32}() functions now apply Control 695 transformation: when the Control modifier is active, the string 696 is converted to an appropriate control character. 697 This matches the behavior of libX11's XLookupString(3), and 698 required by the XKB specification: 699 https://www.x.org/releases/current/doc/kbproto/xkbproto.html#Interpreting_the_Control_Modifier 700 701 https://bugs.freedesktop.org/show_bug.cgi?id=75892 702 703- The consumed modifiers for a key are now calculated similarly 704 to libX11. The previous behavior caused a bug where Shift would 705 not cancel an active Caps Lock. 706 707- Make xkbcommon-x11 work with the keymap reported by the XQuartz 708 X server. 709 710 https://bugs.freedesktop.org/show_bug.cgi?id=75798 711 712- Reduce memory usage during keymap compilation some more. 713 714- New API: 715 xkb_state_key_get_consumed_mods() 716 xkb_state_key_get_utf8() 717 xkb_state_key_get_utf32() 718 719- Deprecated API: 720 XKB_MAP_COMPILE_PLACEHOLDER, XKB_MAP_NO_FLAGS 721 use XKB_KEYMAP_NO_FLAGS instead. 722 723- Bug fixes. 724 725 726libxkbcommon 0.4.0 - 2014-02-02 727================== 728 729- Add a new add-on library, xkbcommon-x11, to support creating keymaps 730 with the XKB X11 protocol, by querying the X server directly. 731 See the xkbcommon/xkbcommon-x11.h header file for more details. 732 This library requires libxcb-xkb >= 1.10, and is enabled by default. 733 It can be disabled with the --disable-x11 configure switch. 734 Distributions are encouraged to split the necessary files for this 735 library (libxkbcommon-x11.so, xkbcommon-x11.pc, xkbcommon/xkbcommon-x11.h) 736 to a separate package, such that the main package does not depend on 737 X11 libraries. 738 739- Fix the keysym <-> name lookup table to not require huge amounts of 740 relocations. 741 742- Fix a bug in the keysym <-> name lookup, whereby lookup might fail in 743 some rare cases. 744 745- Reduce memory usage during keymap compilation. 746 747- New API: 748 New keysyms from xproto 7.0.25 (German T3 layout keysyms). 749 XKB_MOD_NAME_NUM for the usual NumLock modifier. 750 xkb_x11_* types and functions, XKB_X11_* constants. 751 752 753libxkbcommon 0.3.2 - 2013-11-22 754================== 755 756- Log messages from the library now look like "xkbcommon: ERROR" by 757 default, instead of xkbcomp-like "Error: ". 758 759- Apply capitalization transformation on keysyms in 760 xkb_keysym_get_one_sym(), to match the behavior specified in the XKB 761 specification: 762 https://www.x.org/releases/current/doc/kbproto/xkbproto.html#Interpreting_the_Lock_Modifier 763 764- Support byacc for generating the parser, in addition to Bison. 765 766- New API: 767 XKB_KEY_XF86AudioMicMute keysym from xproto 7.0.24. 768 XKB_KEYSYM_NO_FLAGS 769 XKB_CONTEXT_NO_FLAGS 770 XKB_MAP_COMPILE_NO_FLAGS 771 772- Bug fixes. 773 774 775libxkbcommon 0.3.1 - 2013-06-03 776================== 777 778- Replace the flex scanner with a hand-written one. flex is no longer 779 a build requirement. 780 781- New API: 782 xkb_keymap_min_keycode() 783 xkb_keymap_max_keycode() 784 xkb_keymap_key_for_each() 785 786 787libxkbcommon 0.3.0 - 2013-04-01 788================== 789 790- Allow passing NULL to *_unref() functions; do nothing instead of 791 crashing. 792 793- The functions xkb_keymap_num_levels_for_key() and 794 xkb_keymap_get_syms_by_level() now allow out-of-range values for the 795 'layout' parameter. The functions now wrap the value around the number 796 of layouts instead of failing. 797 798- The function xkb_keysym_get_name() now types unicode keysyms in 799 uppercase and 0-padding, to match the format used by XKeysymToString(). 800 801- Building Linux-specific tests is no longer attempted on non-Linux 802 environments. 803 804- The function xkb_keymap_new_from_names() now accepts a NULL value for 805 the 'names' parameter, instead of failing. This is equivalent to passing 806 a 'struct xkb_rule_names' with all fields set to NULL. 807 808- New API: 809 xkb_keymap_new_from_buffer() 810 811- Bug fixes. 812