From 9c1d62cc95ed2579fa25d83901c7a1aa315aa2d3 Mon Sep 17 00:00:00 2001 From: Gatis Paeglis Date: Tue, 2 Apr 2013 17:25:19 +0200 Subject: Add xcb-xkb to 3rd party libs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- src/3rdparty/xcb/libxcb/xkb.patch | 172 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 src/3rdparty/xcb/libxcb/xkb.patch (limited to 'src/3rdparty/xcb/libxcb/xkb.patch') 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; inLevelsPerType, 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); + } -- cgit v1.2.3