Details
-
Bug
-
Resolution: Done
-
P3: Somewhat important
-
4.7.1
-
None
-
None
-
5c3010cf467d437ccfc8a263bed167e979614504
Description
In qkeymapper_x11.cpp at line 1870, there is the following test:
#ifndef QT_NO_XKB
Within the block that this #ifndef encompasses, there is the following:
#ifdef QT_LINUXBASE
// LSB's IsKeypadKey define is wrong - see
// http://bugs.linuxbase.org/show_bug.cgi?id=2521
#undef IsKeypadKey
#define IsKeypadKey(keysym) \
(((KeySym)(keysym) >= XK_KP_Space) && ((KeySym)(keysym) <= XK_KP_Equal))
#undef IsPrivateKeypadKey
#define IsPrivateKeypadKey(keysym) \
(((KeySym)(keysym) >= 0x11000000) && ((KeySym)(keysym) <= 0x1100FFFF))
#endif
The problem here is that if the XKB module is disabled by the build (as happens in some scenarios when trying to build Qt after configuring with the linux-lsb-g++ mkspec against LSB 4.0 packages), the corrections to IsKeypadKey and IsPrivateKeypadKey do not get picked up, but they are still used in the code further below. The result is a compiler error and thus a broken build.