summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBłażej Szczygieł <spaz16@wp.pl>2015-11-16 14:21:58 +0100
committerShawn Rutledge <shawn.rutledge@theqtcompany.com>2015-12-22 11:29:26 +0000
commitebe08096c94c6af43ee492c8939693a1bcbd893f (patch)
treefce8f2a2c5ebc1b0b03c47877755a1fe5e8028a4 /src
parentf48170b479df359f47af12b03a501d9d0c386e66 (diff)
xcb: Add Xinerama 3rd party source code for static build
Change-Id: I421d0bcf3fd6362ad6e95db5cfcdefd1a9ec096f Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r--src/3rdparty/xcb/README2
-rw-r--r--src/3rdparty/xcb/include/xcb/xinerama.h808
-rw-r--r--src/3rdparty/xcb/libxcb/xinerama.c655
-rw-r--r--src/plugins/platforms/xcb/xcb-static/xcb-static.pro6
4 files changed, 1468 insertions, 3 deletions
diff --git a/src/3rdparty/xcb/README b/src/3rdparty/xcb/README
index 4de7a17409..d7c8eba294 100644
--- a/src/3rdparty/xcb/README
+++ b/src/3rdparty/xcb/README
@@ -1,6 +1,6 @@
Contains the header and sources files from selected xcb libraries:
- libxcb-1.5 together with xcb-proto-1.6 (sync, xfixes, randr sources)
+ libxcb-1.5 together with xcb-proto-1.6 (sync, xfixes, randr, xinerama sources)
# libxkbcommon-x11 requires libxcb-xkb >= 1.10
libxcb-1.10 together with xcb-proto-1.10 (xkb sources)
libxcb-util-image-0.3.9
diff --git a/src/3rdparty/xcb/include/xcb/xinerama.h b/src/3rdparty/xcb/include/xcb/xinerama.h
new file mode 100644
index 0000000000..74da5458d2
--- /dev/null
+++ b/src/3rdparty/xcb/include/xcb/xinerama.h
@@ -0,0 +1,808 @@
+/*
+ * This file generated automatically from xinerama.xml by c_client.py.
+ * Edit at your peril.
+ */
+
+/**
+ * @defgroup XCB_Xinerama_API XCB Xinerama API
+ * @brief Xinerama XCB Protocol Implementation.
+ * @{
+ **/
+
+#ifndef __XINERAMA_H
+#define __XINERAMA_H
+
+#include "xcb.h"
+#include "xproto.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define XCB_XINERAMA_MAJOR_VERSION 1
+#define XCB_XINERAMA_MINOR_VERSION 1
+
+extern xcb_extension_t xcb_xinerama_id;
+
+/**
+ * @brief xcb_xinerama_screen_info_t
+ **/
+typedef struct xcb_xinerama_screen_info_t {
+ int16_t x_org; /**< */
+ int16_t y_org; /**< */
+ uint16_t width; /**< */
+ uint16_t height; /**< */
+} xcb_xinerama_screen_info_t;
+
+/**
+ * @brief xcb_xinerama_screen_info_iterator_t
+ **/
+typedef struct xcb_xinerama_screen_info_iterator_t {
+ xcb_xinerama_screen_info_t *data; /**< */
+ int rem; /**< */
+ int index; /**< */
+} xcb_xinerama_screen_info_iterator_t;
+
+/**
+ * @brief xcb_xinerama_query_version_cookie_t
+ **/
+typedef struct xcb_xinerama_query_version_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_xinerama_query_version_cookie_t;
+
+/** Opcode for xcb_xinerama_query_version. */
+#define XCB_XINERAMA_QUERY_VERSION 0
+
+/**
+ * @brief xcb_xinerama_query_version_request_t
+ **/
+typedef struct xcb_xinerama_query_version_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ uint8_t major; /**< */
+ uint8_t minor; /**< */
+} xcb_xinerama_query_version_request_t;
+
+/**
+ * @brief xcb_xinerama_query_version_reply_t
+ **/
+typedef struct xcb_xinerama_query_version_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint16_t major; /**< */
+ uint16_t minor; /**< */
+} xcb_xinerama_query_version_reply_t;
+
+/**
+ * @brief xcb_xinerama_get_state_cookie_t
+ **/
+typedef struct xcb_xinerama_get_state_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_xinerama_get_state_cookie_t;
+
+/** Opcode for xcb_xinerama_get_state. */
+#define XCB_XINERAMA_GET_STATE 1
+
+/**
+ * @brief xcb_xinerama_get_state_request_t
+ **/
+typedef struct xcb_xinerama_get_state_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_window_t window; /**< */
+} xcb_xinerama_get_state_request_t;
+
+/**
+ * @brief xcb_xinerama_get_state_reply_t
+ **/
+typedef struct xcb_xinerama_get_state_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t state; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ xcb_window_t window; /**< */
+} xcb_xinerama_get_state_reply_t;
+
+/**
+ * @brief xcb_xinerama_get_screen_count_cookie_t
+ **/
+typedef struct xcb_xinerama_get_screen_count_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_xinerama_get_screen_count_cookie_t;
+
+/** Opcode for xcb_xinerama_get_screen_count. */
+#define XCB_XINERAMA_GET_SCREEN_COUNT 2
+
+/**
+ * @brief xcb_xinerama_get_screen_count_request_t
+ **/
+typedef struct xcb_xinerama_get_screen_count_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_window_t window; /**< */
+} xcb_xinerama_get_screen_count_request_t;
+
+/**
+ * @brief xcb_xinerama_get_screen_count_reply_t
+ **/
+typedef struct xcb_xinerama_get_screen_count_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t screen_count; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ xcb_window_t window; /**< */
+} xcb_xinerama_get_screen_count_reply_t;
+
+/**
+ * @brief xcb_xinerama_get_screen_size_cookie_t
+ **/
+typedef struct xcb_xinerama_get_screen_size_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_xinerama_get_screen_size_cookie_t;
+
+/** Opcode for xcb_xinerama_get_screen_size. */
+#define XCB_XINERAMA_GET_SCREEN_SIZE 3
+
+/**
+ * @brief xcb_xinerama_get_screen_size_request_t
+ **/
+typedef struct xcb_xinerama_get_screen_size_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+ xcb_window_t window; /**< */
+ uint32_t screen; /**< */
+} xcb_xinerama_get_screen_size_request_t;
+
+/**
+ * @brief xcb_xinerama_get_screen_size_reply_t
+ **/
+typedef struct xcb_xinerama_get_screen_size_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint32_t width; /**< */
+ uint32_t height; /**< */
+ xcb_window_t window; /**< */
+ uint32_t screen; /**< */
+} xcb_xinerama_get_screen_size_reply_t;
+
+/**
+ * @brief xcb_xinerama_is_active_cookie_t
+ **/
+typedef struct xcb_xinerama_is_active_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_xinerama_is_active_cookie_t;
+
+/** Opcode for xcb_xinerama_is_active. */
+#define XCB_XINERAMA_IS_ACTIVE 4
+
+/**
+ * @brief xcb_xinerama_is_active_request_t
+ **/
+typedef struct xcb_xinerama_is_active_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+} xcb_xinerama_is_active_request_t;
+
+/**
+ * @brief xcb_xinerama_is_active_reply_t
+ **/
+typedef struct xcb_xinerama_is_active_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint32_t state; /**< */
+} xcb_xinerama_is_active_reply_t;
+
+/**
+ * @brief xcb_xinerama_query_screens_cookie_t
+ **/
+typedef struct xcb_xinerama_query_screens_cookie_t {
+ unsigned int sequence; /**< */
+} xcb_xinerama_query_screens_cookie_t;
+
+/** Opcode for xcb_xinerama_query_screens. */
+#define XCB_XINERAMA_QUERY_SCREENS 5
+
+/**
+ * @brief xcb_xinerama_query_screens_request_t
+ **/
+typedef struct xcb_xinerama_query_screens_request_t {
+ uint8_t major_opcode; /**< */
+ uint8_t minor_opcode; /**< */
+ uint16_t length; /**< */
+} xcb_xinerama_query_screens_request_t;
+
+/**
+ * @brief xcb_xinerama_query_screens_reply_t
+ **/
+typedef struct xcb_xinerama_query_screens_reply_t {
+ uint8_t response_type; /**< */
+ uint8_t pad0; /**< */
+ uint16_t sequence; /**< */
+ uint32_t length; /**< */
+ uint32_t number; /**< */
+ uint8_t pad1[20]; /**< */
+} xcb_xinerama_query_screens_reply_t;
+
+/**
+ * Get the next element of the iterator
+ * @param i Pointer to a xcb_xinerama_screen_info_iterator_t
+ *
+ * Get the next element in the iterator. The member rem is
+ * decreased by one. The member data points to the next
+ * element. The member index is increased by sizeof(xcb_xinerama_screen_info_t)
+ */
+
+/*****************************************************************************
+ **
+ ** void xcb_xinerama_screen_info_next
+ **
+ ** @param xcb_xinerama_screen_info_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_xinerama_screen_info_next (xcb_xinerama_screen_info_iterator_t *i /**< */);
+
+/**
+ * Return the iterator pointing to the last element
+ * @param i An xcb_xinerama_screen_info_iterator_t
+ * @return The iterator pointing to the last element
+ *
+ * Set the current element in the iterator to the last element.
+ * The member rem is set to 0. The member data points to the
+ * last element.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_xinerama_screen_info_end
+ **
+ ** @param xcb_xinerama_screen_info_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_xinerama_screen_info_end (xcb_xinerama_screen_info_iterator_t i /**< */);
+
+/**
+ * Delivers a request to the X server
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_query_version_cookie_t xcb_xinerama_query_version
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t major
+ ** @param uint8_t minor
+ ** @returns xcb_xinerama_query_version_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xinerama_query_version_cookie_t
+xcb_xinerama_query_version (xcb_connection_t *c /**< */,
+ uint8_t major /**< */,
+ uint8_t minor /**< */);
+
+/**
+ * Delivers a request to the X server
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_query_version_cookie_t xcb_xinerama_query_version_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t major
+ ** @param uint8_t minor
+ ** @returns xcb_xinerama_query_version_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xinerama_query_version_cookie_t
+xcb_xinerama_query_version_unchecked (xcb_connection_t *c /**< */,
+ uint8_t major /**< */,
+ uint8_t minor /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_xinerama_query_version_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_query_version_reply_t * xcb_xinerama_query_version_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_xinerama_query_version_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_xinerama_query_version_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_xinerama_query_version_reply_t *
+xcb_xinerama_query_version_reply (xcb_connection_t *c /**< */,
+ xcb_xinerama_query_version_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+/**
+ * Delivers a request to the X server
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_get_state_cookie_t xcb_xinerama_get_state
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_xinerama_get_state_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xinerama_get_state_cookie_t
+xcb_xinerama_get_state (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */);
+
+/**
+ * Delivers a request to the X server
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_get_state_cookie_t xcb_xinerama_get_state_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_xinerama_get_state_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xinerama_get_state_cookie_t
+xcb_xinerama_get_state_unchecked (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_xinerama_get_state_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_get_state_reply_t * xcb_xinerama_get_state_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_xinerama_get_state_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_xinerama_get_state_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_xinerama_get_state_reply_t *
+xcb_xinerama_get_state_reply (xcb_connection_t *c /**< */,
+ xcb_xinerama_get_state_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+/**
+ * Delivers a request to the X server
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_get_screen_count_cookie_t xcb_xinerama_get_screen_count
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_xinerama_get_screen_count_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xinerama_get_screen_count_cookie_t
+xcb_xinerama_get_screen_count (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */);
+
+/**
+ * Delivers a request to the X server
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_get_screen_count_cookie_t xcb_xinerama_get_screen_count_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_xinerama_get_screen_count_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xinerama_get_screen_count_cookie_t
+xcb_xinerama_get_screen_count_unchecked (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_xinerama_get_screen_count_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_get_screen_count_reply_t * xcb_xinerama_get_screen_count_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_xinerama_get_screen_count_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_xinerama_get_screen_count_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_xinerama_get_screen_count_reply_t *
+xcb_xinerama_get_screen_count_reply (xcb_connection_t *c /**< */,
+ xcb_xinerama_get_screen_count_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+/**
+ * Delivers a request to the X server
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_get_screen_size_cookie_t xcb_xinerama_get_screen_size
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @param uint32_t screen
+ ** @returns xcb_xinerama_get_screen_size_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xinerama_get_screen_size_cookie_t
+xcb_xinerama_get_screen_size (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */,
+ uint32_t screen /**< */);
+
+/**
+ * Delivers a request to the X server
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_get_screen_size_cookie_t xcb_xinerama_get_screen_size_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @param uint32_t screen
+ ** @returns xcb_xinerama_get_screen_size_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xinerama_get_screen_size_cookie_t
+xcb_xinerama_get_screen_size_unchecked (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */,
+ uint32_t screen /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_xinerama_get_screen_size_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_get_screen_size_reply_t * xcb_xinerama_get_screen_size_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_xinerama_get_screen_size_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_xinerama_get_screen_size_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_xinerama_get_screen_size_reply_t *
+xcb_xinerama_get_screen_size_reply (xcb_connection_t *c /**< */,
+ xcb_xinerama_get_screen_size_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+/**
+ * Delivers a request to the X server
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_is_active_cookie_t xcb_xinerama_is_active
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_xinerama_is_active_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xinerama_is_active_cookie_t
+xcb_xinerama_is_active (xcb_connection_t *c /**< */);
+
+/**
+ * Delivers a request to the X server
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_is_active_cookie_t xcb_xinerama_is_active_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_xinerama_is_active_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xinerama_is_active_cookie_t
+xcb_xinerama_is_active_unchecked (xcb_connection_t *c /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_xinerama_is_active_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_is_active_reply_t * xcb_xinerama_is_active_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_xinerama_is_active_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_xinerama_is_active_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_xinerama_is_active_reply_t *
+xcb_xinerama_is_active_reply (xcb_connection_t *c /**< */,
+ xcb_xinerama_is_active_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+/**
+ * Delivers a request to the X server
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_query_screens_cookie_t xcb_xinerama_query_screens
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_xinerama_query_screens_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xinerama_query_screens_cookie_t
+xcb_xinerama_query_screens (xcb_connection_t *c /**< */);
+
+/**
+ * Delivers a request to the X server
+ * @param c The connection
+ * @return A cookie
+ *
+ * Delivers a request to the X server.
+ *
+ * This form can be used only if the request will cause
+ * a reply to be generated. Any returned error will be
+ * placed in the event queue.
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_query_screens_cookie_t xcb_xinerama_query_screens_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_xinerama_query_screens_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xinerama_query_screens_cookie_t
+xcb_xinerama_query_screens_unchecked (xcb_connection_t *c /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_screen_info_t * xcb_xinerama_query_screens_screen_info
+ **
+ ** @param const xcb_xinerama_query_screens_reply_t *R
+ ** @returns xcb_xinerama_screen_info_t *
+ **
+ *****************************************************************************/
+
+xcb_xinerama_screen_info_t *
+xcb_xinerama_query_screens_screen_info (const xcb_xinerama_query_screens_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** int xcb_xinerama_query_screens_screen_info_length
+ **
+ ** @param const xcb_xinerama_query_screens_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_xinerama_query_screens_screen_info_length (const xcb_xinerama_query_screens_reply_t *R /**< */);
+
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_screen_info_iterator_t xcb_xinerama_query_screens_screen_info_iterator
+ **
+ ** @param const xcb_xinerama_query_screens_reply_t *R
+ ** @returns xcb_xinerama_screen_info_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_xinerama_screen_info_iterator_t
+xcb_xinerama_query_screens_screen_info_iterator (const xcb_xinerama_query_screens_reply_t *R /**< */);
+
+/**
+ * Return the reply
+ * @param c The connection
+ * @param cookie The cookie
+ * @param e The xcb_generic_error_t supplied
+ *
+ * Returns the reply of the request asked by
+ *
+ * The parameter @p e supplied to this function must be NULL if
+ * xcb_xinerama_query_screens_unchecked(). is used.
+ * Otherwise, it stores the error if any.
+ *
+ * The returned value must be freed by the caller using free().
+ */
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_query_screens_reply_t * xcb_xinerama_query_screens_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_xinerama_query_screens_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_xinerama_query_screens_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_xinerama_query_screens_reply_t *
+xcb_xinerama_query_screens_reply (xcb_connection_t *c /**< */,
+ xcb_xinerama_query_screens_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/**
+ * @}
+ */
diff --git a/src/3rdparty/xcb/libxcb/xinerama.c b/src/3rdparty/xcb/libxcb/xinerama.c
new file mode 100644
index 0000000000..05b6b73707
--- /dev/null
+++ b/src/3rdparty/xcb/libxcb/xinerama.c
@@ -0,0 +1,655 @@
+/*
+ * This file generated automatically from xinerama.xml by c_client.py.
+ * Edit at your peril.
+ */
+
+#include <string.h>
+#include <assert.h>
+#include "xcbext.h"
+#include "xinerama.h"
+#include "xproto.h"
+
+xcb_extension_t xcb_xinerama_id = { "XINERAMA", 0 };
+
+
+/*****************************************************************************
+ **
+ ** void xcb_xinerama_screen_info_next
+ **
+ ** @param xcb_xinerama_screen_info_iterator_t *i
+ ** @returns void
+ **
+ *****************************************************************************/
+
+void
+xcb_xinerama_screen_info_next (xcb_xinerama_screen_info_iterator_t *i /**< */)
+{
+ --i->rem;
+ ++i->data;
+ i->index += sizeof(xcb_xinerama_screen_info_t);
+}
+
+
+/*****************************************************************************
+ **
+ ** xcb_generic_iterator_t xcb_xinerama_screen_info_end
+ **
+ ** @param xcb_xinerama_screen_info_iterator_t i
+ ** @returns xcb_generic_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_generic_iterator_t
+xcb_xinerama_screen_info_end (xcb_xinerama_screen_info_iterator_t i /**< */)
+{
+ xcb_generic_iterator_t ret;
+ ret.data = i.data + i.rem;
+ ret.index = i.index + ((char *) ret.data - (char *) i.data);
+ ret.rem = 0;
+ return ret;
+}
+
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_query_version_cookie_t xcb_xinerama_query_version
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t major
+ ** @param uint8_t minor
+ ** @returns xcb_xinerama_query_version_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xinerama_query_version_cookie_t
+xcb_xinerama_query_version (xcb_connection_t *c /**< */,
+ uint8_t major /**< */,
+ uint8_t minor /**< */)
+{
+ static const xcb_protocol_request_t xcb_req = {
+ /* count */ 2,
+ /* ext */ &xcb_xinerama_id,
+ /* opcode */ XCB_XINERAMA_QUERY_VERSION,
+ /* isvoid */ 0
+ };
+
+ struct iovec xcb_parts[4];
+ xcb_xinerama_query_version_cookie_t xcb_ret;
+ xcb_xinerama_query_version_request_t xcb_out;
+
+ xcb_out.major = major;
+ xcb_out.minor = minor;
+
+ xcb_parts[2].iov_base = (char *) &xcb_out;
+ xcb_parts[2].iov_len = sizeof(xcb_out);
+ xcb_parts[3].iov_base = 0;
+ xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
+ xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
+ return xcb_ret;
+}
+
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_query_version_cookie_t xcb_xinerama_query_version_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param uint8_t major
+ ** @param uint8_t minor
+ ** @returns xcb_xinerama_query_version_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xinerama_query_version_cookie_t
+xcb_xinerama_query_version_unchecked (xcb_connection_t *c /**< */,
+ uint8_t major /**< */,
+ uint8_t minor /**< */)
+{
+ static const xcb_protocol_request_t xcb_req = {
+ /* count */ 2,
+ /* ext */ &xcb_xinerama_id,
+ /* opcode */ XCB_XINERAMA_QUERY_VERSION,
+ /* isvoid */ 0
+ };
+
+ struct iovec xcb_parts[4];
+ xcb_xinerama_query_version_cookie_t xcb_ret;
+ xcb_xinerama_query_version_request_t xcb_out;
+
+ xcb_out.major = major;
+ xcb_out.minor = minor;
+
+ xcb_parts[2].iov_base = (char *) &xcb_out;
+ xcb_parts[2].iov_len = sizeof(xcb_out);
+ xcb_parts[3].iov_base = 0;
+ xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
+ xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
+ return xcb_ret;
+}
+
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_query_version_reply_t * xcb_xinerama_query_version_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_xinerama_query_version_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_xinerama_query_version_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_xinerama_query_version_reply_t *
+xcb_xinerama_query_version_reply (xcb_connection_t *c /**< */,
+ xcb_xinerama_query_version_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */)
+{
+ return (xcb_xinerama_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
+}
+
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_get_state_cookie_t xcb_xinerama_get_state
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_xinerama_get_state_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xinerama_get_state_cookie_t
+xcb_xinerama_get_state (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */)
+{
+ static const xcb_protocol_request_t xcb_req = {
+ /* count */ 2,
+ /* ext */ &xcb_xinerama_id,
+ /* opcode */ XCB_XINERAMA_GET_STATE,
+ /* isvoid */ 0
+ };
+
+ struct iovec xcb_parts[4];
+ xcb_xinerama_get_state_cookie_t xcb_ret;
+ xcb_xinerama_get_state_request_t xcb_out;
+
+ xcb_out.window = window;
+
+ xcb_parts[2].iov_base = (char *) &xcb_out;
+ xcb_parts[2].iov_len = sizeof(xcb_out);
+ xcb_parts[3].iov_base = 0;
+ xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
+ xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
+ return xcb_ret;
+}
+
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_get_state_cookie_t xcb_xinerama_get_state_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_xinerama_get_state_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xinerama_get_state_cookie_t
+xcb_xinerama_get_state_unchecked (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */)
+{
+ static const xcb_protocol_request_t xcb_req = {
+ /* count */ 2,
+ /* ext */ &xcb_xinerama_id,
+ /* opcode */ XCB_XINERAMA_GET_STATE,
+ /* isvoid */ 0
+ };
+
+ struct iovec xcb_parts[4];
+ xcb_xinerama_get_state_cookie_t xcb_ret;
+ xcb_xinerama_get_state_request_t xcb_out;
+
+ xcb_out.window = window;
+
+ xcb_parts[2].iov_base = (char *) &xcb_out;
+ xcb_parts[2].iov_len = sizeof(xcb_out);
+ xcb_parts[3].iov_base = 0;
+ xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
+ xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
+ return xcb_ret;
+}
+
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_get_state_reply_t * xcb_xinerama_get_state_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_xinerama_get_state_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_xinerama_get_state_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_xinerama_get_state_reply_t *
+xcb_xinerama_get_state_reply (xcb_connection_t *c /**< */,
+ xcb_xinerama_get_state_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */)
+{
+ return (xcb_xinerama_get_state_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
+}
+
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_get_screen_count_cookie_t xcb_xinerama_get_screen_count
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_xinerama_get_screen_count_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xinerama_get_screen_count_cookie_t
+xcb_xinerama_get_screen_count (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */)
+{
+ static const xcb_protocol_request_t xcb_req = {
+ /* count */ 2,
+ /* ext */ &xcb_xinerama_id,
+ /* opcode */ XCB_XINERAMA_GET_SCREEN_COUNT,
+ /* isvoid */ 0
+ };
+
+ struct iovec xcb_parts[4];
+ xcb_xinerama_get_screen_count_cookie_t xcb_ret;
+ xcb_xinerama_get_screen_count_request_t xcb_out;
+
+ xcb_out.window = window;
+
+ xcb_parts[2].iov_base = (char *) &xcb_out;
+ xcb_parts[2].iov_len = sizeof(xcb_out);
+ xcb_parts[3].iov_base = 0;
+ xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
+ xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
+ return xcb_ret;
+}
+
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_get_screen_count_cookie_t xcb_xinerama_get_screen_count_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @returns xcb_xinerama_get_screen_count_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xinerama_get_screen_count_cookie_t
+xcb_xinerama_get_screen_count_unchecked (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */)
+{
+ static const xcb_protocol_request_t xcb_req = {
+ /* count */ 2,
+ /* ext */ &xcb_xinerama_id,
+ /* opcode */ XCB_XINERAMA_GET_SCREEN_COUNT,
+ /* isvoid */ 0
+ };
+
+ struct iovec xcb_parts[4];
+ xcb_xinerama_get_screen_count_cookie_t xcb_ret;
+ xcb_xinerama_get_screen_count_request_t xcb_out;
+
+ xcb_out.window = window;
+
+ xcb_parts[2].iov_base = (char *) &xcb_out;
+ xcb_parts[2].iov_len = sizeof(xcb_out);
+ xcb_parts[3].iov_base = 0;
+ xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
+ xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
+ return xcb_ret;
+}
+
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_get_screen_count_reply_t * xcb_xinerama_get_screen_count_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_xinerama_get_screen_count_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_xinerama_get_screen_count_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_xinerama_get_screen_count_reply_t *
+xcb_xinerama_get_screen_count_reply (xcb_connection_t *c /**< */,
+ xcb_xinerama_get_screen_count_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */)
+{
+ return (xcb_xinerama_get_screen_count_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
+}
+
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_get_screen_size_cookie_t xcb_xinerama_get_screen_size
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @param uint32_t screen
+ ** @returns xcb_xinerama_get_screen_size_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xinerama_get_screen_size_cookie_t
+xcb_xinerama_get_screen_size (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */,
+ uint32_t screen /**< */)
+{
+ static const xcb_protocol_request_t xcb_req = {
+ /* count */ 2,
+ /* ext */ &xcb_xinerama_id,
+ /* opcode */ XCB_XINERAMA_GET_SCREEN_SIZE,
+ /* isvoid */ 0
+ };
+
+ struct iovec xcb_parts[4];
+ xcb_xinerama_get_screen_size_cookie_t xcb_ret;
+ xcb_xinerama_get_screen_size_request_t xcb_out;
+
+ xcb_out.window = window;
+ xcb_out.screen = screen;
+
+ xcb_parts[2].iov_base = (char *) &xcb_out;
+ xcb_parts[2].iov_len = sizeof(xcb_out);
+ xcb_parts[3].iov_base = 0;
+ xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
+ xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
+ return xcb_ret;
+}
+
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_get_screen_size_cookie_t xcb_xinerama_get_screen_size_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_window_t window
+ ** @param uint32_t screen
+ ** @returns xcb_xinerama_get_screen_size_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xinerama_get_screen_size_cookie_t
+xcb_xinerama_get_screen_size_unchecked (xcb_connection_t *c /**< */,
+ xcb_window_t window /**< */,
+ uint32_t screen /**< */)
+{
+ static const xcb_protocol_request_t xcb_req = {
+ /* count */ 2,
+ /* ext */ &xcb_xinerama_id,
+ /* opcode */ XCB_XINERAMA_GET_SCREEN_SIZE,
+ /* isvoid */ 0
+ };
+
+ struct iovec xcb_parts[4];
+ xcb_xinerama_get_screen_size_cookie_t xcb_ret;
+ xcb_xinerama_get_screen_size_request_t xcb_out;
+
+ xcb_out.window = window;
+ xcb_out.screen = screen;
+
+ xcb_parts[2].iov_base = (char *) &xcb_out;
+ xcb_parts[2].iov_len = sizeof(xcb_out);
+ xcb_parts[3].iov_base = 0;
+ xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
+ xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
+ return xcb_ret;
+}
+
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_get_screen_size_reply_t * xcb_xinerama_get_screen_size_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_xinerama_get_screen_size_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_xinerama_get_screen_size_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_xinerama_get_screen_size_reply_t *
+xcb_xinerama_get_screen_size_reply (xcb_connection_t *c /**< */,
+ xcb_xinerama_get_screen_size_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */)
+{
+ return (xcb_xinerama_get_screen_size_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
+}
+
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_is_active_cookie_t xcb_xinerama_is_active
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_xinerama_is_active_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xinerama_is_active_cookie_t
+xcb_xinerama_is_active (xcb_connection_t *c /**< */)
+{
+ static const xcb_protocol_request_t xcb_req = {
+ /* count */ 2,
+ /* ext */ &xcb_xinerama_id,
+ /* opcode */ XCB_XINERAMA_IS_ACTIVE,
+ /* isvoid */ 0
+ };
+
+ struct iovec xcb_parts[4];
+ xcb_xinerama_is_active_cookie_t xcb_ret;
+ xcb_xinerama_is_active_request_t xcb_out;
+
+
+ xcb_parts[2].iov_base = (char *) &xcb_out;
+ xcb_parts[2].iov_len = sizeof(xcb_out);
+ xcb_parts[3].iov_base = 0;
+ xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
+ xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
+ return xcb_ret;
+}
+
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_is_active_cookie_t xcb_xinerama_is_active_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_xinerama_is_active_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xinerama_is_active_cookie_t
+xcb_xinerama_is_active_unchecked (xcb_connection_t *c /**< */)
+{
+ static const xcb_protocol_request_t xcb_req = {
+ /* count */ 2,
+ /* ext */ &xcb_xinerama_id,
+ /* opcode */ XCB_XINERAMA_IS_ACTIVE,
+ /* isvoid */ 0
+ };
+
+ struct iovec xcb_parts[4];
+ xcb_xinerama_is_active_cookie_t xcb_ret;
+ xcb_xinerama_is_active_request_t xcb_out;
+
+
+ xcb_parts[2].iov_base = (char *) &xcb_out;
+ xcb_parts[2].iov_len = sizeof(xcb_out);
+ xcb_parts[3].iov_base = 0;
+ xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
+ xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
+ return xcb_ret;
+}
+
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_is_active_reply_t * xcb_xinerama_is_active_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_xinerama_is_active_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_xinerama_is_active_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_xinerama_is_active_reply_t *
+xcb_xinerama_is_active_reply (xcb_connection_t *c /**< */,
+ xcb_xinerama_is_active_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */)
+{
+ return (xcb_xinerama_is_active_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
+}
+
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_query_screens_cookie_t xcb_xinerama_query_screens
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_xinerama_query_screens_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xinerama_query_screens_cookie_t
+xcb_xinerama_query_screens (xcb_connection_t *c /**< */)
+{
+ static const xcb_protocol_request_t xcb_req = {
+ /* count */ 2,
+ /* ext */ &xcb_xinerama_id,
+ /* opcode */ XCB_XINERAMA_QUERY_SCREENS,
+ /* isvoid */ 0
+ };
+
+ struct iovec xcb_parts[4];
+ xcb_xinerama_query_screens_cookie_t xcb_ret;
+ xcb_xinerama_query_screens_request_t xcb_out;
+
+
+ xcb_parts[2].iov_base = (char *) &xcb_out;
+ xcb_parts[2].iov_len = sizeof(xcb_out);
+ xcb_parts[3].iov_base = 0;
+ xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
+ xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req);
+ return xcb_ret;
+}
+
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_query_screens_cookie_t xcb_xinerama_query_screens_unchecked
+ **
+ ** @param xcb_connection_t *c
+ ** @returns xcb_xinerama_query_screens_cookie_t
+ **
+ *****************************************************************************/
+
+xcb_xinerama_query_screens_cookie_t
+xcb_xinerama_query_screens_unchecked (xcb_connection_t *c /**< */)
+{
+ static const xcb_protocol_request_t xcb_req = {
+ /* count */ 2,
+ /* ext */ &xcb_xinerama_id,
+ /* opcode */ XCB_XINERAMA_QUERY_SCREENS,
+ /* isvoid */ 0
+ };
+
+ struct iovec xcb_parts[4];
+ xcb_xinerama_query_screens_cookie_t xcb_ret;
+ xcb_xinerama_query_screens_request_t xcb_out;
+
+
+ xcb_parts[2].iov_base = (char *) &xcb_out;
+ xcb_parts[2].iov_len = sizeof(xcb_out);
+ xcb_parts[3].iov_base = 0;
+ xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3;
+ xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req);
+ return xcb_ret;
+}
+
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_screen_info_t * xcb_xinerama_query_screens_screen_info
+ **
+ ** @param const xcb_xinerama_query_screens_reply_t *R
+ ** @returns xcb_xinerama_screen_info_t *
+ **
+ *****************************************************************************/
+
+xcb_xinerama_screen_info_t *
+xcb_xinerama_query_screens_screen_info (const xcb_xinerama_query_screens_reply_t *R /**< */)
+{
+ return (xcb_xinerama_screen_info_t *) (R + 1);
+}
+
+
+/*****************************************************************************
+ **
+ ** int xcb_xinerama_query_screens_screen_info_length
+ **
+ ** @param const xcb_xinerama_query_screens_reply_t *R
+ ** @returns int
+ **
+ *****************************************************************************/
+
+int
+xcb_xinerama_query_screens_screen_info_length (const xcb_xinerama_query_screens_reply_t *R /**< */)
+{
+ return R->number;
+}
+
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_screen_info_iterator_t xcb_xinerama_query_screens_screen_info_iterator
+ **
+ ** @param const xcb_xinerama_query_screens_reply_t *R
+ ** @returns xcb_xinerama_screen_info_iterator_t
+ **
+ *****************************************************************************/
+
+xcb_xinerama_screen_info_iterator_t
+xcb_xinerama_query_screens_screen_info_iterator (const xcb_xinerama_query_screens_reply_t *R /**< */)
+{
+ xcb_xinerama_screen_info_iterator_t i;
+ i.data = (xcb_xinerama_screen_info_t *) (R + 1);
+ i.rem = R->number;
+ i.index = (char *) i.data - (char *) R;
+ return i;
+}
+
+
+/*****************************************************************************
+ **
+ ** xcb_xinerama_query_screens_reply_t * xcb_xinerama_query_screens_reply
+ **
+ ** @param xcb_connection_t *c
+ ** @param xcb_xinerama_query_screens_cookie_t cookie
+ ** @param xcb_generic_error_t **e
+ ** @returns xcb_xinerama_query_screens_reply_t *
+ **
+ *****************************************************************************/
+
+xcb_xinerama_query_screens_reply_t *
+xcb_xinerama_query_screens_reply (xcb_connection_t *c /**< */,
+ xcb_xinerama_query_screens_cookie_t cookie /**< */,
+ xcb_generic_error_t **e /**< */)
+{
+ return (xcb_xinerama_query_screens_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e);
+}
+
diff --git a/src/plugins/platforms/xcb/xcb-static/xcb-static.pro b/src/plugins/platforms/xcb/xcb-static/xcb-static.pro
index d0fe282b14..20481e4834 100644
--- a/src/plugins/platforms/xcb/xcb-static/xcb-static.pro
+++ b/src/plugins/platforms/xcb/xcb-static/xcb-static.pro
@@ -1,7 +1,8 @@
#
# Statically compile in code for
# libxcb-fixes, libxcb-randr, libxcb-shm, libxcb-sync, libxcb-image,
-# libxcb-keysyms, libxcb-icccm, libxcb-renderutil, libxcb-xkb
+# libxcb-keysyms, libxcb-icccm, libxcb-renderutil, libxcb-xkb,
+# libxcb-xinerama
#
CONFIG += static
load(qt_helper_lib)
@@ -28,7 +29,8 @@ SOURCES += \
$$LIBXCB_DIR/sync.c \
$$LIBXCB_DIR/render.c \
$$LIBXCB_DIR/shape.c \
- $$LIBXCB_DIR/xkb.c
+ $$LIBXCB_DIR/xkb.c \
+ $$LIBXCB_DIR/xinerama.c
#
# xcb-util