Yuichiro Hanada | a36f08b | 2022-04-21 21:57:38 +0900 | [diff] [blame] | 1 | libxkbcommon 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 | |
| 27 | libxkbcommon 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 | |
| 43 | libxkbcommon 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 | |
| 75 | libxkbcommon 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 | |
| 82 | libxkbcommon 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 | |
| 108 | libxkbcommon 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 | |
Haibo Huang | 91f3839 | 2020-11-24 20:52:35 -0800 | [diff] [blame] | 127 | libxkbcommon 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 | |
| 136 | libxkbcommon 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 | |
Haibo Huang | 44a37d7 | 2020-10-28 22:25:54 -0700 | [diff] [blame] | 146 | libxkbcommon 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 | |
Haibo Huang | bffa849 | 2020-09-08 17:10:03 -0700 | [diff] [blame] | 157 | libxkbcommon 1.0.0 - 2020-09-05 |
| 158 | ================== |
| 159 | |
| 160 | Note: this release is API and ABI compatible with previous releases -- the |
| 161 | major 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 | |
| 279 | libxkbcommon 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 | |
| 356 | libxkbcommon 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 | |
| 363 | libxkbcommon 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 | |
| 389 | libxkbcommon 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 | |
| 397 | libxkbcommon 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 | |
| 408 | libxkbcommon 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 | |
| 418 | libxkbcommon 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 | |
| 455 | libxkbcommon 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 | |
| 476 | libxkbcommon 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 | |
| 522 | libxkbcommon 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 | |
| 536 | libxkbcommon 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 | |
| 559 | libxkbcommon 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 | |
| 567 | libxkbcommon 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 | |
| 590 | libxkbcommon 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 | |
| 635 | libxkbcommon 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 | |
| 659 | libxkbcommon 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 | |
| 682 | libxkbcommon 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 | |
| 726 | libxkbcommon 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 | |
| 753 | libxkbcommon 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 | |
| 775 | libxkbcommon 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 | |
| 787 | libxkbcommon 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. |