diff options
author | Gatis Paeglis <gatis.paeglis@digia.com> | 2013-04-02 17:25:19 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-05-07 22:43:14 +0200 |
commit | 9c1d62cc95ed2579fa25d83901c7a1aa315aa2d3 (patch) | |
tree | e209717db152edc4ab4a10c75e6c2d5caca0b1f2 /src/3rdparty/xcb/libxcb/xkb.patch | |
parent | 2122e731abdb619249df89642c0800640b2fa428 (diff) |
Add xcb-xkb to 3rd party libs
1) -qt-xcb
a) Use xkb from the 3rd party libs. As it is done for the other xcb
dependencies when qt configure with -qt-xcb.
2) -system-xcb (default)
a) If xkb found then use xkb from the system. (Currenly xkb is not
enabled by default when configuring libxcb library).
b) If xkb can't be found on the system then keyboard state will be
updated from X11 core events.
Change-Id: I7c3dbce6daa2cec52067cd5af80f19040233a0db
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Diffstat (limited to 'src/3rdparty/xcb/libxcb/xkb.patch')
-rw-r--r-- | src/3rdparty/xcb/libxcb/xkb.patch | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/src/3rdparty/xcb/libxcb/xkb.patch b/src/3rdparty/xcb/libxcb/xkb.patch new file mode 100644 index 0000000000..054d97467f --- /dev/null +++ b/src/3rdparty/xcb/libxcb/xkb.patch @@ -0,0 +1,172 @@ +diff --git src/3rdparty/xcb/libxcb/xkb.c src/3rdparty/xcb/libxcb/xkb.c +index cd09226..3e07d6d 100644 +--- src/3rdparty/xcb/libxcb/xkb.c ++++ src/3rdparty/xcb/libxcb/xkb.c +@@ -15,6 +15,15 @@ + + xcb_extension_t xcb_xkb_id = { "XKEYBOARD", 0 }; + ++int qt_xcb_sumof(uint8_t *list, int len) ++{ ++ int i, s = 0; ++ for(i=0; i<len; i++) { ++ s += *list; ++ list++; ++ } ++ return s; ++} + + /***************************************************************************** + ** +@@ -9622,7 +9631,7 @@ int + xcb_xkb_get_names_value_list_kt_level_names_length (const xcb_xkb_get_names_reply_t *R /**< */, + const xcb_xkb_get_names_value_list_t *S /**< */) + { +- return xcb_sumof(/* valueList */ S->nLevelsPerType, R->nTypes); ++ return qt_xcb_sumof(/* valueList */ S->nLevelsPerType, R->nTypes); + } + + +@@ -9640,7 +9649,7 @@ xcb_xkb_get_names_value_list_kt_level_names_end (const xcb_xkb_get_names_reply_t + const xcb_xkb_get_names_value_list_t *S /**< */) + { + xcb_generic_iterator_t i; +- i.data = /* valueList */ S->ktLevelNames + xcb_sumof(/* valueList */ S->nLevelsPerType, R->nTypes); ++ i.data = /* valueList */ S->ktLevelNames + qt_xcb_sumof(/* valueList */ S->nLevelsPerType, R->nTypes); + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +@@ -10089,8 +10098,8 @@ xcb_xkb_get_names_value_list_serialize (void **_ + xcb_block_len = 0; + /* ktLevelNames */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->ktLevelNames; +- xcb_block_len += xcb_sumof(_aux->nLevelsPerType, nTypes) * sizeof(xcb_atom_t); +- xcb_parts[xcb_parts_idx].iov_len = xcb_sumof(_aux->nLevelsPerType, nTypes) * sizeof(xcb_atom_t); ++ xcb_block_len += qt_xcb_sumof(_aux->nLevelsPerType, nTypes) * sizeof(xcb_atom_t); ++ xcb_parts[xcb_parts_idx].iov_len = qt_xcb_sumof(_aux->nLevelsPerType, nTypes) * sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } +@@ -10330,7 +10339,7 @@ xcb_xkb_get_names_value_list_unpack (const void *_buffer / + xcb_block_len = 0; + /* ktLevelNames */ + _aux->ktLevelNames = (xcb_atom_t *)xcb_tmp; +- xcb_block_len += xcb_sumof(_aux->nLevelsPerType, nTypes) * sizeof(xcb_atom_t); ++ xcb_block_len += qt_xcb_sumof(_aux->nLevelsPerType, nTypes) * sizeof(xcb_atom_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_atom_t); + } +@@ -10707,7 +10716,7 @@ int + xcb_xkb_set_names_values_kt_level_names_length (const xcb_xkb_set_names_request_t *R /**< */, + const xcb_xkb_set_names_values_t *S /**< */) + { +- return xcb_sumof(/* values */ S->nLevelsPerType, R->nKTLevels); ++ return qt_xcb_sumof(/* values */ S->nLevelsPerType, R->nKTLevels); + } + + +@@ -10725,7 +10734,7 @@ xcb_xkb_set_names_values_kt_level_names_end (const xcb_xkb_set_names_request_t * + const xcb_xkb_set_names_values_t *S /**< */) + { + xcb_generic_iterator_t i; +- i.data = /* values */ S->ktLevelNames + xcb_sumof(/* values */ S->nLevelsPerType, R->nKTLevels); ++ i.data = /* values */ S->ktLevelNames + qt_xcb_sumof(/* values */ S->nLevelsPerType, R->nKTLevels); + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +@@ -11175,8 +11184,8 @@ xcb_xkb_set_names_values_serialize (void **_buffer + xcb_block_len = 0; + /* ktLevelNames */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->ktLevelNames; +- xcb_block_len += xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); +- xcb_parts[xcb_parts_idx].iov_len = xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); ++ xcb_block_len += qt_xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); ++ xcb_parts[xcb_parts_idx].iov_len = qt_xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } +@@ -11417,7 +11426,7 @@ xcb_xkb_set_names_values_unpack (const void *_buffer /**< */, + xcb_block_len = 0; + /* ktLevelNames */ + _aux->ktLevelNames = (xcb_atom_t *)xcb_tmp; +- xcb_block_len += xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); ++ xcb_block_len += qt_xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_atom_t); + } +@@ -16654,7 +16663,7 @@ int + xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) + { +- return xcb_sumof(/* replies */ S->key_names.valueList.nLevelsPerType, /* replies */ S->key_names.nKTLevels); ++ return qt_xcb_sumof(/* replies */ S->key_names.valueList.nLevelsPerType, /* replies */ S->key_names.nKTLevels); + } + + +@@ -16672,7 +16681,7 @@ xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names_end (const x + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) + { + xcb_generic_iterator_t i; +- i.data = /* replies */ S->key_names.valueList.ktLevelNames + xcb_sumof(/* replies */ S->key_names.valueList.nLevelsPerType, /* replies */ S->key_names.nKTLevels); ++ i.data = /* replies */ S->key_names.valueList.ktLevelNames + qt_xcb_sumof(/* replies */ S->key_names.valueList.nLevelsPerType, /* replies */ S->key_names.nKTLevels); + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +@@ -17122,8 +17131,8 @@ xcb_xkb_get_kbd_by_name_replies_key_names_value_list_serialize (void + xcb_block_len = 0; + /* ktLevelNames */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->ktLevelNames; +- xcb_block_len += xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); +- xcb_parts[xcb_parts_idx].iov_len = xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); ++ xcb_block_len += qt_xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); ++ xcb_parts[xcb_parts_idx].iov_len = qt_xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } +@@ -17364,7 +17373,7 @@ xcb_xkb_get_kbd_by_name_replies_key_names_value_list_unpack (const void + xcb_block_len = 0; + /* ktLevelNames */ + _aux->ktLevelNames = (xcb_atom_t *)xcb_tmp; +- xcb_block_len += xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); ++ xcb_block_len += qt_xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_atom_t); + } +@@ -17624,7 +17633,7 @@ int + xcb_xkb_get_kbd_by_name_replies_other_names_value_list_kt_level_names_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) + { +- return xcb_sumof(/* replies */ S->other_names.valueList.nLevelsPerType, /* replies */ S->other_names.nKTLevels); ++ return qt_xcb_sumof(/* replies */ S->other_names.valueList.nLevelsPerType, /* replies */ S->other_names.nKTLevels); + } + + +@@ -17642,7 +17651,7 @@ xcb_xkb_get_kbd_by_name_replies_other_names_value_list_kt_level_names_end (const + const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) + { + xcb_generic_iterator_t i; +- i.data = /* replies */ S->other_names.valueList.ktLevelNames + xcb_sumof(/* replies */ S->other_names.valueList.nLevelsPerType, /* replies */ S->other_names.nKTLevels); ++ i.data = /* replies */ S->other_names.valueList.ktLevelNames + qt_xcb_sumof(/* replies */ S->other_names.valueList.nLevelsPerType, /* replies */ S->other_names.nKTLevels); + i.rem = 0; + i.index = (char *) i.data - (char *) S; + return i; +@@ -18092,8 +18101,8 @@ xcb_xkb_get_kbd_by_name_replies_other_names_value_list_serialize (void + xcb_block_len = 0; + /* ktLevelNames */ + xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->ktLevelNames; +- xcb_block_len += xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); +- xcb_parts[xcb_parts_idx].iov_len = xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); ++ xcb_block_len += qt_xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); ++ xcb_parts[xcb_parts_idx].iov_len = qt_xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); + xcb_parts_idx++; + xcb_align_to = ALIGNOF(xcb_atom_t); + } +@@ -18334,7 +18343,7 @@ xcb_xkb_get_kbd_by_name_replies_other_names_value_list_unpack (const void + xcb_block_len = 0; + /* ktLevelNames */ + _aux->ktLevelNames = (xcb_atom_t *)xcb_tmp; +- xcb_block_len += xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); ++ xcb_block_len += qt_xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_atom_t); + } |