Convert http:// -> https:// where possible
[platform/upstream/libxkbcommon.git] / NEWS
1 libxkbcommon 0.8.0 - 2017-12-15
2 ==================
3
4 - Added xkb_keysym_to_{upper,lower} to perform case-conversion directly on
5   keysyms. This is useful in some odd cases, but working with the Unicode
6   representations should be preferred when possible.
7
8 - Added Unicode conversion rules for the signifblank and permille keysyms.
9
10 - Fixed a bug in the parsing of XKB key type definitions where the number
11   of levels were determined by the number of level *names*. Keymaps which
12   omit level names were hence miscompiled.
13
14   This regressed in version 0.4.3. Keymaps from xkeyboard-config were not
15   affected since they don't omit level names.
16
17 - New API:
18   xkb_keysym_to_upper()
19   xkb_keysym_to_lower()
20
21 libxkbcommon 0.7.2 - 2017-08-04
22 ==================
23
24 - Added a Meson build system as an alternative to existing autotools build
25   system.
26
27   The intent is to remove the autotools build in one of the next releases.
28   Please try to convert to it and report any problems.
29
30   See http://mesonbuild.com/Quick-guide.html for basic usage, the
31   meson_options.txt for the project-specific configuration options,
32   and the PACKAGING file for more details.
33
34   There are some noteworthy differences compared to the autotools build:
35
36   - Feature auto-detection is not performed. By default, all features are
37     enabled (currently: docs, x11, wayland). The build fails if any of
38     the required dependencies are not available. To disable a feature,
39     pass -Denable-<feature>=false to meson.
40
41   - The libraries are either installed as shared or static, as specified
42     by the -Ddefault_library=shared/static option. With autotools, both
43     versions are installed by default.
44
45   - xorg-util-macros is not used.
46
47   - A parser generator (bison/byacc) is always required - there is no
48     fallback to pre-generated output bundled in the tarball, as there is
49     in autotools.
50
51 - Removed Android.mk support.
52
53 - Removed the *-uninstalled.pc pkgconfig files.
54
55 - Ported the interactive-wayland demo program to v6 of the xdg-shell
56   protocol.
57
58 - Added new keysym definitions from xproto.
59
60 - New API:
61   XKB_KEY_XF86Keyboard
62   XKB_KEY_XF86WWAN
63   XKB_KEY_XF86RFKill
64   XKB_KEY_XF86AudioPreset
65
66
67 libxkbcommon 0.7.1 - 2017-01-18
68 ==================
69
70 - Fixed various reported problems when the current locale is tr_TR.UTF-8.
71
72   The function xkb_keysym_from_name() used to perform case-insensitive
73   string comparisons in a locale-dependent way, but required it to to
74   work as in the C/ASCII locale (the so called "Turkish i problem").
75
76   The function is now no longer affected by the current locale.
77
78 - Fixed compilation in NetBSD.
79
80
81 libxkbcommon 0.7.0 - 2016-11-11
82 ==================
83
84 - Added support for different "modes" of calculating consumed modifiers.
85   The existing mode, based on the XKB standard, has proven to be
86   unintuitive in various shortcut implementations.
87
88   A new mode, based on the calculation used by the GTK toolkit, is added.
89   This mode is less eager to declare a modifier as consumed.
90
91 - Added a new interactive demo program using the Wayland protocol.
92   See the PACKAGING file for the new (optional) test dependencies.
93
94 - Fixed a compilation error on GNU Hurd.
95
96 - New API:
97   enum xkb_consumed_mode
98   XKB_CONSUMED_MODE_XKB
99   XKB_CONSUMED_MODE_GTK
100   xkb_state_key_get_consumed_mods2
101   xkb_state_mod_index_is_consumed2
102
103
104 libxkbcommon 0.6.1 - 2016-04-08
105 ==================
106
107 - Added LICENSE to distributed files in tarball releases.
108
109 - Minor typo fix in xkb_keymap_get_as_string() documentation.
110
111
112 libxkbcommon 0.6.0 - 2016-03-16
113 ==================
114
115 - If the XKB_CONFIG_ROOT environment variable is set, it is used as the XKB
116   configuration root instead of the path determined at build time.
117
118 - Tests and benchmarks now build correctly on OSX.
119
120 - An XKB keymap provides a name for each key it defines.  Traditionally,
121   these names are limited to at most 4 characters, and are thus somewhat
122   obscure, but might still be useful (xkbcommon lifts the 4 character limit).
123
124   The new functions xkb_keymap_key_get_name() and xkb_keymap_key_by_name()
125   can be used to get the name of a key or find a key by name.  Note that
126   a key may have aliases.
127
128 - Documentation improvements.
129
130 - New API:
131   xkb_keymap_key_by_name()
132   xkb_keymap_key_get_name()
133
134
135 libxkbcommon 0.5.0 - 2014-10-18
136 ==================
137
138 - Added support for Compose/dead keys in a new module (included in
139   libxkbcommon). See the documentation or the
140   xkbcommon/xkbcommon-compose.h header file for more details.
141
142 - Improved and reordered some sections of the documentation.
143
144 - The doxygen HTML pages were made nicer to read.
145
146 - Most tests now run also on non-linux platforms.
147
148 - A warning is emitted by default about RMLVO values which are not used
149   during keymap compilation, which are most often a user misconfiguration.
150   For example, "terminate:ctrl_alt_backspace" instead of
151   "terminate:ctrl_alt_bksp".
152
153 - Added symbol versioning for libxkbcommon and libxkbcommon-x11.
154   Note: binaries compiled against this and future versions will not be
155   able to link against the previous versions of the library.
156
157 - Removed several compatablity symbols from the binary (the API isn't
158   affected). This affects binaries which
159
160   1. Were compiled against a pre-stable (<0.2.0) version of libxkbcommon, and
161   2. Are linked against the this or later version of libxkbcommon.
162
163   Such a scenario is likely to fail already.
164
165 - If Xvfb is not available, the x11comp test is now correctly skipped
166   instead of hanging.
167
168 - Benchmarks were moved to a separate bench/ directory.
169
170 - Build fixes from OpenBSD.
171
172 - Fixed a bug where key type entries such as "map[None] = Level2;" were
173   ignored.
174
175 - New API:
176   XKB_COMPOSE_*
177   xkb_compose_*
178
179
180 libxkbcommon 0.4.3 - 2014-08-19
181 ==================
182
183 - Fixed a bug which caused xkb_x11_keymap_new_from_device() to misrepresent
184   modifiers for some keymaps.
185
186   https://github.com/xkbcommon/libxkbcommon/issues/9
187
188 - Fixed a bug which caused xkb_x11_keymap_new_from_device() to ignore XKB
189   PrivateAction's.
190
191 - Modifiers are now always fully resolved after xkb_state_update_mask().
192   Previously the given state components were used as-is, without
193   considering virtual modifier mappings.
194   Note: this only affects non-standard uses of xkb_state_update_mask().
195
196 - Added a test for xkbcommon-x11, "x11comp". The test uses the system's
197   Xvfb server and xkbcomp. If they do not exist or fail, the test is
198   skipped.
199
200 - Fixed memory leaks after parse errors in the XKB yacc parser.
201   The fix required changes which are currently incompatible with byacc.
202
203
204 libxkbcommon 0.4.2 - 2014-05-15
205 ==================
206
207 - Fixed a bug where explicitly passing "--enable-x11" to ./configure would
208   in fact disable it (regressed in 0.4.1).
209
210 - Added @since version annotations to the API documentation for everything
211   introduced after the initial stable release (0.2.0).
212
213 - Added a section to the documentation about keysym transformations, and
214   clarified which functions perform a given transformation.
215
216 - XKB files which fail to compile during keymap construction can no longer
217   have any effect on the resulting keymap: changes are only applied when
218   the entire compilation succeeds.
219   Note: this was a minor correctness issue inherited from xkbcomp.
220
221 - Fix an out-of-bounds array access in src/x11/util.c:adopt_atoms()
222   error-handling code.
223   Note: it seems impossible to trigger in the current code since the input
224   size cannot exceed the required size.
225
226
227 libxkbcommon 0.4.1 - 2014-03-27
228 ==================
229
230 - Converted README to markdown and added a Quick Guide to the
231   documentation, which breezes through the most common parts of
232   xkbcommon.
233
234 - Added two new functions, xkb_state_key_get_utf{8,32}(). They
235   combine the operations of xkb_state_key_get_syms() and
236   xkb_keysym_to_utf{8,32}(), and provide a nicer interface for it
237   (espcially for multiple-keysyms-per-level).
238
239 - The xkb_state_key_get_utf{8,32}() functions now apply Control
240   transformation: when the Control modifier is active, the string
241   is converted to an appropriate control character.
242   This matches the behavior of libX11's XLookupString(3), and
243   required by the XKB specification:
244   https://www.x.org/releases/current/doc/kbproto/xkbproto.html#Interpreting_the_Control_Modifier
245
246   https://bugs.freedesktop.org/show_bug.cgi?id=75892
247
248 - The consumed modifiers for a key are now calculated similarly
249   to libX11. The previous behavior caused a bug where Shift would
250   not cancel an active Caps Lock.
251
252 - Make xkbcommon-x11 work with the keymap reported by the XQuartz
253   X server.
254
255   https://bugs.freedesktop.org/show_bug.cgi?id=75798
256
257 - Reduce memory usage during keymap compilation some more.
258
259 - New API:
260   xkb_state_key_get_consumed_mods()
261   xkb_state_key_get_utf8()
262   xkb_state_key_get_utf32()
263
264 - Deprecated API:
265   XKB_MAP_COMPILE_PLACEHOLDER, XKB_MAP_NO_FLAGS
266     use XKB_KEYMAP_NO_FLAGS instead.
267
268 - Bug fixes.
269
270
271 libxkbcommon 0.4.0 - 2014-02-02
272 ==================
273
274 - Add a new add-on library, xkbcommon-x11, to support creating keymaps
275   with the XKB X11 protocol, by querying the X server directly.
276   See the xkbcommon/xkbcommon-x11.h header file for more details.
277   This library requires libxcb-xkb >= 1.10, and is enabled by default.
278   It can be disabled with the --disable-x11 configure switch.
279   Distributions are encouraged to split the necessary files for this
280   library (libxkbcommon-x11.so, xkbcommon-x11.pc, xkbcommon/xkbcommon-x11.h)
281   to a separate package, such that the main package does not depend on
282   X11 libraries.
283
284 - Fix the keysym <-> name lookup table to not require huge amounts of
285   relocations.
286
287 - Fix a bug in the keysym <-> name lookup, whereby lookup might fail in
288   some rare cases.
289
290 - Reduce memory usage during keymap compilation.
291
292 - New API:
293   New keysyms from xproto 7.0.25 (German T3 layout keysyms).
294   XKB_MOD_NAME_NUM for the usual NumLock modifier.
295   xkb_x11_* types and functions, XKB_X11_* constants.
296
297
298 libxkbcommon 0.3.2 - 2013-11-22
299 ==================
300
301 - Log messages from the library now look like "xkbcommon: ERROR" by
302   default, instead of xkbcomp-like "Error:   ".
303
304 - Apply capitalization transformation on keysyms in
305   xkb_keysym_get_one_sym(), to match the behavior specified in the XKB
306   specification:
307   https://www.x.org/releases/current/doc/kbproto/xkbproto.html#Interpreting_the_Lock_Modifier
308
309 - Support byacc for generating the parser, in addition to Bison.
310
311 - New API:
312   XKB_KEY_XF86AudioMicMute keysym from xproto 7.0.24.
313   XKB_KEYSYM_NO_FLAGS
314   XKB_CONTEXT_NO_FLAGS
315   XKB_MAP_COMPILE_NO_FLAGS
316
317 - Bug fixes.
318
319
320 libxkbcommon 0.3.1 - 2013-06-03
321 ==================
322
323 - Replace the flex scanner with a hand-written one. flex is no longer
324   a build requirement.
325
326 - New API:
327   xkb_keymap_min_keycode()
328   xkb_keymap_max_keycode()
329   xkb_keymap_key_for_each()
330
331
332 libxkbcommon 0.3.0 - 2013-04-01
333 ==================
334
335 - Allow passing NULL to *_unref() functions; do nothing instead of
336   crashing.
337
338 - The functions xkb_keymap_num_levels_for_key() and
339   xkb_keymap_get_syms_by_level() now allow out-of-range values for the
340   'layout' parameter. The functions now wrap the value around the number
341   of layouts instead of failing.
342
343 - The function xkb_keysym_get_name() now types unicode keysyms in
344   uppercase and 0-padding, to match the format used by XKeysymToString().
345
346 - Building Linux-specific tests is no longer attempted on non-Linux
347   environments.
348
349 - The function xkb_keymap_new_from_names() now accepts a NULL value for
350   the 'names' parameter, instead of failing. This is equivalent to passing
351   a 'struct xkb_rule_names' with all fields set to NULL.
352
353 - New API:
354   xkb_keymap_new_from_buffer()
355
356 - Bug fixes.