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