From: Boyuan Yang Date: Fri, 31 Aug 2018 14:11:34 +0000 (-0400) Subject: debian/control: Do not provide with private Qt headers anymore X-Git-Tag: archive/raspbian/5.7.12-2+rpi1^2~114 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=56910940f0ea96a2af4dd7897c9eca9748be92cb;p=dtkcore.git debian/control: Do not provide with private Qt headers anymore --- diff --git a/debian/libdtkcore-dev.install b/debian/libdtkcore-dev.install index 49f1573..c531d4e 100644 --- a/debian/libdtkcore-dev.install +++ b/debian/libdtkcore-dev.install @@ -1,5 +1,4 @@ usr/include -usr/include/*/qt5/QtXcb usr/lib/*/cmake/*/*.cmake usr/lib/*/libdtkcore.so usr/lib/*/pkgconfig/dtkcore.pc diff --git a/debian/patches/0003-Workaround-qt-private-header-problem.patch b/debian/patches/0003-Workaround-qt-private-header-problem.patch deleted file mode 100644 index 41c6c48..0000000 --- a/debian/patches/0003-Workaround-qt-private-header-problem.patch +++ /dev/null @@ -1,9118 +0,0 @@ -From: Boyuan Yang <073plan@gmail.com> -Date: Wed, 13 Dec 2017 20:11:35 +0800 -Subject: Workaround qt private header problem - -This patch provides Qt private headers needed by Deepin's -qt5dxcb-plugin. ---- - libqt5xcbqpa-dev/5.10.1/qxcbbackingstore.h | 85 +++ - libqt5xcbqpa-dev/5.10.1/qxcbclipboard.h | 119 ++++ - libqt5xcbqpa-dev/5.10.1/qxcbconnection.h | 776 ++++++++++++++++++++++++ - libqt5xcbqpa-dev/5.10.1/qxcbcursor.h | 115 ++++ - libqt5xcbqpa-dev/5.10.1/qxcbdrag.h | 180 ++++++ - libqt5xcbqpa-dev/5.10.1/qxcbexport.h | 55 ++ - libqt5xcbqpa-dev/5.10.1/qxcbimage.h | 62 ++ - libqt5xcbqpa-dev/5.10.1/qxcbintegration.h | 152 +++++ - libqt5xcbqpa-dev/5.10.1/qxcbkeyboard.h | 151 +++++ - libqt5xcbqpa-dev/5.10.1/qxcbmime.h | 75 +++ - libqt5xcbqpa-dev/5.10.1/qxcbnativeinterface.h | 161 +++++ - libqt5xcbqpa-dev/5.10.1/qxcbobject.h | 64 ++ - libqt5xcbqpa-dev/5.10.1/qxcbscreen.h | 245 ++++++++ - libqt5xcbqpa-dev/5.10.1/qxcbsessionmanager.h | 96 +++ - libqt5xcbqpa-dev/5.10.1/qxcbsystemtraytracker.h | 85 +++ - libqt5xcbqpa-dev/5.10.1/qxcbvulkaninstance.h | 79 +++ - libqt5xcbqpa-dev/5.10.1/qxcbvulkanwindow.h | 65 ++ - libqt5xcbqpa-dev/5.10.1/qxcbwindow.h | 299 +++++++++ - libqt5xcbqpa-dev/5.10.1/qxcbwmsupport.h | 68 +++ - libqt5xcbqpa-dev/5.10.1/qxcbxsettings.h | 71 +++ - libqt5xcbqpa-dev/5.9.2/qxcbbackingstore.h | 85 +++ - libqt5xcbqpa-dev/5.9.2/qxcbclipboard.h | 119 ++++ - libqt5xcbqpa-dev/5.9.2/qxcbconnection.h | 775 +++++++++++++++++++++++ - libqt5xcbqpa-dev/5.9.2/qxcbcursor.h | 115 ++++ - libqt5xcbqpa-dev/5.9.2/qxcbdrag.h | 177 ++++++ - libqt5xcbqpa-dev/5.9.2/qxcbexport.h | 55 ++ - libqt5xcbqpa-dev/5.9.2/qxcbimage.h | 62 ++ - libqt5xcbqpa-dev/5.9.2/qxcbintegration.h | 145 +++++ - libqt5xcbqpa-dev/5.9.2/qxcbkeyboard.h | 151 +++++ - libqt5xcbqpa-dev/5.9.2/qxcbmime.h | 75 +++ - libqt5xcbqpa-dev/5.9.2/qxcbnativeinterface.h | 152 +++++ - libqt5xcbqpa-dev/5.9.2/qxcbobject.h | 64 ++ - libqt5xcbqpa-dev/5.9.2/qxcbscreen.h | 220 +++++++ - libqt5xcbqpa-dev/5.9.2/qxcbsessionmanager.h | 96 +++ - libqt5xcbqpa-dev/5.9.2/qxcbsystemtraytracker.h | 85 +++ - libqt5xcbqpa-dev/5.9.2/qxcbwindow.h | 297 +++++++++ - libqt5xcbqpa-dev/5.9.2/qxcbwmsupport.h | 68 +++ - libqt5xcbqpa-dev/5.9.2/qxcbxsettings.h | 71 +++ - libqt5xcbqpa-dev/5.9.3 | 1 + - libqt5xcbqpa-dev/5.9.4/qxcbbackingstore.h | 85 +++ - libqt5xcbqpa-dev/5.9.4/qxcbclipboard.h | 119 ++++ - libqt5xcbqpa-dev/5.9.4/qxcbconnection.h | 775 +++++++++++++++++++++++ - libqt5xcbqpa-dev/5.9.4/qxcbcursor.h | 115 ++++ - libqt5xcbqpa-dev/5.9.4/qxcbdrag.h | 181 ++++++ - libqt5xcbqpa-dev/5.9.4/qxcbexport.h | 55 ++ - libqt5xcbqpa-dev/5.9.4/qxcbimage.h | 62 ++ - libqt5xcbqpa-dev/5.9.4/qxcbintegration.h | 145 +++++ - libqt5xcbqpa-dev/5.9.4/qxcbkeyboard.h | 151 +++++ - libqt5xcbqpa-dev/5.9.4/qxcbmime.h | 75 +++ - libqt5xcbqpa-dev/5.9.4/qxcbnativeinterface.h | 152 +++++ - libqt5xcbqpa-dev/5.9.4/qxcbobject.h | 64 ++ - libqt5xcbqpa-dev/5.9.4/qxcbscreen.h | 220 +++++++ - libqt5xcbqpa-dev/5.9.4/qxcbsessionmanager.h | 96 +++ - libqt5xcbqpa-dev/5.9.4/qxcbsystemtraytracker.h | 85 +++ - libqt5xcbqpa-dev/5.9.4/qxcbwindow.h | 297 +++++++++ - libqt5xcbqpa-dev/5.9.4/qxcbwmsupport.h | 68 +++ - libqt5xcbqpa-dev/5.9.4/qxcbxsettings.h | 71 +++ - libqt5xcbqpa-dev/5.9.5 | 1 + - libqt5xcbqpa-dev/5.9.6 | 1 + - 59 files changed, 8634 insertions(+) - create mode 100644 libqt5xcbqpa-dev/5.10.1/qxcbbackingstore.h - create mode 100644 libqt5xcbqpa-dev/5.10.1/qxcbclipboard.h - create mode 100644 libqt5xcbqpa-dev/5.10.1/qxcbconnection.h - create mode 100644 libqt5xcbqpa-dev/5.10.1/qxcbcursor.h - create mode 100644 libqt5xcbqpa-dev/5.10.1/qxcbdrag.h - create mode 100644 libqt5xcbqpa-dev/5.10.1/qxcbexport.h - create mode 100644 libqt5xcbqpa-dev/5.10.1/qxcbimage.h - create mode 100644 libqt5xcbqpa-dev/5.10.1/qxcbintegration.h - create mode 100644 libqt5xcbqpa-dev/5.10.1/qxcbkeyboard.h - create mode 100644 libqt5xcbqpa-dev/5.10.1/qxcbmime.h - create mode 100644 libqt5xcbqpa-dev/5.10.1/qxcbnativeinterface.h - create mode 100644 libqt5xcbqpa-dev/5.10.1/qxcbobject.h - create mode 100644 libqt5xcbqpa-dev/5.10.1/qxcbscreen.h - create mode 100644 libqt5xcbqpa-dev/5.10.1/qxcbsessionmanager.h - create mode 100644 libqt5xcbqpa-dev/5.10.1/qxcbsystemtraytracker.h - create mode 100644 libqt5xcbqpa-dev/5.10.1/qxcbvulkaninstance.h - create mode 100644 libqt5xcbqpa-dev/5.10.1/qxcbvulkanwindow.h - create mode 100644 libqt5xcbqpa-dev/5.10.1/qxcbwindow.h - create mode 100644 libqt5xcbqpa-dev/5.10.1/qxcbwmsupport.h - create mode 100644 libqt5xcbqpa-dev/5.10.1/qxcbxsettings.h - create mode 100644 libqt5xcbqpa-dev/5.9.2/qxcbbackingstore.h - create mode 100644 libqt5xcbqpa-dev/5.9.2/qxcbclipboard.h - create mode 100644 libqt5xcbqpa-dev/5.9.2/qxcbconnection.h - create mode 100644 libqt5xcbqpa-dev/5.9.2/qxcbcursor.h - create mode 100644 libqt5xcbqpa-dev/5.9.2/qxcbdrag.h - create mode 100644 libqt5xcbqpa-dev/5.9.2/qxcbexport.h - create mode 100644 libqt5xcbqpa-dev/5.9.2/qxcbimage.h - create mode 100644 libqt5xcbqpa-dev/5.9.2/qxcbintegration.h - create mode 100644 libqt5xcbqpa-dev/5.9.2/qxcbkeyboard.h - create mode 100644 libqt5xcbqpa-dev/5.9.2/qxcbmime.h - create mode 100644 libqt5xcbqpa-dev/5.9.2/qxcbnativeinterface.h - create mode 100644 libqt5xcbqpa-dev/5.9.2/qxcbobject.h - create mode 100644 libqt5xcbqpa-dev/5.9.2/qxcbscreen.h - create mode 100644 libqt5xcbqpa-dev/5.9.2/qxcbsessionmanager.h - create mode 100644 libqt5xcbqpa-dev/5.9.2/qxcbsystemtraytracker.h - create mode 100644 libqt5xcbqpa-dev/5.9.2/qxcbwindow.h - create mode 100644 libqt5xcbqpa-dev/5.9.2/qxcbwmsupport.h - create mode 100644 libqt5xcbqpa-dev/5.9.2/qxcbxsettings.h - create mode 120000 libqt5xcbqpa-dev/5.9.3 - create mode 100644 libqt5xcbqpa-dev/5.9.4/qxcbbackingstore.h - create mode 100644 libqt5xcbqpa-dev/5.9.4/qxcbclipboard.h - create mode 100644 libqt5xcbqpa-dev/5.9.4/qxcbconnection.h - create mode 100644 libqt5xcbqpa-dev/5.9.4/qxcbcursor.h - create mode 100644 libqt5xcbqpa-dev/5.9.4/qxcbdrag.h - create mode 100644 libqt5xcbqpa-dev/5.9.4/qxcbexport.h - create mode 100644 libqt5xcbqpa-dev/5.9.4/qxcbimage.h - create mode 100644 libqt5xcbqpa-dev/5.9.4/qxcbintegration.h - create mode 100644 libqt5xcbqpa-dev/5.9.4/qxcbkeyboard.h - create mode 100644 libqt5xcbqpa-dev/5.9.4/qxcbmime.h - create mode 100644 libqt5xcbqpa-dev/5.9.4/qxcbnativeinterface.h - create mode 100644 libqt5xcbqpa-dev/5.9.4/qxcbobject.h - create mode 100644 libqt5xcbqpa-dev/5.9.4/qxcbscreen.h - create mode 100644 libqt5xcbqpa-dev/5.9.4/qxcbsessionmanager.h - create mode 100644 libqt5xcbqpa-dev/5.9.4/qxcbsystemtraytracker.h - create mode 100644 libqt5xcbqpa-dev/5.9.4/qxcbwindow.h - create mode 100644 libqt5xcbqpa-dev/5.9.4/qxcbwmsupport.h - create mode 100644 libqt5xcbqpa-dev/5.9.4/qxcbxsettings.h - create mode 120000 libqt5xcbqpa-dev/5.9.5 - create mode 120000 libqt5xcbqpa-dev/5.9.6 - -diff --git a/libqt5xcbqpa-dev/5.10.1/qxcbbackingstore.h b/libqt5xcbqpa-dev/5.10.1/qxcbbackingstore.h -new file mode 100644 -index 0000000..2e8fbfb ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.10.1/qxcbbackingstore.h -@@ -0,0 +1,85 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBBACKINGSTORE_H -+#define QXCBBACKINGSTORE_H -+ -+#include -+#include -+ -+#include -+ -+#include "qxcbobject.h" -+ -+QT_BEGIN_NAMESPACE -+ -+class QXcbShmImage; -+ -+class QXcbBackingStore : public QXcbObject, public QPlatformBackingStore -+{ -+public: -+ QXcbBackingStore(QWindow *window); -+ ~QXcbBackingStore(); -+ -+ QPaintDevice *paintDevice() override; -+ void flush(QWindow *window, const QRegion ®ion, const QPoint &offset) override; -+#ifndef QT_NO_OPENGL -+ void composeAndFlush(QWindow *window, const QRegion ®ion, const QPoint &offset, -+ QPlatformTextureList *textures, -+ bool translucentBackground) override; -+#endif -+ QImage toImage() const override; -+ -+ QPlatformGraphicsBuffer *graphicsBuffer() const override; -+ -+ void resize(const QSize &size, const QRegion &staticContents) override; -+ bool scroll(const QRegion &area, int dx, int dy) override; -+ -+ void beginPaint(const QRegion &) override; -+ void endPaint() override; -+ -+private: -+ QXcbShmImage *m_image; -+ QStack m_paintRegions; -+ QImage m_rgbImage; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.10.1/qxcbclipboard.h b/libqt5xcbqpa-dev/5.10.1/qxcbclipboard.h -new file mode 100644 -index 0000000..bfeae13 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.10.1/qxcbclipboard.h -@@ -0,0 +1,119 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBCLIPBOARD_H -+#define QXCBCLIPBOARD_H -+ -+#include -+#include -+#include -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+#ifndef QT_NO_CLIPBOARD -+ -+class QXcbConnection; -+class QXcbScreen; -+class QXcbClipboardMime; -+ -+class QXcbClipboard : public QXcbObject, public QPlatformClipboard -+{ -+public: -+ QXcbClipboard(QXcbConnection *connection); -+ ~QXcbClipboard(); -+ -+ QMimeData *mimeData(QClipboard::Mode mode) override; -+ void setMimeData(QMimeData *data, QClipboard::Mode mode) override; -+ -+ bool supportsMode(QClipboard::Mode mode) const override; -+ bool ownsMode(QClipboard::Mode mode) const override; -+ -+ QXcbScreen *screen() const; -+ -+ xcb_window_t requestor() const; -+ void setRequestor(xcb_window_t window); -+ -+ xcb_window_t owner() const; -+ -+ void handleSelectionRequest(xcb_selection_request_event_t *event); -+ void handleSelectionClearRequest(xcb_selection_clear_event_t *event); -+ void handleXFixesSelectionRequest(xcb_xfixes_selection_notify_event_t *event); -+ -+ bool clipboardReadProperty(xcb_window_t win, xcb_atom_t property, bool deleteProperty, QByteArray *buffer, int *size, xcb_atom_t *type, int *format); -+ QByteArray clipboardReadIncrementalProperty(xcb_window_t win, xcb_atom_t property, int nbytes, bool nullterm); -+ -+ QByteArray getDataInFormat(xcb_atom_t modeAtom, xcb_atom_t fmtatom); -+ -+ void setProcessIncr(bool process) { m_incr_active = process; } -+ bool processIncr() { return m_incr_active; } -+ void incrTransactionPeeker(xcb_generic_event_t *ge, bool &accepted); -+ -+ xcb_window_t getSelectionOwner(xcb_atom_t atom) const; -+ QByteArray getSelection(xcb_atom_t selection, xcb_atom_t target, xcb_atom_t property, xcb_timestamp_t t = 0); -+ -+private: -+ xcb_generic_event_t *waitForClipboardEvent(xcb_window_t win, int type, int timeout, bool checkManager = false); -+ -+ xcb_atom_t sendTargetsSelection(QMimeData *d, xcb_window_t window, xcb_atom_t property); -+ xcb_atom_t sendSelection(QMimeData *d, xcb_atom_t target, xcb_window_t window, xcb_atom_t property); -+ -+ xcb_atom_t atomForMode(QClipboard::Mode mode) const; -+ QClipboard::Mode modeForAtom(xcb_atom_t atom) const; -+ -+ // Selection and Clipboard -+ QScopedPointer m_xClipboard[2]; -+ QMimeData *m_clientClipboard[2]; -+ xcb_timestamp_t m_timestamp[2]; -+ -+ xcb_window_t m_requestor = XCB_NONE; -+ xcb_window_t m_owner = XCB_NONE; -+ -+ static const int clipboard_timeout; -+ -+ bool m_incr_active = false; -+ bool m_clipboard_closing = false; -+ xcb_timestamp_t m_incr_receive_time = 0; -+}; -+ -+#endif // QT_NO_CLIPBOARD -+ -+QT_END_NAMESPACE -+ -+#endif // QXCBCLIPBOARD_H -diff --git a/libqt5xcbqpa-dev/5.10.1/qxcbconnection.h b/libqt5xcbqpa-dev/5.10.1/qxcbconnection.h -new file mode 100644 -index 0000000..999dc06 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.10.1/qxcbconnection.h -@@ -0,0 +1,776 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBCONNECTION_H -+#define QXCBCONNECTION_H -+ -+#include -+#include -+ -+#include -+#include "qxcbexport.h" -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+ -+// This is needed to make Qt compile together with XKB. xkb.h is using a variable -+// which is called 'explicit', this is a reserved keyword in c++ -+#if QT_CONFIG(xkb) -+#define explicit dont_use_cxx_explicit -+#include -+#undef explicit -+#endif -+ -+#if QT_CONFIG(tabletevent) -+#include -+#endif -+ -+#if QT_CONFIG(xinput2) -+#include -+#ifdef XIScrollClass -+#define XCB_USE_XINPUT21 // XI 2.1 adds smooth scrolling support -+#ifdef XI_TouchBeginMask -+#define XCB_USE_XINPUT22 // XI 2.2 adds multi-point touch support -+#endif -+#endif -+#endif // QT_CONFIG(xinput2) -+ -+struct xcb_randr_get_output_info_reply_t; -+ -+QT_BEGIN_NAMESPACE -+ -+Q_DECLARE_LOGGING_CATEGORY(lcQpaXInput) -+Q_DECLARE_LOGGING_CATEGORY(lcQpaXInputDevices) -+Q_DECLARE_LOGGING_CATEGORY(lcQpaXInputEvents) -+Q_DECLARE_LOGGING_CATEGORY(lcQpaScreen) -+Q_DECLARE_LOGGING_CATEGORY(lcQpaEvents) -+Q_DECLARE_LOGGING_CATEGORY(lcQpaXcb) -+Q_DECLARE_LOGGING_CATEGORY(lcQpaPeeker) -+ -+class QXcbVirtualDesktop; -+class QXcbScreen; -+class QXcbWindow; -+class QXcbDrag; -+class QXcbKeyboard; -+class QXcbClipboard; -+class QXcbWMSupport; -+class QXcbNativeInterface; -+class QXcbSystemTrayTracker; -+class QXcbGlIntegration; -+ -+namespace QXcbAtom { -+ enum Atom { -+ // window-manager <-> client protocols -+ WM_PROTOCOLS, -+ WM_DELETE_WINDOW, -+ WM_TAKE_FOCUS, -+ _NET_WM_PING, -+ _NET_WM_CONTEXT_HELP, -+ _NET_WM_SYNC_REQUEST, -+ _NET_WM_SYNC_REQUEST_COUNTER, -+ MANAGER, // System tray notification -+ _NET_SYSTEM_TRAY_OPCODE, // System tray operation -+ -+ // ICCCM window state -+ WM_STATE, -+ WM_CHANGE_STATE, -+ WM_CLASS, -+ WM_NAME, -+ -+ // Session management -+ WM_CLIENT_LEADER, -+ WM_WINDOW_ROLE, -+ SM_CLIENT_ID, -+ -+ // Clipboard -+ CLIPBOARD, -+ INCR, -+ TARGETS, -+ MULTIPLE, -+ TIMESTAMP, -+ SAVE_TARGETS, -+ CLIP_TEMPORARY, -+ _QT_SELECTION, -+ _QT_CLIPBOARD_SENTINEL, -+ _QT_SELECTION_SENTINEL, -+ CLIPBOARD_MANAGER, -+ -+ RESOURCE_MANAGER, -+ -+ _XSETROOT_ID, -+ -+ _QT_SCROLL_DONE, -+ _QT_INPUT_ENCODING, -+ -+ // Qt/XCB specific -+ _QT_CLOSE_CONNECTION, -+ -+ _MOTIF_WM_HINTS, -+ -+ DTWM_IS_RUNNING, -+ ENLIGHTENMENT_DESKTOP, -+ _DT_SAVE_MODE, -+ _SGI_DESKS_MANAGER, -+ -+ // EWMH (aka NETWM) -+ _NET_SUPPORTED, -+ _NET_VIRTUAL_ROOTS, -+ _NET_WORKAREA, -+ -+ _NET_MOVERESIZE_WINDOW, -+ _NET_WM_MOVERESIZE, -+ -+ _NET_WM_NAME, -+ _NET_WM_ICON_NAME, -+ _NET_WM_ICON, -+ -+ _NET_WM_PID, -+ -+ _NET_WM_WINDOW_OPACITY, -+ -+ _NET_WM_STATE, -+ _NET_WM_STATE_ABOVE, -+ _NET_WM_STATE_BELOW, -+ _NET_WM_STATE_FULLSCREEN, -+ _NET_WM_STATE_MAXIMIZED_HORZ, -+ _NET_WM_STATE_MAXIMIZED_VERT, -+ _NET_WM_STATE_MODAL, -+ _NET_WM_STATE_STAYS_ON_TOP, -+ _NET_WM_STATE_DEMANDS_ATTENTION, -+ -+ _NET_WM_USER_TIME, -+ _NET_WM_USER_TIME_WINDOW, -+ _NET_WM_FULL_PLACEMENT, -+ -+ _NET_WM_WINDOW_TYPE, -+ _NET_WM_WINDOW_TYPE_DESKTOP, -+ _NET_WM_WINDOW_TYPE_DOCK, -+ _NET_WM_WINDOW_TYPE_TOOLBAR, -+ _NET_WM_WINDOW_TYPE_MENU, -+ _NET_WM_WINDOW_TYPE_UTILITY, -+ _NET_WM_WINDOW_TYPE_SPLASH, -+ _NET_WM_WINDOW_TYPE_DIALOG, -+ _NET_WM_WINDOW_TYPE_DROPDOWN_MENU, -+ _NET_WM_WINDOW_TYPE_POPUP_MENU, -+ _NET_WM_WINDOW_TYPE_TOOLTIP, -+ _NET_WM_WINDOW_TYPE_NOTIFICATION, -+ _NET_WM_WINDOW_TYPE_COMBO, -+ _NET_WM_WINDOW_TYPE_DND, -+ _NET_WM_WINDOW_TYPE_NORMAL, -+ _KDE_NET_WM_WINDOW_TYPE_OVERRIDE, -+ -+ _KDE_NET_WM_FRAME_STRUT, -+ _NET_FRAME_EXTENTS, -+ -+ _NET_STARTUP_INFO, -+ _NET_STARTUP_INFO_BEGIN, -+ -+ _NET_SUPPORTING_WM_CHECK, -+ -+ _NET_WM_CM_S0, -+ -+ _NET_SYSTEM_TRAY_VISUAL, -+ -+ _NET_ACTIVE_WINDOW, -+ -+ // Property formats -+ TEXT, -+ UTF8_STRING, -+ CARDINAL, -+ -+ // Xdnd -+ XdndEnter, -+ XdndPosition, -+ XdndStatus, -+ XdndLeave, -+ XdndDrop, -+ XdndFinished, -+ XdndTypelist, -+ XdndActionList, -+ -+ XdndSelection, -+ -+ XdndAware, -+ XdndProxy, -+ -+ XdndActionCopy, -+ XdndActionLink, -+ XdndActionMove, -+ XdndActionPrivate, -+ -+ // Motif DND -+ _MOTIF_DRAG_AND_DROP_MESSAGE, -+ _MOTIF_DRAG_INITIATOR_INFO, -+ _MOTIF_DRAG_RECEIVER_INFO, -+ _MOTIF_DRAG_WINDOW, -+ _MOTIF_DRAG_TARGETS, -+ -+ XmTRANSFER_SUCCESS, -+ XmTRANSFER_FAILURE, -+ -+ // Xkb -+ _XKB_RULES_NAMES, -+ -+ // XEMBED -+ _XEMBED, -+ _XEMBED_INFO, -+ -+ // XInput2 -+ ButtonLeft, -+ ButtonMiddle, -+ ButtonRight, -+ ButtonWheelUp, -+ ButtonWheelDown, -+ ButtonHorizWheelLeft, -+ ButtonHorizWheelRight, -+ AbsMTPositionX, -+ AbsMTPositionY, -+ AbsMTTouchMajor, -+ AbsMTTouchMinor, -+ AbsMTOrientation, -+ AbsMTPressure, -+ AbsMTTrackingID, -+ MaxContacts, -+ RelX, -+ RelY, -+ // XInput2 tablet -+ AbsX, -+ AbsY, -+ AbsPressure, -+ AbsTiltX, -+ AbsTiltY, -+ AbsWheel, -+ AbsDistance, -+ WacomSerialIDs, -+ INTEGER, -+ RelHorizWheel, -+ RelVertWheel, -+ RelHorizScroll, -+ RelVertScroll, -+ -+ _XSETTINGS_SETTINGS, -+ -+ _COMPIZ_DECOR_PENDING, -+ _COMPIZ_DECOR_REQUEST, -+ _COMPIZ_DECOR_DELETE_PIXMAP, -+ _COMPIZ_TOOLKIT_ACTION, -+ _GTK_LOAD_ICONTHEMES, -+ -+ NPredefinedAtoms, -+ -+ _QT_SETTINGS_TIMESTAMP = NPredefinedAtoms, -+ NAtoms -+ }; -+} -+ -+typedef QVarLengthArray QXcbEventArray; -+ -+class QXcbConnection; -+class QXcbEventReader : public QThread -+{ -+ Q_OBJECT -+public: -+ QXcbEventReader(QXcbConnection *connection); -+ -+ void run() override; -+ -+ QXcbEventArray *lock(); -+ void unlock(); -+ -+ void start(); -+ -+ void registerEventDispatcher(QAbstractEventDispatcher *dispatcher); -+ -+signals: -+ void eventPending(); -+ -+private slots: -+ void registerForEvents(); -+ -+private: -+ void addEvent(xcb_generic_event_t *event); -+ -+ QMutex m_mutex; -+ QXcbEventArray m_events; -+ QXcbConnection *m_connection; -+}; -+ -+class QXcbWindowEventListener -+{ -+public: -+ virtual ~QXcbWindowEventListener() {} -+ virtual bool handleGenericEvent(xcb_generic_event_t *, long *) { return false; } -+ -+ virtual void handleExposeEvent(const xcb_expose_event_t *) {} -+ virtual void handleClientMessageEvent(const xcb_client_message_event_t *) {} -+ virtual void handleConfigureNotifyEvent(const xcb_configure_notify_event_t *) {} -+ virtual void handleMapNotifyEvent(const xcb_map_notify_event_t *) {} -+ virtual void handleUnmapNotifyEvent(const xcb_unmap_notify_event_t *) {} -+ virtual void handleDestroyNotifyEvent(const xcb_destroy_notify_event_t *) {} -+ virtual void handleButtonPressEvent(const xcb_button_press_event_t *) {} -+ virtual void handleButtonReleaseEvent(const xcb_button_release_event_t *) {} -+ virtual void handleMotionNotifyEvent(const xcb_motion_notify_event_t *) {} -+ virtual void handleEnterNotifyEvent(const xcb_enter_notify_event_t *) {} -+ virtual void handleLeaveNotifyEvent(const xcb_leave_notify_event_t *) {} -+ virtual void handleFocusInEvent(const xcb_focus_in_event_t *) {} -+ virtual void handleFocusOutEvent(const xcb_focus_out_event_t *) {} -+ virtual void handlePropertyNotifyEvent(const xcb_property_notify_event_t *) {} -+#if QT_CONFIG(xinput2) -+ virtual void handleXIMouseEvent(xcb_ge_event_t *, Qt::MouseEventSource = Qt::MouseEventNotSynthesized) {} -+ virtual void handleXIEnterLeave(xcb_ge_event_t *) {} -+#endif -+ virtual QXcbWindow *toWindow() { return 0; } -+}; -+ -+typedef QHash WindowMapper; -+ -+class QXcbSyncWindowRequest : public QEvent -+{ -+public: -+ QXcbSyncWindowRequest(QXcbWindow *w) : QEvent(QEvent::Type(QEvent::User + 1)), m_window(w) { } -+ -+ QXcbWindow *window() const { return m_window; } -+ void invalidate(); -+ -+private: -+ QXcbWindow *m_window; -+}; -+ -+class QAbstractEventDispatcher; -+class Q_XCB_EXPORT QXcbConnection : public QObject -+{ -+ Q_OBJECT -+public: -+ QXcbConnection(QXcbNativeInterface *nativeInterface, bool canGrabServer, xcb_visualid_t defaultVisualId, const char *displayName = 0); -+ ~QXcbConnection(); -+ -+ QXcbConnection *connection() const { return const_cast(this); } -+ bool isConnected() const; -+ -+ const QList &virtualDesktops() const { return m_virtualDesktops; } -+ const QList &screens() const { return m_screens; } -+ int primaryScreenNumber() const { return m_primaryScreenNumber; } -+ QXcbVirtualDesktop *primaryVirtualDesktop() const { return m_virtualDesktops.value(m_primaryScreenNumber); } -+ QXcbScreen *primaryScreen() const; -+ -+ inline xcb_atom_t atom(QXcbAtom::Atom atom) const { return m_allAtoms[atom]; } -+ QXcbAtom::Atom qatom(xcb_atom_t atom) const; -+ xcb_atom_t internAtom(const char *name); -+ QByteArray atomName(xcb_atom_t atom); -+ -+ const char *displayName() const { return m_displayName.constData(); } -+ xcb_connection_t *xcb_connection() const { return m_connection; } -+ const xcb_setup_t *setup() const { return m_setup; } -+ const xcb_format_t *formatForDepth(uint8_t depth) const; -+ -+ QXcbKeyboard *keyboard() const { return m_keyboard; } -+ -+#ifndef QT_NO_CLIPBOARD -+ QXcbClipboard *clipboard() const { return m_clipboard; } -+#endif -+#ifndef QT_NO_DRAGANDDROP -+ QXcbDrag *drag() const { return m_drag; } -+#endif -+ -+ QXcbWMSupport *wmSupport() const { return m_wmSupport.data(); } -+ xcb_window_t rootWindow(); -+ xcb_window_t clientLeader(); -+ -+ bool hasDefaultVisualId() const { return m_defaultVisualId != UINT_MAX; } -+ xcb_visualid_t defaultVisualId() const { return m_defaultVisualId; } -+ -+#if QT_CONFIG(xcb_xlib) -+ void *xlib_display() const; -+ void *createVisualInfoForDefaultVisualId() const; -+#endif -+ void sync(); -+ -+ void handleXcbError(xcb_generic_error_t *error); -+ void handleXcbEvent(xcb_generic_event_t *event); -+ void printXcbEvent(const QLoggingCategory &log, const char *message, -+ xcb_generic_event_t *event) const; -+ -+ void addWindowEventListener(xcb_window_t id, QXcbWindowEventListener *eventListener); -+ void removeWindowEventListener(xcb_window_t id); -+ QXcbWindowEventListener *windowEventListenerFromId(xcb_window_t id); -+ QXcbWindow *platformWindowFromId(xcb_window_t id); -+ -+ template -+ inline xcb_generic_event_t *checkEvent(T &checker); -+ -+ typedef bool (*PeekFunc)(QXcbConnection *, xcb_generic_event_t *); -+ void addPeekFunc(PeekFunc f); -+ -+ // Peek at all queued events -+ qint32 generatePeekerId(); -+ bool removePeekerId(qint32 peekerId); -+ enum PeekOption { PeekDefault = 0, PeekFromCachedIndex = 1 }; // see qx11info_x11.h -+ Q_DECLARE_FLAGS(PeekOptions, PeekOption) -+ typedef bool (*PeekerCallback)(xcb_generic_event_t *event, void *peekerData); -+ bool peekEventQueue(PeekerCallback peeker, void *peekerData = nullptr, -+ PeekOptions option = PeekDefault, qint32 peekerId = -1); -+ -+ inline xcb_timestamp_t time() const { return m_time; } -+ inline void setTime(xcb_timestamp_t t) { if (t > m_time) m_time = t; } -+ -+ inline xcb_timestamp_t netWmUserTime() const { return m_netWmUserTime; } -+ inline void setNetWmUserTime(xcb_timestamp_t t) { if (t > m_netWmUserTime) m_netWmUserTime = t; } -+ -+ bool hasXFixes() const { return has_xfixes; } -+ bool hasXShape() const { return has_shape_extension; } -+ bool hasXRandr() const { return has_randr_extension; } -+ bool hasInputShape() const { return has_input_shape; } -+ bool hasXKB() const { return has_xkb; } -+ bool hasXRender() const { return has_render_extension; } -+ bool hasXInput2() const { return m_xi2Enabled; } -+ -+ bool threadedEventHandling() const { return m_reader->isRunning(); } -+ -+ xcb_timestamp_t getTimestamp(); -+ xcb_window_t getSelectionOwner(xcb_atom_t atom) const; -+ xcb_window_t getQtSelectionOwner(); -+ -+ void setButtonState(Qt::MouseButton button, bool down) { m_buttonState.setFlag(button, down); } -+ Qt::MouseButtons buttonState() const { return m_buttonState; } -+ Qt::MouseButton translateMouseButton(xcb_button_t s); -+ -+ QXcbWindow *focusWindow() const { return m_focusWindow; } -+ void setFocusWindow(QWindow *); -+ QXcbWindow *mouseGrabber() const { return m_mouseGrabber; } -+ void setMouseGrabber(QXcbWindow *); -+ QXcbWindow *mousePressWindow() const { return m_mousePressWindow; } -+ void setMousePressWindow(QXcbWindow *); -+ -+ QByteArray startupId() const { return m_startupId; } -+ void setStartupId(const QByteArray &nextId) { m_startupId = nextId; } -+ void clearStartupId() { m_startupId.clear(); } -+ -+ void grabServer(); -+ void ungrabServer(); -+ -+ QXcbNativeInterface *nativeInterface() const { return m_nativeInterface; } -+ -+ QXcbSystemTrayTracker *systemTrayTracker() const; -+ static bool xEmbedSystemTrayAvailable(); -+ static bool xEmbedSystemTrayVisualHasAlphaChannel(); -+ -+#if QT_CONFIG(xinput2) -+ void xi2SelectStateEvents(); -+ void xi2SelectDeviceEvents(xcb_window_t window); -+ void xi2SelectDeviceEventsCompatibility(xcb_window_t window); -+ bool xi2SetMouseGrabEnabled(xcb_window_t w, bool grab); -+ bool xi2MouseEventsDisabled() const; -+ bool isAtLeastXI21() const { return m_xi2Enabled && m_xi2Minor >= 1; } -+ bool isAtLeastXI22() const { return m_xi2Enabled && m_xi2Minor >= 2; } -+ Qt::MouseButton xiToQtMouseButton(uint32_t b); -+#ifdef XCB_USE_XINPUT21 -+ void xi2UpdateScrollingDevices(); -+#endif -+#ifdef XCB_USE_XINPUT22 -+ bool startSystemResizeForTouchBegin(xcb_window_t window, const QPoint &point, Qt::Corner corner); -+ bool isTouchScreen(int id); -+#endif -+#endif -+ QXcbEventReader *eventReader() const { return m_reader; } -+ -+ bool canGrab() const { return m_canGrabServer; } -+ -+ QXcbGlIntegration *glIntegration() const { return m_glIntegration; } -+ -+protected: -+ bool event(QEvent *e) override; -+ -+public slots: -+ void flush() { xcb_flush(m_connection); } -+ -+private slots: -+ void processXcbEvents(); -+ -+private: -+ void initializeAllAtoms(); -+ void sendConnectionEvent(QXcbAtom::Atom atom, uint id = 0); -+ void initializeXFixes(); -+ void initializeXRender(); -+ void initializeXRandr(); -+ void initializeXinerama(); -+ void initializeXShape(); -+ void initializeXKB(); -+ void handleClientMessageEvent(const xcb_client_message_event_t *event); -+ QXcbScreen* findScreenForCrtc(xcb_window_t rootWindow, xcb_randr_crtc_t crtc) const; -+ QXcbScreen* findScreenForOutput(xcb_window_t rootWindow, xcb_randr_output_t output) const; -+ QXcbVirtualDesktop* virtualDesktopForRootWindow(xcb_window_t rootWindow) const; -+ void updateScreens(const xcb_randr_notify_event_t *event); -+ bool checkOutputIsPrimary(xcb_window_t rootWindow, xcb_randr_output_t output); -+ void updateScreen(QXcbScreen *screen, const xcb_randr_output_change_t &outputChange); -+ QXcbScreen *createScreen(QXcbVirtualDesktop *virtualDesktop, -+ const xcb_randr_output_change_t &outputChange, -+ xcb_randr_get_output_info_reply_t *outputInfo); -+ void destroyScreen(QXcbScreen *screen); -+ void initializeScreens(); -+ bool compressEvent(xcb_generic_event_t *event, int currentIndex, QXcbEventArray *eventqueue) const; -+ -+ bool m_xi2Enabled = false; -+#if QT_CONFIG(xinput2) -+ int m_xi2Minor = -1; -+ void initializeXInput2(); -+ void xi2SetupDevice(void *info, bool removeExisting = true); -+ void xi2SetupDevices(); -+ struct TouchDeviceData { -+ QTouchDevice *qtTouchDevice = nullptr; -+ QHash touchPoints; -+ QHash pointPressedPosition; // in screen coordinates where each point was pressed -+ struct ValuatorClassInfo { -+ double min = 0; -+ double max = 0; -+ int number = -1; -+ QXcbAtom::Atom label; -+ }; -+ QVector valuatorInfo; -+ -+ // Stuff that is relevant only for touchpads -+ QPointF firstPressedPosition; // in screen coordinates where the first point was pressed -+ QPointF firstPressedNormalPosition; // device coordinates (0 to 1, 0 to 1) where the first point was pressed -+ QSizeF size; // device size in mm -+ bool providesTouchOrientation = false; -+ }; -+ TouchDeviceData *populateTouchDevices(void *info); -+ TouchDeviceData *touchDeviceForId(int id); -+ void xi2HandleEvent(xcb_ge_event_t *event); -+ void xi2HandleHierarchyEvent(void *event); -+ void xi2HandleDeviceChangedEvent(void *event); -+ int m_xiOpCode, m_xiEventBase, m_xiErrorBase; -+#ifdef XCB_USE_XINPUT22 -+ void xi2ProcessTouch(void *xiDevEvent, QXcbWindow *platformWindow); -+#endif // XCB_USE_XINPUT22 -+#if QT_CONFIG(tabletevent) -+ struct TabletData { -+ int deviceId = 0; -+ QTabletEvent::PointerType pointerType = QTabletEvent::UnknownPointer; -+ QTabletEvent::TabletDevice tool = QTabletEvent::Stylus; -+ Qt::MouseButtons buttons = 0; -+ qint64 serialId = 0; -+ bool inProximity = false; -+ struct ValuatorClassInfo { -+ double minVal = 0; -+ double maxVal = 0; -+ double curVal = 0; -+ int number = -1; -+ }; -+ QHash valuatorInfo; -+ }; -+ friend class QTypeInfo; -+ friend class QTypeInfo; -+ bool xi2HandleTabletEvent(const void *event, TabletData *tabletData); -+ void xi2ReportTabletEvent(const void *event, TabletData *tabletData); -+ QVector m_tabletData; -+ TabletData *tabletDataForDevice(int id); -+#endif // QT_CONFIG(tabletevent) -+ struct ScrollingDevice { -+ int deviceId = 0; -+ int verticalIndex = 0; -+ int horizontalIndex = 0; -+ double verticalIncrement = 0; -+ double horizontalIncrement = 0; -+ Qt::Orientations orientations = 0; -+ Qt::Orientations legacyOrientations = 0; -+ QPointF lastScrollPosition; -+ }; -+ QHash m_scrollingDevices; -+#ifdef XCB_USE_XINPUT21 -+ void xi2HandleScrollEvent(void *event, ScrollingDevice &scrollingDevice); -+ void xi2UpdateScrollingDevice(ScrollingDevice &scrollingDevice); -+ ScrollingDevice *scrollingDeviceForId(int id); -+#endif -+ -+ static bool xi2GetValuatorValueIfSet(const void *event, int valuatorNum, double *value); -+ static void xi2PrepareXIGenericDeviceEvent(xcb_ge_event_t *event); -+#endif -+ -+ xcb_connection_t *m_connection = nullptr; -+ const xcb_setup_t *m_setup = nullptr; -+ const bool m_canGrabServer; -+ const xcb_visualid_t m_defaultVisualId; -+ -+ QList m_virtualDesktops; -+ QList m_screens; -+ int m_primaryScreenNumber = 0; -+ -+ xcb_atom_t m_allAtoms[QXcbAtom::NAtoms]; -+ -+ xcb_timestamp_t m_time = XCB_CURRENT_TIME; -+ xcb_timestamp_t m_netWmUserTime = XCB_CURRENT_TIME; -+ -+ QByteArray m_displayName; -+ -+ QXcbKeyboard *m_keyboard = nullptr; -+#ifndef QT_NO_CLIPBOARD -+ QXcbClipboard *m_clipboard = nullptr; -+#endif -+#ifndef QT_NO_DRAGANDDROP -+ QXcbDrag *m_drag = nullptr; -+#endif -+ QScopedPointer m_wmSupport; -+ QXcbNativeInterface *m_nativeInterface = nullptr; -+ -+#if QT_CONFIG(xcb_xlib) -+ void *m_xlib_display = nullptr; -+#endif -+ QXcbEventReader *m_reader = nullptr; -+ -+#if QT_CONFIG(xinput2) -+ QHash m_touchDevices; -+#ifdef XCB_USE_XINPUT22 -+ struct StartSystemResizeInfo { -+ xcb_window_t window = XCB_NONE; -+ uint16_t deviceid; -+ uint32_t pointid; -+ Qt::Corner corner; -+ } m_startSystemResizeInfo; -+#endif -+#endif -+ WindowMapper m_mapper; -+ -+ QVector m_peekFuncs; -+ -+ uint32_t xfixes_first_event = 0; -+ uint32_t xrandr_first_event = 0; -+ uint32_t xkb_first_event = 0; -+ -+ bool has_xfixes = false; -+ bool has_xinerama_extension = false; -+ bool has_shape_extension = false; -+ bool has_randr_extension = false; -+ bool has_input_shape; -+ bool has_xkb = false; -+ bool has_render_extension = false; -+ -+ Qt::MouseButtons m_buttonState = 0; -+ -+ QXcbWindow *m_focusWindow = nullptr; -+ QXcbWindow *m_mouseGrabber = nullptr; -+ QXcbWindow *m_mousePressWindow = nullptr; -+ -+ xcb_window_t m_clientLeader = 0; -+ QByteArray m_startupId; -+ QXcbSystemTrayTracker *m_systemTrayTracker = nullptr; -+ QXcbGlIntegration *m_glIntegration = nullptr; -+ bool m_xiGrab = false; -+ -+ xcb_window_t m_qtSelectionOwner = 0; -+ -+ bool m_mainEventLoopFlushedQueue = false; -+ qint32 m_peekerIdSource = 0; -+ bool m_peekerIndexCacheDirty = false; -+ QHash m_peekerToCachedIndex; -+ friend class QXcbEventReader; -+}; -+#if QT_CONFIG(xinput2) -+#if QT_CONFIG(tabletevent) -+Q_DECLARE_TYPEINFO(QXcbConnection::TabletData::ValuatorClassInfo, Q_PRIMITIVE_TYPE); -+Q_DECLARE_TYPEINFO(QXcbConnection::TabletData, Q_MOVABLE_TYPE); -+#endif -+#endif -+ -+template -+xcb_generic_event_t *QXcbConnection::checkEvent(T &checker) -+{ -+ QXcbEventArray *eventqueue = m_reader->lock(); -+ -+ for (int i = 0; i < eventqueue->size(); ++i) { -+ xcb_generic_event_t *event = eventqueue->at(i); -+ if (checker.checkEvent(event)) { -+ (*eventqueue)[i] = 0; -+ m_reader->unlock(); -+ return event; -+ } -+ } -+ m_reader->unlock(); -+ return 0; -+} -+ -+class QXcbConnectionGrabber -+{ -+public: -+ QXcbConnectionGrabber(QXcbConnection *connection); -+ ~QXcbConnectionGrabber(); -+ void release(); -+private: -+ QXcbConnection *m_connection; -+}; -+ -+#define Q_XCB_REPLY_CONNECTION_ARG(connection, ...) connection -+ -+#define Q_XCB_REPLY(call, ...) \ -+ std::unique_ptr( \ -+ call##_reply(Q_XCB_REPLY_CONNECTION_ARG(__VA_ARGS__), call(__VA_ARGS__), nullptr), \ -+ std::free \ -+ ) -+ -+#define Q_XCB_REPLY_UNCHECKED(call, ...) \ -+ std::unique_ptr( \ -+ call##_reply(Q_XCB_REPLY_CONNECTION_ARG(__VA_ARGS__), call##_unchecked(__VA_ARGS__), nullptr), \ -+ std::free \ -+ ) -+ -+template -+union q_padded_xcb_event { -+ T event; -+ char padding[32]; -+}; -+ -+// The xcb_send_event() requires all events to have 32 bytes. It calls memcpy() on the -+// passed in event. If the passed in event is less than 32 bytes, memcpy() reaches into -+// unrelated memory. -+#define Q_DECLARE_XCB_EVENT(event_var, event_type) \ -+ q_padded_xcb_event store = {}; \ -+ auto &event_var = store.event; -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.10.1/qxcbcursor.h b/libqt5xcbqpa-dev/5.10.1/qxcbcursor.h -new file mode 100644 -index 0000000..e3f8851 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.10.1/qxcbcursor.h -@@ -0,0 +1,115 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBCURSOR_H -+#define QXCBCURSOR_H -+ -+#include -+#include "qxcbscreen.h" -+ -+QT_BEGIN_NAMESPACE -+ -+#ifndef QT_NO_CURSOR -+ -+struct QXcbCursorCacheKey -+{ -+ explicit QXcbCursorCacheKey(const QCursor &c); -+ explicit QXcbCursorCacheKey(Qt::CursorShape s) : shape(s), bitmapCacheKey(0), maskCacheKey(0) {} -+ QXcbCursorCacheKey() : shape(Qt::CustomCursor), bitmapCacheKey(0), maskCacheKey(0) {} -+ -+ Qt::CursorShape shape; -+ qint64 bitmapCacheKey; -+ qint64 maskCacheKey; -+}; -+ -+inline bool operator==(const QXcbCursorCacheKey &k1, const QXcbCursorCacheKey &k2) -+{ -+ return k1.shape == k2.shape && k1.bitmapCacheKey == k2.bitmapCacheKey && k1.maskCacheKey == k2.maskCacheKey; -+} -+ -+inline uint qHash(const QXcbCursorCacheKey &k, uint seed) Q_DECL_NOTHROW -+{ -+ return (uint(k.shape) + uint(k.bitmapCacheKey) + uint(k.maskCacheKey)) ^ seed; -+} -+ -+#endif // !QT_NO_CURSOR -+ -+class QXcbCursor : public QXcbObject, public QPlatformCursor -+{ -+public: -+ QXcbCursor(QXcbConnection *conn, QXcbScreen *screen); -+ ~QXcbCursor(); -+#ifndef QT_NO_CURSOR -+ void changeCursor(QCursor *cursor, QWindow *widget) override; -+#endif -+ QPoint pos() const override; -+ void setPos(const QPoint &pos) override; -+ -+ static void queryPointer(QXcbConnection *c, QXcbVirtualDesktop **virtualDesktop, QPoint *pos, int *keybMask = 0); -+ -+#ifndef QT_NO_CURSOR -+ xcb_cursor_t xcbCursor(const QCursor &c) const -+ { return m_cursorHash.value(QXcbCursorCacheKey(c), xcb_cursor_t(0)); } -+#endif -+ -+private: -+#ifndef QT_NO_CURSOR -+ typedef QHash CursorHash; -+ -+ xcb_cursor_t createFontCursor(int cshape); -+ xcb_cursor_t createBitmapCursor(QCursor *cursor); -+ xcb_cursor_t createNonStandardCursor(int cshape); -+#endif -+ -+ QXcbScreen *m_screen; -+#ifndef QT_NO_CURSOR -+ CursorHash m_cursorHash; -+#endif -+#if QT_CONFIG(xcb_xlib) && QT_CONFIG(library) -+ static void cursorThemePropertyChanged(QXcbVirtualDesktop *screen, -+ const QByteArray &name, -+ const QVariant &property, -+ void *handle); -+#endif -+ bool m_gtkCursorThemeInitialized; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.10.1/qxcbdrag.h b/libqt5xcbqpa-dev/5.10.1/qxcbdrag.h -new file mode 100644 -index 0000000..31f1c47 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.10.1/qxcbdrag.h -@@ -0,0 +1,180 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the QtGui module of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBDRAG_H -+#define QXCBDRAG_H -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+#ifndef QT_NO_DRAGANDDROP -+ -+class QWindow; -+class QPlatformWindow; -+class QXcbConnection; -+class QXcbWindow; -+class QXcbDropData; -+class QXcbScreen; -+class QDrag; -+class QShapedPixmapWindow; -+ -+class QXcbDrag : public QXcbObject, public QBasicDrag -+{ -+public: -+ QXcbDrag(QXcbConnection *c); -+ ~QXcbDrag(); -+ -+ bool eventFilter(QObject *o, QEvent *e) override; -+ -+ void startDrag() override; -+ void cancel() override; -+ void move(const QPoint &globalPos) override; -+ void drop(const QPoint &globalPos) override; -+ void endDrag() override; -+ -+ void handleEnter(QPlatformWindow *window, const xcb_client_message_event_t *event, xcb_window_t proxy = 0); -+ void handlePosition(QPlatformWindow *w, const xcb_client_message_event_t *event); -+ void handleLeave(QPlatformWindow *w, const xcb_client_message_event_t *event); -+ void handleDrop(QPlatformWindow *, const xcb_client_message_event_t *event); -+ -+ void handleStatus(const xcb_client_message_event_t *event); -+ void handleSelectionRequest(const xcb_selection_request_event_t *event); -+ void handleFinished(const xcb_client_message_event_t *event); -+ -+ bool dndEnable(QXcbWindow *win, bool on); -+ bool ownsDragObject() const override; -+ -+ void updatePixmap(); -+ xcb_timestamp_t targetTime() { return target_time; } -+ -+protected: -+ void timerEvent(QTimerEvent* e) override; -+ -+private: -+ friend class QXcbDropData; -+ -+ void init(); -+ -+ void handle_xdnd_position(QPlatformWindow *w, const xcb_client_message_event_t *event); -+ void handle_xdnd_status(const xcb_client_message_event_t *event); -+ void send_leave(); -+ -+ Qt::DropAction toDropAction(xcb_atom_t atom) const; -+ xcb_atom_t toXdndAction(Qt::DropAction a) const; -+ -+ QPointer initiatorWindow; -+ QPointer currentWindow; -+ QPoint currentPosition; -+ -+ QXcbDropData *m_dropData; -+ Qt::DropAction accepted_drop_action; -+ -+ QWindow *desktop_proxy; -+ -+ xcb_atom_t xdnd_dragsource; -+ -+ // the types in this drop. 100 is no good, but at least it's big. -+ enum { xdnd_max_type = 100 }; -+ QVector xdnd_types; -+ -+ // timestamp from XdndPosition and XdndDroptime for retrieving the data -+ xcb_timestamp_t target_time; -+ xcb_timestamp_t source_time; -+ -+ // rectangle in which the answer will be the same -+ QRect source_sameanswer; -+ bool waiting_for_status; -+ -+ // helpers for setting executed drop action outside application -+ bool dropped; -+ bool canceled; -+ -+ // top-level window we sent position to last. -+ xcb_window_t current_target; -+ // window to send events to (always valid if current_target) -+ xcb_window_t current_proxy_target; -+ -+ QXcbVirtualDesktop *current_virtual_desktop; -+ -+ // 10 minute timer used to discard old XdndDrop transactions -+ enum { XdndDropTransactionTimeout = 600000 }; -+ int cleanup_timer; -+ -+ QVector drag_types; -+ -+ struct Transaction -+ { -+ xcb_timestamp_t timestamp; -+ xcb_window_t target; -+ xcb_window_t proxy_target; -+ QPlatformWindow *targetWindow; -+// QWidget *embedding_widget; -+ QPointer drag; -+ QTime time; -+ }; -+ friend class QTypeInfo; -+ QVector transactions; -+ -+ int transaction_expiry_timer; -+ void restartDropExpiryTimer(); -+ int findTransactionByWindow(xcb_window_t window); -+ int findTransactionByTime(xcb_timestamp_t timestamp); -+ xcb_window_t findRealWindow(const QPoint & pos, xcb_window_t w, int md, bool ignoreNonXdndAwareWindows); -+}; -+Q_DECLARE_TYPEINFO(QXcbDrag::Transaction, Q_MOVABLE_TYPE); -+ -+#endif // QT_NO_DRAGANDDROP -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.10.1/qxcbexport.h b/libqt5xcbqpa-dev/5.10.1/qxcbexport.h -new file mode 100644 -index 0000000..4db23a9 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.10.1/qxcbexport.h -@@ -0,0 +1,55 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBEXPORT_H -+#define QXCBEXPORT_H -+ -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+# if defined(QT_BUILD_XCB_PLUGIN) -+# define Q_XCB_EXPORT Q_DECL_EXPORT -+# else -+# define Q_XCB_EXPORT Q_DECL_IMPORT -+# endif -+ -+QT_END_NAMESPACE -+#endif //QXCBEXPORT_H -+ -diff --git a/libqt5xcbqpa-dev/5.10.1/qxcbimage.h b/libqt5xcbqpa-dev/5.10.1/qxcbimage.h -new file mode 100644 -index 0000000..a9071a4 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.10.1/qxcbimage.h -@@ -0,0 +1,62 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBIMAGE_H -+#define QXCBIMAGE_H -+ -+#include "qxcbscreen.h" -+#include -+#include -+#include -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+QImage::Format qt_xcb_imageFormatForVisual(QXcbConnection *connection, -+ uint8_t depth, const xcb_visualtype_t *visual); -+QPixmap qt_xcb_pixmapFromXPixmap(QXcbConnection *connection, xcb_pixmap_t pixmap, -+ int width, int height, int depth, -+ const xcb_visualtype_t *visual); -+xcb_pixmap_t qt_xcb_XPixmapFromBitmap(QXcbScreen *screen, const QImage &image); -+xcb_cursor_t qt_xcb_createCursorXRender(QXcbScreen *screen, const QImage &image, -+ const QPoint &spot); -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.10.1/qxcbintegration.h b/libqt5xcbqpa-dev/5.10.1/qxcbintegration.h -new file mode 100644 -index 0000000..186b6c5 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.10.1/qxcbintegration.h -@@ -0,0 +1,152 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBINTEGRATION_H -+#define QXCBINTEGRATION_H -+ -+#include -+#include -+#include -+ -+#include "qxcbexport.h" -+ -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+class QXcbConnection; -+class QAbstractEventDispatcher; -+class QXcbNativeInterface; -+class QXcbScreen; -+ -+class Q_XCB_EXPORT QXcbIntegration : public QPlatformIntegration -+{ -+public: -+ QXcbIntegration(const QStringList ¶meters, int &argc, char **argv); -+ ~QXcbIntegration(); -+ -+ QPlatformPixmap *createPlatformPixmap(QPlatformPixmap::PixelType type) const override; -+ QPlatformWindow *createPlatformWindow(QWindow *window) const override; -+ QPlatformWindow *createForeignWindow(QWindow *window, WId nativeHandle) const override; -+#ifndef QT_NO_OPENGL -+ QPlatformOpenGLContext *createPlatformOpenGLContext(QOpenGLContext *context) const override; -+#endif -+ QPlatformBackingStore *createPlatformBackingStore(QWindow *window) const override; -+ -+ QPlatformOffscreenSurface *createPlatformOffscreenSurface(QOffscreenSurface *surface) const override; -+ -+ bool hasCapability(Capability cap) const override; -+ QAbstractEventDispatcher *createEventDispatcher() const override; -+ void initialize() override; -+ -+ void moveToScreen(QWindow *window, int screen); -+ -+ QPlatformFontDatabase *fontDatabase() const override; -+ -+ QPlatformNativeInterface *nativeInterface()const override; -+ -+#ifndef QT_NO_CLIPBOARD -+ QPlatformClipboard *clipboard() const override; -+#endif -+#ifndef QT_NO_DRAGANDDROP -+ QPlatformDrag *drag() const override; -+#endif -+ -+ QPlatformInputContext *inputContext() const override; -+ -+#ifndef QT_NO_ACCESSIBILITY -+ QPlatformAccessibility *accessibility() const override; -+#endif -+ -+ QPlatformServices *services() const override; -+ -+ Qt::KeyboardModifiers queryKeyboardModifiers() const override; -+ QList possibleKeys(const QKeyEvent *e) const override; -+ -+ QStringList themeNames() const override; -+ QPlatformTheme *createPlatformTheme(const QString &name) const override; -+ QVariant styleHint(StyleHint hint) const override; -+ -+ QXcbConnection *defaultConnection() const { return m_connections.first(); } -+ -+ QByteArray wmClass() const; -+ -+#if QT_CONFIG(xcb_sm) -+ QPlatformSessionManager *createPlatformSessionManager(const QString &id, const QString &key) const override; -+#endif -+ -+ void sync() override; -+ -+ void beep() const override; -+ -+ bool nativePaintingEnabled() const; -+ -+#if QT_CONFIG(vulkan) -+ QPlatformVulkanInstance *createPlatformVulkanInstance(QVulkanInstance *instance) const override; -+#endif -+ -+ static QXcbIntegration *instance() { return m_instance; } -+ -+private: -+ QList m_connections; -+ -+ QScopedPointer m_fontDatabase; -+ QScopedPointer m_nativeInterface; -+ -+ QScopedPointer m_inputContext; -+ -+#ifndef QT_NO_ACCESSIBILITY -+ mutable QScopedPointer m_accessibility; -+#endif -+ -+ QScopedPointer m_services; -+ -+ friend class QXcbConnection; // access QPlatformIntegration::screenAdded() -+ -+ mutable QByteArray m_wmClass; -+ const char *m_instanceName; -+ bool m_canGrab; -+ xcb_visualid_t m_defaultVisualId; -+ -+ static QXcbIntegration *m_instance; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.10.1/qxcbkeyboard.h b/libqt5xcbqpa-dev/5.10.1/qxcbkeyboard.h -new file mode 100644 -index 0000000..7f1c51f ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.10.1/qxcbkeyboard.h -@@ -0,0 +1,151 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBKEYBOARD_H -+#define QXCBKEYBOARD_H -+ -+#include "qxcbobject.h" -+ -+#include -+ -+#include -+#if QT_CONFIG(xkb) -+#include -+#endif -+ -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+class QWindow; -+ -+class QXcbKeyboard : public QXcbObject -+{ -+public: -+ QXcbKeyboard(QXcbConnection *connection); -+ -+ ~QXcbKeyboard(); -+ -+ void handleKeyPressEvent(const xcb_key_press_event_t *event); -+ void handleKeyReleaseEvent(const xcb_key_release_event_t *event); -+ void handleMappingNotifyEvent(const void *event); -+ -+ Qt::KeyboardModifiers translateModifiers(int s) const; -+ void updateKeymap(); -+ QList possibleKeys(const QKeyEvent *e) const; -+ -+ // when XKEYBOARD not present on the X server -+ void updateXKBMods(); -+ quint32 xkbModMask(quint16 state); -+ void updateXKBStateFromCore(quint16 state); -+#if QT_CONFIG(xinput2) -+ void updateXKBStateFromXI(void *modInfo, void *groupInfo); -+#endif -+#if QT_CONFIG(xkb) -+ // when XKEYBOARD is present on the X server -+ int coreDeviceId() const { return core_device_id; } -+ void updateXKBState(xcb_xkb_state_notify_event_t *state); -+#endif -+ -+protected: -+ void handleKeyEvent(xcb_window_t sourceWindow, QEvent::Type type, xcb_keycode_t code, quint16 state, xcb_timestamp_t time); -+ -+ void resolveMaskConflicts(); -+ QString lookupString(struct xkb_state *state, xcb_keycode_t code) const; -+ int keysymToQtKey(xcb_keysym_t keysym) const; -+ int keysymToQtKey(xcb_keysym_t keysym, Qt::KeyboardModifiers &modifiers, const QString &text) const; -+ void printKeymapError(const char *error) const; -+ -+ void readXKBConfig(); -+ void clearXKBConfig(); -+ // when XKEYBOARD not present on the X server -+ void updateModifiers(); -+ // when XKEYBOARD is present on the X server -+ void updateVModMapping(); -+ void updateVModToRModMapping(); -+ -+ xkb_keysym_t lookupLatinKeysym(xkb_keycode_t keycode) const; -+ void checkForLatinLayout(); -+ -+private: -+ void updateXKBStateFromState(struct xkb_state *kb_state, quint16 state); -+ -+ bool m_config = false; -+ xcb_keycode_t m_autorepeat_code = 0; -+ -+ struct xkb_context *xkb_context = nullptr; -+ struct xkb_keymap *xkb_keymap = nullptr; -+ struct xkb_state *xkb_state = nullptr; -+ struct xkb_rule_names xkb_names; -+ mutable struct xkb_keymap *latin_keymap = nullptr; -+ -+ struct _mod_masks { -+ uint alt; -+ uint altgr; -+ uint meta; -+ uint super; -+ uint hyper; -+ }; -+ -+ _mod_masks rmod_masks; -+ -+ // when XKEYBOARD not present on the X server -+ xcb_key_symbols_t *m_key_symbols; -+ struct _xkb_mods { -+ xkb_mod_index_t shift; -+ xkb_mod_index_t lock; -+ xkb_mod_index_t control; -+ xkb_mod_index_t mod1; -+ xkb_mod_index_t mod2; -+ xkb_mod_index_t mod3; -+ xkb_mod_index_t mod4; -+ xkb_mod_index_t mod5; -+ }; -+ _xkb_mods xkb_mods; -+#if QT_CONFIG(xkb) -+ // when XKEYBOARD is present on the X server -+ _mod_masks vmod_masks; -+ int core_device_id; -+#endif -+ bool m_hasLatinLayout = false; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.10.1/qxcbmime.h b/libqt5xcbqpa-dev/5.10.1/qxcbmime.h -new file mode 100644 -index 0000000..561631a ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.10.1/qxcbmime.h -@@ -0,0 +1,75 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBMIME_H -+#define QXCBMIME_H -+ -+#include -+ -+#include -+ -+#include "qxcbintegration.h" -+#include "qxcbconnection.h" -+ -+QT_BEGIN_NAMESPACE -+ -+#if !(defined(QT_NO_DRAGANDDROP) && defined(QT_NO_CLIPBOARD)) -+ -+class QXcbMime : public QInternalMimeData { -+ Q_OBJECT -+public: -+ QXcbMime(); -+ ~QXcbMime(); -+ -+ static QVector mimeAtomsForFormat(QXcbConnection *connection, const QString &format); -+ static QString mimeAtomToString(QXcbConnection *connection, xcb_atom_t a); -+ static bool mimeDataForAtom(QXcbConnection *connection, xcb_atom_t a, QMimeData *mimeData, QByteArray *data, -+ xcb_atom_t *atomFormat, int *dataFormat); -+ static QVariant mimeConvertToFormat(QXcbConnection *connection, xcb_atom_t a, const QByteArray &data, const QString &format, -+ QVariant::Type requestedType, const QByteArray &encoding); -+ static xcb_atom_t mimeAtomForFormat(QXcbConnection *connection, const QString &format, QVariant::Type requestedType, -+ const QVector &atoms, QByteArray *requestedEncoding); -+}; -+ -+#endif // !(defined(QT_NO_DRAGANDDROP) && defined(QT_NO_CLIPBOARD)) -+ -+ -+QT_END_NAMESPACE -+ -+#endif // QXCBMIME_H -diff --git a/libqt5xcbqpa-dev/5.10.1/qxcbnativeinterface.h b/libqt5xcbqpa-dev/5.10.1/qxcbnativeinterface.h -new file mode 100644 -index 0000000..fb0db72 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.10.1/qxcbnativeinterface.h -@@ -0,0 +1,161 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBNATIVEINTERFACE_H -+#define QXCBNATIVEINTERFACE_H -+ -+#include -+#include -+ -+#include -+ -+#include "qxcbexport.h" -+#include "qxcbconnection.h" -+ -+QT_BEGIN_NAMESPACE -+ -+class QXcbScreen; -+class QXcbNativeInterfaceHandler; -+ -+class Q_XCB_EXPORT QXcbNativeInterface : public QPlatformNativeInterface -+{ -+ Q_OBJECT -+public: -+ enum ResourceType { -+ Display, -+ Connection, -+ Screen, -+ AppTime, -+ AppUserTime, -+ ScreenHintStyle, -+ StartupId, -+ TrayWindow, -+ GetTimestamp, -+ X11Screen, -+ RootWindow, -+ ScreenSubpixelType, -+ ScreenAntialiasingEnabled, -+ AtspiBus, -+ CompositingEnabled, -+ VkSurface, -+ GeneratePeekerId, -+ RemovePeekerId, -+ PeekEventQueue -+ }; -+ -+ QXcbNativeInterface(); -+ -+ void *nativeResourceForIntegration(const QByteArray &resource) override; -+ void *nativeResourceForContext(const QByteArray &resourceString, QOpenGLContext *context) override; -+ void *nativeResourceForScreen(const QByteArray &resource, QScreen *screen) override; -+ void *nativeResourceForWindow(const QByteArray &resourceString, QWindow *window) override; -+ void *nativeResourceForBackingStore(const QByteArray &resource, QBackingStore *backingStore) override; -+#ifndef QT_NO_CURSOR -+ void *nativeResourceForCursor(const QByteArray &resource, const QCursor &cursor) override; -+#endif -+ -+ NativeResourceForIntegrationFunction nativeResourceFunctionForIntegration(const QByteArray &resource) override; -+ NativeResourceForContextFunction nativeResourceFunctionForContext(const QByteArray &resource) override; -+ NativeResourceForScreenFunction nativeResourceFunctionForScreen(const QByteArray &resource) override; -+ NativeResourceForWindowFunction nativeResourceFunctionForWindow(const QByteArray &resource) override; -+ NativeResourceForBackingStoreFunction nativeResourceFunctionForBackingStore(const QByteArray &resource) override; -+ -+ QFunctionPointer platformFunction(const QByteArray &function) const override; -+ -+ inline const QByteArray &genericEventFilterType() const { return m_genericEventFilterType; } -+ -+ void *displayForWindow(QWindow *window); -+ void *connectionForWindow(QWindow *window); -+ void *screenForWindow(QWindow *window); -+ void *appTime(const QXcbScreen *screen); -+ void *appUserTime(const QXcbScreen *screen); -+ void *getTimestamp(const QXcbScreen *screen); -+ void *startupId(); -+ void *x11Screen(); -+ void *rootWindow(); -+ void *display(); -+ void *atspiBus(); -+ void *connection(); -+ static void setStartupId(const char *); -+ static void setAppTime(QScreen *screen, xcb_timestamp_t time); -+ static void setAppUserTime(QScreen *screen, xcb_timestamp_t time); -+ -+ static qint32 generatePeekerId(); -+ static bool removePeekerId(qint32 peekerId); -+ static bool peekEventQueue(QXcbConnection::PeekerCallback peeker, void *peekerData = nullptr, -+ QXcbConnection::PeekOptions option = QXcbConnection::PeekDefault, -+ qint32 peekerId = -1); -+ -+ Q_INVOKABLE bool systemTrayAvailable(const QScreen *screen) const; -+ Q_INVOKABLE void setParentRelativeBackPixmap(QWindow *window); -+ Q_INVOKABLE bool systrayVisualHasAlphaChannel(); -+ Q_INVOKABLE bool requestSystemTrayWindowDock(const QWindow *window); -+ Q_INVOKABLE QRect systemTrayWindowGlobalGeometry(const QWindow *window); -+ -+ void addHandler(QXcbNativeInterfaceHandler *handler); -+ void removeHandler(QXcbNativeInterfaceHandler *handler); -+signals: -+ void systemTrayWindowChanged(QScreen *screen); -+ -+private: -+ xcb_window_t locateSystemTray(xcb_connection_t *conn, const QXcbScreen *screen); -+ -+ const QByteArray m_genericEventFilterType; -+ -+ xcb_atom_t m_sysTraySelectionAtom = XCB_ATOM_NONE; -+ -+ static QXcbScreen *qPlatformScreenForWindow(QWindow *window); -+ -+ QList m_handlers; -+ NativeResourceForIntegrationFunction handlerNativeResourceFunctionForIntegration(const QByteArray &resource) const; -+ NativeResourceForContextFunction handlerNativeResourceFunctionForContext(const QByteArray &resource) const; -+ NativeResourceForScreenFunction handlerNativeResourceFunctionForScreen(const QByteArray &resource) const; -+ NativeResourceForWindowFunction handlerNativeResourceFunctionForWindow(const QByteArray &resource) const; -+ NativeResourceForBackingStoreFunction handlerNativeResourceFunctionForBackingStore(const QByteArray &resource) const; -+ QFunctionPointer handlerPlatformFunction(const QByteArray &function) const; -+ void *handlerNativeResourceForIntegration(const QByteArray &resource) const; -+ void *handlerNativeResourceForContext(const QByteArray &resource, QOpenGLContext *context) const; -+ void *handlerNativeResourceForScreen(const QByteArray &resource, QScreen *screen) const; -+ void *handlerNativeResourceForWindow(const QByteArray &resource, QWindow *window) const; -+ void *handlerNativeResourceForBackingStore(const QByteArray &resource, QBackingStore *backingStore) const; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif // QXCBNATIVEINTERFACE_H -diff --git a/libqt5xcbqpa-dev/5.10.1/qxcbobject.h b/libqt5xcbqpa-dev/5.10.1/qxcbobject.h -new file mode 100644 -index 0000000..1b98d93 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.10.1/qxcbobject.h -@@ -0,0 +1,64 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBOBJECT_H -+#define QXCBOBJECT_H -+ -+#include "qxcbconnection.h" -+ -+QT_BEGIN_NAMESPACE -+ -+class QXcbObject -+{ -+public: -+ QXcbObject(QXcbConnection *connection = 0) : m_connection(connection) {} -+ -+ void setConnection(QXcbConnection *connection) { m_connection = connection; } -+ QXcbConnection *connection() const { return m_connection; } -+ -+ xcb_atom_t atom(QXcbAtom::Atom atom) const { return m_connection->atom(atom); } -+ xcb_connection_t *xcb_connection() const { return m_connection->xcb_connection(); } -+ -+private: -+ QXcbConnection *m_connection; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.10.1/qxcbscreen.h b/libqt5xcbqpa-dev/5.10.1/qxcbscreen.h -new file mode 100644 -index 0000000..842738b ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.10.1/qxcbscreen.h -@@ -0,0 +1,245 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBSCREEN_H -+#define QXCBSCREEN_H -+ -+#include -+#include -+ -+#include -+#include -+#include -+#include -+ -+#include "qxcbobject.h" -+#include "qxcbscreen.h" -+ -+#include -+ -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+class QXcbConnection; -+class QXcbCursor; -+class QXcbXSettings; -+#ifndef QT_NO_DEBUG_STREAM -+class QDebug; -+#endif -+ -+class QXcbVirtualDesktop : public QXcbObject -+{ -+public: -+ QXcbVirtualDesktop(QXcbConnection *connection, xcb_screen_t *screen, int number); -+ ~QXcbVirtualDesktop(); -+ -+ xcb_screen_t *screen() const { return m_screen; } -+ int number() const { return m_number; } -+ QSize size() const { return QSize(m_screen->width_in_pixels, m_screen->height_in_pixels); } -+ QSize physicalSize() const { return QSize(m_screen->width_in_millimeters, m_screen->height_in_millimeters); } -+ xcb_window_t root() const { return m_screen->root; } -+ QXcbScreen *screenAt(const QPoint &pos) const; -+ -+ QList screens() const { return m_screens; } -+ void setScreens(QList sl) { m_screens = sl; } -+ void removeScreen(QPlatformScreen *s) { m_screens.removeOne(s); } -+ void addScreen(QPlatformScreen *s); -+ void setPrimaryScreen(QPlatformScreen *s); -+ -+ QXcbXSettings *xSettings() const; -+ -+ bool compositingActive() const; -+ -+ QRect workArea() const { return m_workArea; } -+ void updateWorkArea(); -+ -+ void handleXFixesSelectionNotify(xcb_xfixes_selection_notify_event_t *notify_event); -+ void subscribeToXFixesSelectionNotify(); -+ -+ int forcedDpi() const { return m_forcedDpi; } -+ QFontEngine::HintStyle hintStyle() const { return m_hintStyle; } -+ QFontEngine::SubpixelAntialiasingType subpixelType() const { return m_subpixelType; } -+ int antialiasingEnabled() const { return m_antialiasingEnabled; } -+ -+ QString windowManagerName() const { return m_windowManagerName; } -+ bool syncRequestSupported() const { return m_syncRequestSupported; } -+ -+ QSurfaceFormat surfaceFormatFor(const QSurfaceFormat &format) const; -+ -+ const xcb_visualtype_t *visualForFormat(const QSurfaceFormat &format) const; -+ const xcb_visualtype_t *visualForId(xcb_visualid_t) const; -+ quint8 depthOfVisual(xcb_visualid_t) const; -+ -+private: -+ QRect getWorkArea() const; -+ -+ static bool xResource(const QByteArray &identifier, -+ const QByteArray &expectedIdentifier, -+ QByteArray &stringValue); -+ void readXResources(); -+ -+ xcb_screen_t *m_screen; -+ const int m_number; -+ QList m_screens; -+ -+ QXcbXSettings *m_xSettings = nullptr; -+ xcb_atom_t m_net_wm_cm_atom = 0; -+ bool m_compositingActive = false; -+ -+ QRect m_workArea; -+ -+ int m_forcedDpi = -1; -+ QFontEngine::HintStyle m_hintStyle = QFontEngine::HintStyle(-1); -+ QFontEngine::SubpixelAntialiasingType m_subpixelType = QFontEngine::SubpixelAntialiasingType(-1); -+ int m_antialiasingEnabled = -1; -+ QString m_windowManagerName; -+ bool m_syncRequestSupported = false; -+ QMap m_visuals; -+ QMap m_visualDepths; -+}; -+ -+class Q_XCB_EXPORT QXcbScreen : public QXcbObject, public QPlatformScreen -+{ -+public: -+ QXcbScreen(QXcbConnection *connection, QXcbVirtualDesktop *virtualDesktop, -+ xcb_randr_output_t outputId, xcb_randr_get_output_info_reply_t *outputInfo, -+ const xcb_xinerama_screen_info_t *xineramaScreenInfo = Q_NULLPTR, int xineramaScreenIdx = -1); -+ ~QXcbScreen(); -+ -+ QString getOutputName(xcb_randr_get_output_info_reply_t *outputInfo); -+ -+ QPixmap grabWindow(WId window, int x, int y, int width, int height) const override; -+ -+ QWindow *topLevelAt(const QPoint &point) const override; -+ -+ QString manufacturer() const override; -+ QString model() const override; -+ QString serialNumber() const override; -+ -+ QRect geometry() const override { return m_geometry; } -+ QRect availableGeometry() const override; -+ int depth() const override { return screen()->root_depth; } -+ QImage::Format format() const override; -+ QSizeF physicalSize() const override { return m_sizeMillimeters; } -+ QSize virtualSize() const { return m_virtualSize; } -+ QSizeF physicalVirtualSize() const { return m_virtualSizeMillimeters; } -+ QDpi virtualDpi() const; -+ QDpi logicalDpi() const override; -+ qreal pixelDensity() const override; -+ QPlatformCursor *cursor() const override; -+ qreal refreshRate() const override { return m_refreshRate; } -+ Qt::ScreenOrientation orientation() const override { return m_orientation; } -+ QList virtualSiblings() const override { return m_virtualDesktop->screens(); } -+ QXcbVirtualDesktop *virtualDesktop() const { return m_virtualDesktop; } -+ -+ void setPrimary(bool primary) { m_primary = primary; } -+ bool isPrimary() const { return m_primary; } -+ -+ int screenNumber() const { return m_virtualDesktop->number(); } -+ static int virtualDesktopNumberStatic(const QScreen *screen); -+ -+ xcb_screen_t *screen() const { return m_virtualDesktop->screen(); } -+ xcb_window_t root() const { return screen()->root; } -+ xcb_randr_output_t output() const { return m_output; } -+ xcb_randr_crtc_t crtc() const { return m_crtc; } -+ xcb_randr_mode_t mode() const { return m_mode; } -+ -+ void setOutput(xcb_randr_output_t outputId, -+ xcb_randr_get_output_info_reply_t *outputInfo); -+ void setCrtc(xcb_randr_crtc_t crtc) { m_crtc = crtc; } -+ -+ void windowShown(QXcbWindow *window); -+ QString windowManagerName() const { return m_virtualDesktop->windowManagerName(); } -+ bool syncRequestSupported() const { return m_virtualDesktop->syncRequestSupported(); } -+ -+ QSurfaceFormat surfaceFormatFor(const QSurfaceFormat &format) const; -+ -+ const xcb_visualtype_t *visualForFormat(const QSurfaceFormat &format) const { return m_virtualDesktop->visualForFormat(format); } -+ const xcb_visualtype_t *visualForId(xcb_visualid_t visualid) const; -+ quint8 depthOfVisual(xcb_visualid_t visualid) const { return m_virtualDesktop->depthOfVisual(visualid); } -+ -+ QString name() const override { return m_outputName; } -+ -+ void handleScreenChange(xcb_randr_screen_change_notify_event_t *change_event); -+ void updateGeometry(const QRect &geometry, uint8_t rotation); -+ void updateGeometry(xcb_timestamp_t timestamp = XCB_TIME_CURRENT_TIME); -+ void updateAvailableGeometry(); -+ void updateRefreshRate(xcb_randr_mode_t mode); -+ -+ QFontEngine::HintStyle hintStyle() const { return m_virtualDesktop->hintStyle(); } -+ QFontEngine::SubpixelAntialiasingType subpixelType() const { return m_virtualDesktop->subpixelType(); } -+ int antialiasingEnabled() const { return m_virtualDesktop->antialiasingEnabled(); } -+ -+ QXcbXSettings *xSettings() const; -+ -+private: -+ void sendStartupMessage(const QByteArray &message) const; -+ -+ QByteArray getOutputProperty(xcb_atom_t atom) const; -+ QByteArray getEdid() const; -+ -+ QXcbVirtualDesktop *m_virtualDesktop; -+ xcb_randr_output_t m_output; -+ xcb_randr_crtc_t m_crtc; -+ xcb_randr_mode_t m_mode = XCB_NONE; -+ bool m_primary = false; -+ uint8_t m_rotation = XCB_RANDR_ROTATION_ROTATE_0; -+ -+ QString m_outputName; -+ QSizeF m_outputSizeMillimeters; -+ QSizeF m_sizeMillimeters; -+ QRect m_geometry; -+ QRect m_availableGeometry; -+ QSize m_virtualSize; -+ QSizeF m_virtualSizeMillimeters; -+ Qt::ScreenOrientation m_orientation = Qt::PrimaryOrientation; -+ QXcbCursor *m_cursor; -+ int m_refreshRate = 60; -+ int m_pixelDensity = 1; -+ QEdidParser m_edid; -+}; -+ -+#ifndef QT_NO_DEBUG_STREAM -+Q_GUI_EXPORT QDebug operator<<(QDebug, const QXcbScreen *); -+#endif -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.10.1/qxcbsessionmanager.h b/libqt5xcbqpa-dev/5.10.1/qxcbsessionmanager.h -new file mode 100644 -index 0000000..0ad9445 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.10.1/qxcbsessionmanager.h -@@ -0,0 +1,96 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2013 Teo Mrnjavac -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBSESSIONMANAGER_H -+#define QXCBSESSIONMANAGER_H -+ -+// -+// W A R N I N G -+// ------------- -+// -+// This file is part of the QPA API and is not meant to be used -+// in applications. Usage of this API may make your code -+// source and binary incompatible with future versions of Qt. -+// -+ -+#include -+ -+#ifndef QT_NO_SESSIONMANAGER -+ -+QT_BEGIN_NAMESPACE -+ -+class QEventLoop; -+ -+class QXcbSessionManager : public QPlatformSessionManager -+{ -+public: -+ QXcbSessionManager(const QString &id, const QString &key); -+ virtual ~QXcbSessionManager(); -+ -+ void *handle() const; -+ -+ void setSessionId(const QString &id) { m_sessionId = id; } -+ void setSessionKey(const QString &key) { m_sessionKey = key; } -+ -+ bool allowsInteraction() override; -+ bool allowsErrorInteraction() override; -+ void release() override; -+ -+ void cancel() override; -+ -+ void setManagerProperty(const QString &name, const QString &value) override; -+ void setManagerProperty(const QString &name, const QStringList &value) override; -+ -+ bool isPhase2() const override; -+ void requestPhase2() override; -+ -+ void exitEventLoop(); -+ -+private: -+ QEventLoop *m_eventLoop; -+ -+ Q_DISABLE_COPY(QXcbSessionManager) -+}; -+ -+QT_END_NAMESPACE -+ -+#endif //QT_NO_SESSIONMANAGER -+ -+#endif //QXCBSESSIONMANAGER_H -diff --git a/libqt5xcbqpa-dev/5.10.1/qxcbsystemtraytracker.h b/libqt5xcbqpa-dev/5.10.1/qxcbsystemtraytracker.h -new file mode 100644 -index 0000000..a95b937 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.10.1/qxcbsystemtraytracker.h -@@ -0,0 +1,85 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBSYSTEMTRAYTRACKER_H -+#define QXCBSYSTEMTRAYTRACKER_H -+ -+#include "qxcbconnection.h" -+ -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+class QXcbConnection; -+class QScreen; -+ -+class QXcbSystemTrayTracker : public QObject, public QXcbWindowEventListener -+{ -+ Q_OBJECT -+public: -+ static QXcbSystemTrayTracker *create(QXcbConnection *connection); -+ -+ xcb_window_t trayWindow(); -+ void requestSystemTrayWindowDock(xcb_window_t window) const; -+ QRect systemTrayWindowGlobalGeometry(xcb_window_t window) const; -+ -+ void notifyManagerClientMessageEvent(const xcb_client_message_event_t *); -+ -+ void handleDestroyNotifyEvent(const xcb_destroy_notify_event_t *) override; -+ -+ bool visualHasAlphaChannel(); -+signals: -+ void systemTrayWindowChanged(QScreen *screen); -+ -+private: -+ explicit QXcbSystemTrayTracker(QXcbConnection *connection, -+ xcb_atom_t trayAtom, -+ xcb_atom_t selection); -+ static xcb_window_t locateTrayWindow(const QXcbConnection *connection, xcb_atom_t selection); -+ void emitSystemTrayWindowChanged(); -+ -+ const xcb_atom_t m_selection; -+ const xcb_atom_t m_trayAtom; -+ QXcbConnection *m_connection; -+ xcb_window_t m_trayWindow = 0; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif // QXCBSYSTEMTRAYTRACKER_H -diff --git a/libqt5xcbqpa-dev/5.10.1/qxcbvulkaninstance.h b/libqt5xcbqpa-dev/5.10.1/qxcbvulkaninstance.h -new file mode 100644 -index 0000000..dbe057d ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.10.1/qxcbvulkaninstance.h -@@ -0,0 +1,79 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2017 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBVULKANINSTANCE_H -+#define QXCBVULKANINSTANCE_H -+ -+#if defined(VULKAN_H_) && !defined(VK_USE_PLATFORM_XCB_KHR) -+#error "vulkan.h included without xcb WSI" -+#endif -+ -+#define VK_USE_PLATFORM_XCB_KHR -+ -+#include -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+class QXcbWindow; -+ -+class QXcbVulkanInstance : public QBasicPlatformVulkanInstance -+{ -+public: -+ QXcbVulkanInstance(QVulkanInstance *instance); -+ ~QXcbVulkanInstance(); -+ -+ void createOrAdoptInstance() override; -+ bool supportsPresent(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, QWindow *window) override; -+ void presentQueued(QWindow *window) override; -+ -+ VkSurfaceKHR createSurface(QXcbWindow *window); -+ void destroySurface(VkSurfaceKHR surface); -+ -+private: -+ QVulkanInstance *m_instance; -+ QLibrary m_lib; -+ PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR m_getPhysDevPresSupport; -+ PFN_vkCreateXcbSurfaceKHR m_createSurface; -+ PFN_vkDestroySurfaceKHR m_destroySurface; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif // QXCBVULKANINSTANCE_H -diff --git a/libqt5xcbqpa-dev/5.10.1/qxcbvulkanwindow.h b/libqt5xcbqpa-dev/5.10.1/qxcbvulkanwindow.h -new file mode 100644 -index 0000000..43c9682 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.10.1/qxcbvulkanwindow.h -@@ -0,0 +1,65 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2017 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBVULKANWINDOW_H -+#define QXCBVULKANWINDOW_H -+ -+#include "qxcbwindow.h" -+#include "qxcbvulkaninstance.h" -+ -+QT_BEGIN_NAMESPACE -+ -+class QXcbVulkanWindow : public QXcbWindow -+{ -+public: -+ QXcbVulkanWindow(QWindow *window); -+ ~QXcbVulkanWindow(); -+ -+ VkSurfaceKHR *surface(); -+ -+protected: -+ void resolveFormat(const QSurfaceFormat &format) override; -+ -+private: -+ VkSurfaceKHR m_surface; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif // QXCBVULKANWINDOW_H -diff --git a/libqt5xcbqpa-dev/5.10.1/qxcbwindow.h b/libqt5xcbqpa-dev/5.10.1/qxcbwindow.h -new file mode 100644 -index 0000000..1ce9b0a ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.10.1/qxcbwindow.h -@@ -0,0 +1,299 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBWINDOW_H -+#define QXCBWINDOW_H -+ -+#include -+#include -+#include -+ -+#include -+#include -+ -+#include "qxcbobject.h" -+ -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+class QXcbScreen; -+class QXcbSyncWindowRequest; -+class QIcon; -+ -+class Q_XCB_EXPORT QXcbWindow : public QXcbObject, public QXcbWindowEventListener, public QPlatformWindow -+{ -+public: -+ enum NetWmState { -+ NetWmStateAbove = 0x1, -+ NetWmStateBelow = 0x2, -+ NetWmStateFullScreen = 0x4, -+ NetWmStateMaximizedHorz = 0x8, -+ NetWmStateMaximizedVert = 0x10, -+ NetWmStateModal = 0x20, -+ NetWmStateStaysOnTop = 0x40, -+ NetWmStateDemandsAttention = 0x80 -+ }; -+ -+ Q_DECLARE_FLAGS(NetWmStates, NetWmState) -+ -+ QXcbWindow(QWindow *window); -+ ~QXcbWindow(); -+ -+ void setGeometry(const QRect &rect) override; -+ -+ QMargins frameMargins() const override; -+ -+ void setVisible(bool visible) override; -+ void setWindowFlags(Qt::WindowFlags flags) override; -+ void setWindowState(Qt::WindowStates state) override; -+ WId winId() const override; -+ void setParent(const QPlatformWindow *window) override; -+ -+ bool isExposed() const override; -+ bool isEmbedded() const override; -+ QPoint mapToGlobal(const QPoint &pos) const override; -+ QPoint mapFromGlobal(const QPoint &pos) const override; -+ -+ void setWindowTitle(const QString &title) override; -+ void setWindowIconText(const QString &title); -+ void setWindowIcon(const QIcon &icon) override; -+ void raise() override; -+ void lower() override; -+ void propagateSizeHints() override; -+ -+ void requestActivateWindow() override; -+ -+ bool setKeyboardGrabEnabled(bool grab) override; -+ bool setMouseGrabEnabled(bool grab) override; -+ -+ void setCursor(xcb_cursor_t cursor, bool isBitmapCursor); -+ -+ QSurfaceFormat format() const override; -+ -+ void windowEvent(QEvent *event) override; -+ -+ bool startSystemResize(const QPoint &pos, Qt::Corner corner) override; -+ -+ void setOpacity(qreal level) override; -+ void setMask(const QRegion ®ion) override; -+ -+ void setAlertState(bool enabled) override; -+ bool isAlertState() const override { return m_alertState; } -+ -+ xcb_window_t xcb_window() const { return m_window; } -+ uint depth() const { return m_depth; } -+ QImage::Format imageFormat() const { return m_imageFormat; } -+ bool imageNeedsRgbSwap() const { return m_imageRgbSwap; } -+ -+ bool handleGenericEvent(xcb_generic_event_t *event, long *result) override; -+ -+ void handleExposeEvent(const xcb_expose_event_t *event) override; -+ void handleClientMessageEvent(const xcb_client_message_event_t *event) override; -+ void handleConfigureNotifyEvent(const xcb_configure_notify_event_t *event) override; -+ void handleMapNotifyEvent(const xcb_map_notify_event_t *event) override; -+ void handleUnmapNotifyEvent(const xcb_unmap_notify_event_t *event) override; -+ void handleButtonPressEvent(const xcb_button_press_event_t *event) override; -+ void handleButtonReleaseEvent(const xcb_button_release_event_t *event) override; -+ void handleMotionNotifyEvent(const xcb_motion_notify_event_t *event) override; -+ -+ void handleEnterNotifyEvent(const xcb_enter_notify_event_t *event) override; -+ void handleLeaveNotifyEvent(const xcb_leave_notify_event_t *event) override; -+ void handleFocusInEvent(const xcb_focus_in_event_t *event) override; -+ void handleFocusOutEvent(const xcb_focus_out_event_t *event) override; -+ void handlePropertyNotifyEvent(const xcb_property_notify_event_t *event) override; -+#if QT_CONFIG(xinput2) -+ void handleXIMouseEvent(xcb_ge_event_t *, Qt::MouseEventSource source = Qt::MouseEventNotSynthesized) override; -+ void handleXIEnterLeave(xcb_ge_event_t *) override; -+#endif -+ -+ QXcbWindow *toWindow() override; -+ -+ void handleMouseEvent(xcb_timestamp_t time, const QPoint &local, const QPoint &global, -+ Qt::KeyboardModifiers modifiers, Qt::MouseEventSource source); -+ -+ void updateNetWmUserTime(xcb_timestamp_t timestamp); -+ -+ static void setWmWindowTypeStatic(QWindow *window, QXcbWindowFunctions::WmWindowTypes windowTypes); -+ static void setWmWindowRoleStatic(QWindow *window, const QByteArray &role); -+ static uint visualIdStatic(QWindow *window); -+ -+ QXcbWindowFunctions::WmWindowTypes wmWindowTypes() const; -+ void setWmWindowType(QXcbWindowFunctions::WmWindowTypes types, Qt::WindowFlags flags); -+ void setWmWindowRole(const QByteArray &role); -+ -+ static void setWindowIconTextStatic(QWindow *window, const QString &text); -+ -+ static void setParentRelativeBackPixmapStatic(QWindow *window); -+ void setParentRelativeBackPixmap(); -+ -+ static bool requestSystemTrayWindowDockStatic(const QWindow *window); -+ bool requestSystemTrayWindowDock() const; -+ -+ static QRect systemTrayWindowGlobalGeometryStatic(const QWindow *window); -+ QRect systemTrayWindowGlobalGeometry() const; -+ uint visualId() const; -+ -+ bool needsSync() const; -+ -+ void postSyncWindowRequest(); -+ void clearSyncWindowRequest() { m_pendingSyncRequest = 0; } -+ -+ QXcbScreen *xcbScreen() const; -+ -+ bool doStartSystemResize(const QPoint &globalPos, Qt::Corner corner); -+ -+ virtual void create(); -+ virtual void destroy(); -+ -+public Q_SLOTS: -+ void updateSyncRequestCounter(); -+ -+protected: -+ virtual void resolveFormat(const QSurfaceFormat &format) { m_format = format; } -+ virtual const xcb_visualtype_t *createVisual(); -+ -+ QXcbScreen *parentScreen(); -+ -+ QXcbScreen *initialScreen() const; -+ void changeNetWmState(bool set, xcb_atom_t one, xcb_atom_t two = 0); -+ NetWmStates netWmStates(); -+ void setNetWmStates(NetWmStates); -+ -+ void setMotifWindowFlags(Qt::WindowFlags flags); -+ void setNetWmStateWindowFlags(Qt::WindowFlags flags); -+ -+ void updateMotifWmHintsBeforeMap(); -+ void updateNetWmStateBeforeMap(); -+ -+ void setTransparentForMouseEvents(bool transparent); -+ void updateDoesNotAcceptFocus(bool doesNotAcceptFocus); -+ -+ QRect windowToWmGeometry(QRect r) const; -+ void sendXEmbedMessage(xcb_window_t window, quint32 message, -+ quint32 detail = 0, quint32 data1 = 0, quint32 data2 = 0); -+ void handleXEmbedMessage(const xcb_client_message_event_t *event); -+ -+ void show(); -+ void hide(); -+ -+ bool relayFocusToModalWindow() const; -+ void doFocusIn(); -+ void doFocusOut(); -+ -+ bool compressExposeEvent(QRegion &exposeRegion); -+ -+ void handleButtonPressEvent(int event_x, int event_y, int root_x, int root_y, -+ int detail, Qt::KeyboardModifiers modifiers, xcb_timestamp_t timestamp, Qt::MouseEventSource source = Qt::MouseEventNotSynthesized); -+ -+ void handleButtonReleaseEvent(int event_x, int event_y, int root_x, int root_y, -+ int detail, Qt::KeyboardModifiers modifiers, xcb_timestamp_t timestamp, Qt::MouseEventSource source = Qt::MouseEventNotSynthesized); -+ -+ void handleMotionNotifyEvent(int event_x, int event_y, int root_x, int root_y, -+ Qt::KeyboardModifiers modifiers, xcb_timestamp_t timestamp, Qt::MouseEventSource source = Qt::MouseEventNotSynthesized); -+ -+ void handleEnterNotifyEvent(int event_x, int event_y, int root_x, int root_y, -+ quint8 mode, quint8 detail, xcb_timestamp_t timestamp); -+ -+ void handleLeaveNotifyEvent(int root_x, int root_y, -+ quint8 mode, quint8 detail, xcb_timestamp_t timestamp); -+ -+ xcb_window_t m_window = 0; -+ xcb_colormap_t m_cmap = 0; -+ -+ uint m_depth = 0; -+ QImage::Format m_imageFormat = QImage::Format_ARGB32_Premultiplied; -+ bool m_imageRgbSwap = false; -+ -+ xcb_sync_int64_t m_syncValue; -+ xcb_sync_counter_t m_syncCounter = 0; -+ -+ Qt::WindowStates m_windowState = Qt::WindowNoState; -+ -+ xcb_gravity_t m_gravity = XCB_GRAVITY_STATIC; -+ -+ bool m_mapped = false; -+ bool m_transparent = false; -+ bool m_usingSyncProtocol = false; -+ bool m_deferredActivation = false; -+ bool m_embedded = false; -+ bool m_alertState = false; -+ bool m_minimized = false; -+ xcb_window_t m_netWmUserTimeWindow = XCB_NONE; -+ -+ QSurfaceFormat m_format; -+ -+ mutable bool m_dirtyFrameMargins = false; -+ mutable QMargins m_frameMargins; -+ -+ QRegion m_exposeRegion; -+ QSize m_oldWindowSize; -+ -+ xcb_visualid_t m_visualId = 0; -+ // Last sent state. Initialized to an invalid state, on purpose. -+ Qt::WindowStates m_lastWindowStateEvent = Qt::WindowActive; -+ -+ enum SyncState { -+ NoSyncNeeded, -+ SyncReceived, -+ SyncAndConfigureReceived -+ }; -+ SyncState m_syncState = NoSyncNeeded; -+ -+ QXcbSyncWindowRequest *m_pendingSyncRequest = nullptr; -+ xcb_cursor_t m_currentBitmapCursor = XCB_CURSOR_NONE; -+}; -+ -+class QXcbForeignWindow : public QXcbWindow -+{ -+public: -+ QXcbForeignWindow(QWindow *window, WId nativeHandle) -+ : QXcbWindow(window) { m_window = nativeHandle; } -+ ~QXcbForeignWindow(); -+ bool isForeignWindow() const override { return true; } -+ -+protected: -+ void create() override {} // No-op -+}; -+ -+QT_END_NAMESPACE -+ -+Q_DECLARE_METATYPE(QXcbWindow*) -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.10.1/qxcbwmsupport.h b/libqt5xcbqpa-dev/5.10.1/qxcbwmsupport.h -new file mode 100644 -index 0000000..b5de5b7 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.10.1/qxcbwmsupport.h -@@ -0,0 +1,68 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+#ifndef QXCBWMSUPPORT_H -+#define QXCBWMSUPPORT_H -+ -+#include "qxcbobject.h" -+#include "qxcbconnection.h" -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+class QXcbWMSupport : public QXcbObject -+{ -+public: -+ QXcbWMSupport(QXcbConnection *c); -+ -+ -+ bool isSupportedByWM(xcb_atom_t atom) const; -+ const QVector &virtualRoots() const { return net_virtual_roots; } -+ -+private: -+ friend class QXcbConnection; -+ void updateNetWMAtoms(); -+ void updateVirtualRoots(); -+ -+ QVector net_wm_atoms; -+ QVector net_virtual_roots; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.10.1/qxcbxsettings.h b/libqt5xcbqpa-dev/5.10.1/qxcbxsettings.h -new file mode 100644 -index 0000000..ab1f784 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.10.1/qxcbxsettings.h -@@ -0,0 +1,71 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBXSETTINGS_H -+#define QXCBXSETTINGS_H -+ -+#include "qxcbscreen.h" -+ -+QT_BEGIN_NAMESPACE -+ -+class QXcbXSettingsPrivate; -+ -+class QXcbXSettings : public QXcbWindowEventListener -+{ -+ Q_DECLARE_PRIVATE(QXcbXSettings) -+public: -+ QXcbXSettings(QXcbVirtualDesktop *screen); -+ ~QXcbXSettings(); -+ bool initialized() const; -+ -+ QVariant setting(const QByteArray &property) const; -+ -+ typedef void (*PropertyChangeFunc)(QXcbVirtualDesktop *screen, const QByteArray &name, const QVariant &property, void *handle); -+ void registerCallbackForProperty(const QByteArray &property, PropertyChangeFunc func, void *handle); -+ void removeCallbackForHandle(const QByteArray &property, void *handle); -+ void removeCallbackForHandle(void *handle); -+ -+ void handlePropertyNotifyEvent(const xcb_property_notify_event_t *event) override; -+private: -+ QXcbXSettingsPrivate *d_ptr; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif // QXCBXSETTINGS_H -diff --git a/libqt5xcbqpa-dev/5.9.2/qxcbbackingstore.h b/libqt5xcbqpa-dev/5.9.2/qxcbbackingstore.h -new file mode 100644 -index 0000000..94b5994 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.2/qxcbbackingstore.h -@@ -0,0 +1,85 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBBACKINGSTORE_H -+#define QXCBBACKINGSTORE_H -+ -+#include -+#include -+ -+#include -+ -+#include "qxcbobject.h" -+ -+QT_BEGIN_NAMESPACE -+ -+class QXcbShmImage; -+ -+class QXcbBackingStore : public QXcbObject, public QPlatformBackingStore -+{ -+public: -+ QXcbBackingStore(QWindow *window); -+ ~QXcbBackingStore(); -+ -+ QPaintDevice *paintDevice() override; -+ void flush(QWindow *window, const QRegion ®ion, const QPoint &offset) override; -+#ifndef QT_NO_OPENGL -+ void composeAndFlush(QWindow *window, const QRegion ®ion, const QPoint &offset, -+ QPlatformTextureList *textures, QOpenGLContext *context, -+ bool translucentBackground) override; -+#endif -+ QImage toImage() const override; -+ -+ QPlatformGraphicsBuffer *graphicsBuffer() const override; -+ -+ void resize(const QSize &size, const QRegion &staticContents) override; -+ bool scroll(const QRegion &area, int dx, int dy) override; -+ -+ void beginPaint(const QRegion &) override; -+ void endPaint() override; -+ -+private: -+ QXcbShmImage *m_image; -+ QStack m_paintRegions; -+ QImage m_rgbImage; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.9.2/qxcbclipboard.h b/libqt5xcbqpa-dev/5.9.2/qxcbclipboard.h -new file mode 100644 -index 0000000..bfeae13 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.2/qxcbclipboard.h -@@ -0,0 +1,119 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBCLIPBOARD_H -+#define QXCBCLIPBOARD_H -+ -+#include -+#include -+#include -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+#ifndef QT_NO_CLIPBOARD -+ -+class QXcbConnection; -+class QXcbScreen; -+class QXcbClipboardMime; -+ -+class QXcbClipboard : public QXcbObject, public QPlatformClipboard -+{ -+public: -+ QXcbClipboard(QXcbConnection *connection); -+ ~QXcbClipboard(); -+ -+ QMimeData *mimeData(QClipboard::Mode mode) override; -+ void setMimeData(QMimeData *data, QClipboard::Mode mode) override; -+ -+ bool supportsMode(QClipboard::Mode mode) const override; -+ bool ownsMode(QClipboard::Mode mode) const override; -+ -+ QXcbScreen *screen() const; -+ -+ xcb_window_t requestor() const; -+ void setRequestor(xcb_window_t window); -+ -+ xcb_window_t owner() const; -+ -+ void handleSelectionRequest(xcb_selection_request_event_t *event); -+ void handleSelectionClearRequest(xcb_selection_clear_event_t *event); -+ void handleXFixesSelectionRequest(xcb_xfixes_selection_notify_event_t *event); -+ -+ bool clipboardReadProperty(xcb_window_t win, xcb_atom_t property, bool deleteProperty, QByteArray *buffer, int *size, xcb_atom_t *type, int *format); -+ QByteArray clipboardReadIncrementalProperty(xcb_window_t win, xcb_atom_t property, int nbytes, bool nullterm); -+ -+ QByteArray getDataInFormat(xcb_atom_t modeAtom, xcb_atom_t fmtatom); -+ -+ void setProcessIncr(bool process) { m_incr_active = process; } -+ bool processIncr() { return m_incr_active; } -+ void incrTransactionPeeker(xcb_generic_event_t *ge, bool &accepted); -+ -+ xcb_window_t getSelectionOwner(xcb_atom_t atom) const; -+ QByteArray getSelection(xcb_atom_t selection, xcb_atom_t target, xcb_atom_t property, xcb_timestamp_t t = 0); -+ -+private: -+ xcb_generic_event_t *waitForClipboardEvent(xcb_window_t win, int type, int timeout, bool checkManager = false); -+ -+ xcb_atom_t sendTargetsSelection(QMimeData *d, xcb_window_t window, xcb_atom_t property); -+ xcb_atom_t sendSelection(QMimeData *d, xcb_atom_t target, xcb_window_t window, xcb_atom_t property); -+ -+ xcb_atom_t atomForMode(QClipboard::Mode mode) const; -+ QClipboard::Mode modeForAtom(xcb_atom_t atom) const; -+ -+ // Selection and Clipboard -+ QScopedPointer m_xClipboard[2]; -+ QMimeData *m_clientClipboard[2]; -+ xcb_timestamp_t m_timestamp[2]; -+ -+ xcb_window_t m_requestor = XCB_NONE; -+ xcb_window_t m_owner = XCB_NONE; -+ -+ static const int clipboard_timeout; -+ -+ bool m_incr_active = false; -+ bool m_clipboard_closing = false; -+ xcb_timestamp_t m_incr_receive_time = 0; -+}; -+ -+#endif // QT_NO_CLIPBOARD -+ -+QT_END_NAMESPACE -+ -+#endif // QXCBCLIPBOARD_H -diff --git a/libqt5xcbqpa-dev/5.9.2/qxcbconnection.h b/libqt5xcbqpa-dev/5.9.2/qxcbconnection.h -new file mode 100644 -index 0000000..edbc8d8 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.2/qxcbconnection.h -@@ -0,0 +1,775 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBCONNECTION_H -+#define QXCBCONNECTION_H -+ -+#include -+#include -+ -+#include -+#include "qxcbexport.h" -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+// This is needed to make Qt compile together with XKB. xkb.h is using a variable -+// which is called 'explicit', this is a reserved keyword in c++ -+#if QT_CONFIG(xkb) -+#define explicit dont_use_cxx_explicit -+#include -+#undef explicit -+#endif -+ -+#if QT_CONFIG(tabletevent) -+#include -+#endif -+ -+#if QT_CONFIG(xinput2) -+#include -+#ifdef XIScrollClass -+#define XCB_USE_XINPUT21 // XI 2.1 adds smooth scrolling support -+#ifdef XI_TouchBeginMask -+#define XCB_USE_XINPUT22 // XI 2.2 adds multi-point touch support -+#endif -+#endif -+struct XInput2TouchDeviceData; -+#endif // QT_CONFIG(xinput2) -+ -+struct xcb_randr_get_output_info_reply_t; -+ -+//#define Q_XCB_DEBUG -+ -+QT_BEGIN_NAMESPACE -+ -+Q_DECLARE_LOGGING_CATEGORY(lcQpaXInput) -+Q_DECLARE_LOGGING_CATEGORY(lcQpaXInputDevices) -+Q_DECLARE_LOGGING_CATEGORY(lcQpaXInputEvents) -+Q_DECLARE_LOGGING_CATEGORY(lcQpaScreen) -+ -+class QXcbVirtualDesktop; -+class QXcbScreen; -+class QXcbWindow; -+class QXcbDrag; -+class QXcbKeyboard; -+class QXcbClipboard; -+class QXcbWMSupport; -+class QXcbNativeInterface; -+class QXcbSystemTrayTracker; -+class QXcbGlIntegration; -+ -+namespace QXcbAtom { -+ enum Atom { -+ // window-manager <-> client protocols -+ WM_PROTOCOLS, -+ WM_DELETE_WINDOW, -+ WM_TAKE_FOCUS, -+ _NET_WM_PING, -+ _NET_WM_CONTEXT_HELP, -+ _NET_WM_SYNC_REQUEST, -+ _NET_WM_SYNC_REQUEST_COUNTER, -+ MANAGER, // System tray notification -+ _NET_SYSTEM_TRAY_OPCODE, // System tray operation -+ -+ // ICCCM window state -+ WM_STATE, -+ WM_CHANGE_STATE, -+ WM_CLASS, -+ WM_NAME, -+ -+ // Session management -+ WM_CLIENT_LEADER, -+ WM_WINDOW_ROLE, -+ SM_CLIENT_ID, -+ -+ // Clipboard -+ CLIPBOARD, -+ INCR, -+ TARGETS, -+ MULTIPLE, -+ TIMESTAMP, -+ SAVE_TARGETS, -+ CLIP_TEMPORARY, -+ _QT_SELECTION, -+ _QT_CLIPBOARD_SENTINEL, -+ _QT_SELECTION_SENTINEL, -+ CLIPBOARD_MANAGER, -+ -+ RESOURCE_MANAGER, -+ -+ _XSETROOT_ID, -+ -+ _QT_SCROLL_DONE, -+ _QT_INPUT_ENCODING, -+ -+ // Qt/XCB specific -+ _QT_CLOSE_CONNECTION, -+ -+ _MOTIF_WM_HINTS, -+ -+ DTWM_IS_RUNNING, -+ ENLIGHTENMENT_DESKTOP, -+ _DT_SAVE_MODE, -+ _SGI_DESKS_MANAGER, -+ -+ // EWMH (aka NETWM) -+ _NET_SUPPORTED, -+ _NET_VIRTUAL_ROOTS, -+ _NET_WORKAREA, -+ -+ _NET_MOVERESIZE_WINDOW, -+ _NET_WM_MOVERESIZE, -+ -+ _NET_WM_NAME, -+ _NET_WM_ICON_NAME, -+ _NET_WM_ICON, -+ -+ _NET_WM_PID, -+ -+ _NET_WM_WINDOW_OPACITY, -+ -+ _NET_WM_STATE, -+ _NET_WM_STATE_ABOVE, -+ _NET_WM_STATE_BELOW, -+ _NET_WM_STATE_FULLSCREEN, -+ _NET_WM_STATE_MAXIMIZED_HORZ, -+ _NET_WM_STATE_MAXIMIZED_VERT, -+ _NET_WM_STATE_MODAL, -+ _NET_WM_STATE_STAYS_ON_TOP, -+ _NET_WM_STATE_DEMANDS_ATTENTION, -+ -+ _NET_WM_USER_TIME, -+ _NET_WM_USER_TIME_WINDOW, -+ _NET_WM_FULL_PLACEMENT, -+ -+ _NET_WM_WINDOW_TYPE, -+ _NET_WM_WINDOW_TYPE_DESKTOP, -+ _NET_WM_WINDOW_TYPE_DOCK, -+ _NET_WM_WINDOW_TYPE_TOOLBAR, -+ _NET_WM_WINDOW_TYPE_MENU, -+ _NET_WM_WINDOW_TYPE_UTILITY, -+ _NET_WM_WINDOW_TYPE_SPLASH, -+ _NET_WM_WINDOW_TYPE_DIALOG, -+ _NET_WM_WINDOW_TYPE_DROPDOWN_MENU, -+ _NET_WM_WINDOW_TYPE_POPUP_MENU, -+ _NET_WM_WINDOW_TYPE_TOOLTIP, -+ _NET_WM_WINDOW_TYPE_NOTIFICATION, -+ _NET_WM_WINDOW_TYPE_COMBO, -+ _NET_WM_WINDOW_TYPE_DND, -+ _NET_WM_WINDOW_TYPE_NORMAL, -+ _KDE_NET_WM_WINDOW_TYPE_OVERRIDE, -+ -+ _KDE_NET_WM_FRAME_STRUT, -+ _NET_FRAME_EXTENTS, -+ -+ _NET_STARTUP_INFO, -+ _NET_STARTUP_INFO_BEGIN, -+ -+ _NET_SUPPORTING_WM_CHECK, -+ -+ _NET_WM_CM_S0, -+ -+ _NET_SYSTEM_TRAY_VISUAL, -+ -+ _NET_ACTIVE_WINDOW, -+ -+ // Property formats -+ TEXT, -+ UTF8_STRING, -+ CARDINAL, -+ -+ // Xdnd -+ XdndEnter, -+ XdndPosition, -+ XdndStatus, -+ XdndLeave, -+ XdndDrop, -+ XdndFinished, -+ XdndTypelist, -+ XdndActionList, -+ -+ XdndSelection, -+ -+ XdndAware, -+ XdndProxy, -+ -+ XdndActionCopy, -+ XdndActionLink, -+ XdndActionMove, -+ XdndActionPrivate, -+ -+ // Motif DND -+ _MOTIF_DRAG_AND_DROP_MESSAGE, -+ _MOTIF_DRAG_INITIATOR_INFO, -+ _MOTIF_DRAG_RECEIVER_INFO, -+ _MOTIF_DRAG_WINDOW, -+ _MOTIF_DRAG_TARGETS, -+ -+ XmTRANSFER_SUCCESS, -+ XmTRANSFER_FAILURE, -+ -+ // Xkb -+ _XKB_RULES_NAMES, -+ -+ // XEMBED -+ _XEMBED, -+ _XEMBED_INFO, -+ -+ // XInput2 -+ ButtonLeft, -+ ButtonMiddle, -+ ButtonRight, -+ ButtonWheelUp, -+ ButtonWheelDown, -+ ButtonHorizWheelLeft, -+ ButtonHorizWheelRight, -+ AbsMTPositionX, -+ AbsMTPositionY, -+ AbsMTTouchMajor, -+ AbsMTTouchMinor, -+ AbsMTOrientation, -+ AbsMTPressure, -+ AbsMTTrackingID, -+ MaxContacts, -+ RelX, -+ RelY, -+ // XInput2 tablet -+ AbsX, -+ AbsY, -+ AbsPressure, -+ AbsTiltX, -+ AbsTiltY, -+ AbsWheel, -+ AbsDistance, -+ WacomSerialIDs, -+ INTEGER, -+ RelHorizWheel, -+ RelVertWheel, -+ RelHorizScroll, -+ RelVertScroll, -+ -+ _XSETTINGS_SETTINGS, -+ -+ _COMPIZ_DECOR_PENDING, -+ _COMPIZ_DECOR_REQUEST, -+ _COMPIZ_DECOR_DELETE_PIXMAP, -+ _COMPIZ_TOOLKIT_ACTION, -+ _GTK_LOAD_ICONTHEMES, -+ -+ NPredefinedAtoms, -+ -+ _QT_SETTINGS_TIMESTAMP = NPredefinedAtoms, -+ NAtoms -+ }; -+} -+ -+typedef QVarLengthArray QXcbEventArray; -+ -+class QXcbConnection; -+class QXcbEventReader : public QThread -+{ -+ Q_OBJECT -+public: -+ QXcbEventReader(QXcbConnection *connection); -+ -+ void run() override; -+ -+ QXcbEventArray *lock(); -+ void unlock(); -+ -+ void start(); -+ -+ void registerEventDispatcher(QAbstractEventDispatcher *dispatcher); -+ -+signals: -+ void eventPending(); -+ -+private slots: -+ void registerForEvents(); -+ -+private: -+ void addEvent(xcb_generic_event_t *event); -+ -+ QMutex m_mutex; -+ QXcbEventArray m_events; -+ QXcbConnection *m_connection; -+}; -+ -+class QXcbWindowEventListener -+{ -+public: -+ virtual ~QXcbWindowEventListener() {} -+ virtual bool handleGenericEvent(xcb_generic_event_t *, long *) { return false; } -+ -+ virtual void handleExposeEvent(const xcb_expose_event_t *) {} -+ virtual void handleClientMessageEvent(const xcb_client_message_event_t *) {} -+ virtual void handleConfigureNotifyEvent(const xcb_configure_notify_event_t *) {} -+ virtual void handleMapNotifyEvent(const xcb_map_notify_event_t *) {} -+ virtual void handleUnmapNotifyEvent(const xcb_unmap_notify_event_t *) {} -+ virtual void handleDestroyNotifyEvent(const xcb_destroy_notify_event_t *) {} -+ virtual void handleButtonPressEvent(const xcb_button_press_event_t *) {} -+ virtual void handleButtonReleaseEvent(const xcb_button_release_event_t *) {} -+ virtual void handleMotionNotifyEvent(const xcb_motion_notify_event_t *) {} -+ virtual void handleEnterNotifyEvent(const xcb_enter_notify_event_t *) {} -+ virtual void handleLeaveNotifyEvent(const xcb_leave_notify_event_t *) {} -+ virtual void handleFocusInEvent(const xcb_focus_in_event_t *) {} -+ virtual void handleFocusOutEvent(const xcb_focus_out_event_t *) {} -+ virtual void handlePropertyNotifyEvent(const xcb_property_notify_event_t *) {} -+#ifdef XCB_USE_XINPUT22 -+ virtual void handleXIMouseEvent(xcb_ge_event_t *, Qt::MouseEventSource = Qt::MouseEventNotSynthesized) {} -+ virtual void handleXIEnterLeave(xcb_ge_event_t *) {} -+#endif -+ virtual QXcbWindow *toWindow() { return 0; } -+}; -+ -+typedef QHash WindowMapper; -+ -+class QXcbSyncWindowRequest : public QEvent -+{ -+public: -+ QXcbSyncWindowRequest(QXcbWindow *w) : QEvent(QEvent::Type(QEvent::User + 1)), m_window(w) { } -+ -+ QXcbWindow *window() const { return m_window; } -+ void invalidate(); -+ -+private: -+ QXcbWindow *m_window; -+}; -+ -+class QAbstractEventDispatcher; -+class Q_XCB_EXPORT QXcbConnection : public QObject -+{ -+ Q_OBJECT -+public: -+ QXcbConnection(QXcbNativeInterface *nativeInterface, bool canGrabServer, xcb_visualid_t defaultVisualId, const char *displayName = 0); -+ ~QXcbConnection(); -+ -+ QXcbConnection *connection() const { return const_cast(this); } -+ bool isConnected() const; -+ -+ const QList &virtualDesktops() const { return m_virtualDesktops; } -+ const QList &screens() const { return m_screens; } -+ int primaryScreenNumber() const { return m_primaryScreenNumber; } -+ QXcbVirtualDesktop *primaryVirtualDesktop() const { return m_virtualDesktops.value(m_primaryScreenNumber); } -+ QXcbScreen *primaryScreen() const; -+ -+ inline xcb_atom_t atom(QXcbAtom::Atom atom) const { return m_allAtoms[atom]; } -+ QXcbAtom::Atom qatom(xcb_atom_t atom) const; -+ xcb_atom_t internAtom(const char *name); -+ QByteArray atomName(xcb_atom_t atom); -+ -+ const char *displayName() const { return m_displayName.constData(); } -+ xcb_connection_t *xcb_connection() const { return m_connection; } -+ const xcb_setup_t *setup() const { return m_setup; } -+ const xcb_format_t *formatForDepth(uint8_t depth) const; -+ -+ QXcbKeyboard *keyboard() const { return m_keyboard; } -+ -+#ifndef QT_NO_CLIPBOARD -+ QXcbClipboard *clipboard() const { return m_clipboard; } -+#endif -+#ifndef QT_NO_DRAGANDDROP -+ QXcbDrag *drag() const { return m_drag; } -+#endif -+ -+ QXcbWMSupport *wmSupport() const { return m_wmSupport.data(); } -+ xcb_window_t rootWindow(); -+ xcb_window_t clientLeader(); -+ -+ bool hasDefaultVisualId() const { return m_defaultVisualId != UINT_MAX; } -+ xcb_visualid_t defaultVisualId() const { return m_defaultVisualId; } -+ -+#if QT_CONFIG(xcb_xlib) -+ void *xlib_display() const; -+ void *createVisualInfoForDefaultVisualId() const; -+#endif -+ -+#if QT_CONFIG(xinput2) -+ void xi2Select(xcb_window_t window); -+ void xi2SelectStateEvents(); -+#endif -+#ifdef XCB_USE_XINPUT21 -+ bool isAtLeastXI21() const { return m_xi2Enabled && m_xi2Minor >= 1; } -+#else -+ bool isAtLeastXI21() const { return false; } -+#endif -+#ifdef XCB_USE_XINPUT22 -+ bool isAtLeastXI22() const { return m_xi2Enabled && m_xi2Minor >= 2; } -+#else -+ bool isAtLeastXI22() const { return false; } -+#endif -+ -+ void sync(); -+ -+ void handleXcbError(xcb_generic_error_t *error); -+ void handleXcbEvent(xcb_generic_event_t *event); -+ -+ void addWindowEventListener(xcb_window_t id, QXcbWindowEventListener *eventListener); -+ void removeWindowEventListener(xcb_window_t id); -+ QXcbWindowEventListener *windowEventListenerFromId(xcb_window_t id); -+ QXcbWindow *platformWindowFromId(xcb_window_t id); -+ -+ template -+ inline xcb_generic_event_t *checkEvent(T &checker); -+ -+ typedef bool (*PeekFunc)(QXcbConnection *, xcb_generic_event_t *); -+ void addPeekFunc(PeekFunc f); -+ -+ inline xcb_timestamp_t time() const { return m_time; } -+ inline void setTime(xcb_timestamp_t t) { if (t > m_time) m_time = t; } -+ -+ inline xcb_timestamp_t netWmUserTime() const { return m_netWmUserTime; } -+ inline void setNetWmUserTime(xcb_timestamp_t t) { if (t > m_netWmUserTime) m_netWmUserTime = t; } -+ -+ bool hasXFixes() const { return xfixes_first_event > 0; } -+ bool hasXShape() const { return has_shape_extension; } -+ bool hasXRandr() const { return has_randr_extension; } -+ bool hasInputShape() const { return has_input_shape; } -+ bool hasXKB() const { return has_xkb; } -+ -+ bool supportsThreadedRendering() const { return m_reader->isRunning(); } -+ bool threadedEventHandling() const { return m_reader->isRunning(); } -+ -+ xcb_timestamp_t getTimestamp(); -+ xcb_window_t getSelectionOwner(xcb_atom_t atom) const; -+ xcb_window_t getQtSelectionOwner(); -+ -+ void setButton(Qt::MouseButton button, bool down) { m_buttons.setFlag(button, down); } -+ Qt::MouseButtons buttons() const { return m_buttons; } -+ Qt::MouseButton translateMouseButton(xcb_button_t s); -+ -+ QXcbWindow *focusWindow() const { return m_focusWindow; } -+ void setFocusWindow(QWindow *); -+ QXcbWindow *mouseGrabber() const { return m_mouseGrabber; } -+ void setMouseGrabber(QXcbWindow *); -+ QXcbWindow *mousePressWindow() const { return m_mousePressWindow; } -+ void setMousePressWindow(QXcbWindow *); -+ -+ QByteArray startupId() const { return m_startupId; } -+ void setStartupId(const QByteArray &nextId) { m_startupId = nextId; } -+ void clearStartupId() { m_startupId.clear(); } -+ -+ void grabServer(); -+ void ungrabServer(); -+ -+ QXcbNativeInterface *nativeInterface() const { return m_nativeInterface; } -+ -+ QXcbSystemTrayTracker *systemTrayTracker() const; -+ static bool xEmbedSystemTrayAvailable(); -+ static bool xEmbedSystemTrayVisualHasAlphaChannel(); -+ -+#ifdef XCB_USE_XINPUT21 -+ void handleEnterEvent(); -+#endif -+ -+#ifdef XCB_USE_XINPUT22 -+ bool startSystemResizeForTouchBegin(xcb_window_t window, const QPoint &point, Qt::Corner corner); -+ bool xi2SetMouseGrabEnabled(xcb_window_t w, bool grab); -+#endif -+ Qt::MouseButton xiToQtMouseButton(uint32_t b); -+ -+ QXcbEventReader *eventReader() const { return m_reader; } -+ -+ bool canGrab() const { return m_canGrabServer; } -+ -+ QXcbGlIntegration *glIntegration() const { return m_glIntegration; } -+ -+#ifdef XCB_USE_XINPUT22 -+ bool xi2MouseEvents() const; -+ bool isTouchScreen(int id) const; -+#endif -+ -+protected: -+ bool event(QEvent *e) override; -+ -+public slots: -+ void flush() { xcb_flush(m_connection); } -+ -+private slots: -+ void processXcbEvents(); -+ -+private: -+ void initializeAllAtoms(); -+ void sendConnectionEvent(QXcbAtom::Atom atom, uint id = 0); -+ void initializeXFixes(); -+ void initializeXRender(); -+ void initializeXRandr(); -+ void initializeXinerama(); -+ void initializeXShape(); -+ void initializeXKB(); -+ void handleClientMessageEvent(const xcb_client_message_event_t *event); -+ QXcbScreen* findScreenForCrtc(xcb_window_t rootWindow, xcb_randr_crtc_t crtc) const; -+ QXcbScreen* findScreenForOutput(xcb_window_t rootWindow, xcb_randr_output_t output) const; -+ QXcbVirtualDesktop* virtualDesktopForRootWindow(xcb_window_t rootWindow) const; -+ void updateScreens(const xcb_randr_notify_event_t *event); -+ bool checkOutputIsPrimary(xcb_window_t rootWindow, xcb_randr_output_t output); -+ void updateScreen(QXcbScreen *screen, const xcb_randr_output_change_t &outputChange); -+ QXcbScreen *createScreen(QXcbVirtualDesktop *virtualDesktop, -+ const xcb_randr_output_change_t &outputChange, -+ xcb_randr_get_output_info_reply_t *outputInfo); -+ void destroyScreen(QXcbScreen *screen); -+ void initializeScreens(); -+ bool compressEvent(xcb_generic_event_t *event, int currentIndex, QXcbEventArray *eventqueue) const; -+#if QT_CONFIG(xinput2) -+ bool m_xi2Enabled = false; -+ int m_xi2Minor = 2; -+ void initializeXInput2(); -+ void finalizeXInput2(); -+ void xi2SetupDevices(); -+ XInput2TouchDeviceData *touchDeviceForId(int id); -+ void xi2HandleEvent(xcb_ge_event_t *event); -+ void xi2HandleHierachyEvent(void *event); -+ void xi2HandleDeviceChangedEvent(void *event); -+ int m_xiOpCode, m_xiEventBase, m_xiErrorBase; -+#ifdef XCB_USE_XINPUT22 -+ void xi2ProcessTouch(void *xiDevEvent, QXcbWindow *platformWindow); -+#endif // XCB_USE_XINPUT22 -+#if QT_CONFIG(tabletevent) -+ struct TabletData { -+ int deviceId = 0; -+ QTabletEvent::PointerType pointerType = QTabletEvent::UnknownPointer; -+ QTabletEvent::TabletDevice tool = QTabletEvent::Stylus; -+ Qt::MouseButtons buttons = 0; -+ qint64 serialId = 0; -+ bool inProximity = false; -+ struct ValuatorClassInfo { -+ double minVal = 0; -+ double maxVal = 0; -+ double curVal = 0; -+ int number = -1; -+ }; -+ QHash valuatorInfo; -+ }; -+ friend class QTypeInfo; -+ friend class QTypeInfo; -+ bool xi2HandleTabletEvent(const void *event, TabletData *tabletData); -+ void xi2ReportTabletEvent(const void *event, TabletData *tabletData); -+ QVector m_tabletData; -+ TabletData *tabletDataForDevice(int id); -+#endif // QT_CONFIG(tabletevent) -+ struct ScrollingDevice { -+ int deviceId = 0; -+ int verticalIndex = 0; -+ int horizontalIndex = 0; -+ double verticalIncrement = 0; -+ double horizontalIncrement = 0; -+ Qt::Orientations orientations = 0; -+ Qt::Orientations legacyOrientations = 0; -+ QPointF lastScrollPosition; -+ }; -+ void updateScrollingDevice(ScrollingDevice& scrollingDevice, int num_classes, void *classes); -+ void xi2HandleScrollEvent(void *event, ScrollingDevice &scrollingDevice); -+ QHash m_scrollingDevices; -+ -+ static bool xi2GetValuatorValueIfSet(const void *event, int valuatorNum, double *value); -+ static void xi2PrepareXIGenericDeviceEvent(xcb_ge_event_t *event); -+#endif -+ -+ xcb_connection_t *m_connection = nullptr; -+ const xcb_setup_t *m_setup = nullptr; -+ const bool m_canGrabServer; -+ const xcb_visualid_t m_defaultVisualId; -+ -+ QList m_virtualDesktops; -+ QList m_screens; -+ int m_primaryScreenNumber = 0; -+ -+ xcb_atom_t m_allAtoms[QXcbAtom::NAtoms]; -+ -+ xcb_timestamp_t m_time = XCB_CURRENT_TIME; -+ xcb_timestamp_t m_netWmUserTime = XCB_CURRENT_TIME; -+ -+ QByteArray m_displayName; -+ -+ QXcbKeyboard *m_keyboard = nullptr; -+#ifndef QT_NO_CLIPBOARD -+ QXcbClipboard *m_clipboard = nullptr; -+#endif -+#ifndef QT_NO_DRAGANDDROP -+ QXcbDrag *m_drag = nullptr; -+#endif -+ QScopedPointer m_wmSupport; -+ QXcbNativeInterface *m_nativeInterface = nullptr; -+ -+#if QT_CONFIG(xcb_xlib) -+ void *m_xlib_display = nullptr; -+#endif -+ QXcbEventReader *m_reader = nullptr; -+#if QT_CONFIG(xinput2) -+ QHash m_touchDevices; -+#ifdef XCB_USE_XINPUT22 -+ struct StartSystemResizeInfo { -+ xcb_window_t window; -+ uint16_t deviceid; -+ uint32_t pointid; -+ Qt::Corner corner; -+ } m_startSystemResizeInfo; -+#endif -+#endif -+#ifdef Q_XCB_DEBUG -+ struct CallInfo { -+ int sequence; -+ QByteArray file; -+ int line; -+ }; -+ QVector m_callLog; -+ QMutex m_callLogMutex; -+ void log(const char *file, int line, int sequence); -+ template -+ friend cookie_t q_xcb_call_template(const cookie_t &cookie, QXcbConnection *connection, -+ const char *file, int line); -+ template -+ friend reply_t *q_xcb_call_template(reply_t *reply, QXcbConnection *connection, -+ const char *file, int line); -+#endif -+ -+ WindowMapper m_mapper; -+ -+ QVector m_peekFuncs; -+ -+ uint32_t xfixes_first_event = 0; -+ uint32_t xrandr_first_event = 0; -+ uint32_t xkb_first_event = 0; -+ -+ bool has_xinerama_extension = false; -+ bool has_shape_extension = false; -+ bool has_randr_extension = false; -+ bool has_input_shape; -+ bool has_xkb = false; -+ -+ Qt::MouseButtons m_buttons = 0; -+ -+ QXcbWindow *m_focusWindow = nullptr; -+ QXcbWindow *m_mouseGrabber = nullptr; -+ QXcbWindow *m_mousePressWindow = nullptr; -+ -+ xcb_window_t m_clientLeader = 0; -+ QByteArray m_startupId; -+ QXcbSystemTrayTracker *m_systemTrayTracker = nullptr; -+ QXcbGlIntegration *m_glIntegration = nullptr; -+ bool m_xiGrab = false; -+ -+ xcb_window_t m_qtSelectionOwner = 0; -+ -+ friend class QXcbEventReader; -+}; -+#if QT_CONFIG(xinput2) -+#if QT_CONFIG(tabletevent) -+Q_DECLARE_TYPEINFO(QXcbConnection::TabletData::ValuatorClassInfo, Q_PRIMITIVE_TYPE); -+Q_DECLARE_TYPEINFO(QXcbConnection::TabletData, Q_MOVABLE_TYPE); -+#endif -+#endif -+ -+#define DISPLAY_FROM_XCB(object) (reinterpret_cast(object->connection()->xlib_display())) -+#define CREATE_VISUALINFO_FROM_DEFAULT_VISUALID(object) ((XVisualInfo *)(object->connection()->createVisualInfoForDefaultVisualId())) -+ -+template -+xcb_generic_event_t *QXcbConnection::checkEvent(T &checker) -+{ -+ QXcbEventArray *eventqueue = m_reader->lock(); -+ -+ for (int i = 0; i < eventqueue->size(); ++i) { -+ xcb_generic_event_t *event = eventqueue->at(i); -+ if (checker.checkEvent(event)) { -+ (*eventqueue)[i] = 0; -+ m_reader->unlock(); -+ return event; -+ } -+ } -+ m_reader->unlock(); -+ return 0; -+} -+ -+class QXcbConnectionGrabber -+{ -+public: -+ QXcbConnectionGrabber(QXcbConnection *connection); -+ ~QXcbConnectionGrabber(); -+ void release(); -+private: -+ QXcbConnection *m_connection; -+}; -+ -+template -+union q_padded_xcb_event { -+ T event; -+ char padding[32]; -+}; -+ -+// The xcb_send_event() requires all events to have 32 bytes. It calls memcpy() on the -+// passed in event. If the passed in event is less than 32 bytes, memcpy() reaches into -+// unrelated memory. -+#define Q_DECLARE_XCB_EVENT(event_var, event_type) \ -+ q_padded_xcb_event store = {}; \ -+ auto &event_var = store.event; -+ -+#ifdef Q_XCB_DEBUG -+template -+cookie_t q_xcb_call_template(const cookie_t &cookie, QXcbConnection *connection, const char *file, -+ int line) -+{ -+ connection->log(file, line, cookie.sequence); -+ return cookie; -+} -+ -+template -+reply_t *q_xcb_call_template(reply_t *reply, QXcbConnection *connection, const char *file, int line) -+{ -+ connection->log(file, line, reply->sequence); -+ return reply; -+} -+#define Q_XCB_CALL(x) q_xcb_call_template(x, connection(), __FILE__, __LINE__) -+#define Q_XCB_CALL2(x, connection) q_xcb_call_template(x, connection, __FILE__, __LINE__) -+#define Q_XCB_NOOP(c) q_xcb_call_template(xcb_no_operation(c->xcb_connection()), c, __FILE__, __LINE__); -+#else -+#define Q_XCB_CALL(x) x -+#define Q_XCB_CALL2(x, connection) x -+#define Q_XCB_NOOP(c) (void)c; -+#endif -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.9.2/qxcbcursor.h b/libqt5xcbqpa-dev/5.9.2/qxcbcursor.h -new file mode 100644 -index 0000000..e3f8851 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.2/qxcbcursor.h -@@ -0,0 +1,115 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBCURSOR_H -+#define QXCBCURSOR_H -+ -+#include -+#include "qxcbscreen.h" -+ -+QT_BEGIN_NAMESPACE -+ -+#ifndef QT_NO_CURSOR -+ -+struct QXcbCursorCacheKey -+{ -+ explicit QXcbCursorCacheKey(const QCursor &c); -+ explicit QXcbCursorCacheKey(Qt::CursorShape s) : shape(s), bitmapCacheKey(0), maskCacheKey(0) {} -+ QXcbCursorCacheKey() : shape(Qt::CustomCursor), bitmapCacheKey(0), maskCacheKey(0) {} -+ -+ Qt::CursorShape shape; -+ qint64 bitmapCacheKey; -+ qint64 maskCacheKey; -+}; -+ -+inline bool operator==(const QXcbCursorCacheKey &k1, const QXcbCursorCacheKey &k2) -+{ -+ return k1.shape == k2.shape && k1.bitmapCacheKey == k2.bitmapCacheKey && k1.maskCacheKey == k2.maskCacheKey; -+} -+ -+inline uint qHash(const QXcbCursorCacheKey &k, uint seed) Q_DECL_NOTHROW -+{ -+ return (uint(k.shape) + uint(k.bitmapCacheKey) + uint(k.maskCacheKey)) ^ seed; -+} -+ -+#endif // !QT_NO_CURSOR -+ -+class QXcbCursor : public QXcbObject, public QPlatformCursor -+{ -+public: -+ QXcbCursor(QXcbConnection *conn, QXcbScreen *screen); -+ ~QXcbCursor(); -+#ifndef QT_NO_CURSOR -+ void changeCursor(QCursor *cursor, QWindow *widget) override; -+#endif -+ QPoint pos() const override; -+ void setPos(const QPoint &pos) override; -+ -+ static void queryPointer(QXcbConnection *c, QXcbVirtualDesktop **virtualDesktop, QPoint *pos, int *keybMask = 0); -+ -+#ifndef QT_NO_CURSOR -+ xcb_cursor_t xcbCursor(const QCursor &c) const -+ { return m_cursorHash.value(QXcbCursorCacheKey(c), xcb_cursor_t(0)); } -+#endif -+ -+private: -+#ifndef QT_NO_CURSOR -+ typedef QHash CursorHash; -+ -+ xcb_cursor_t createFontCursor(int cshape); -+ xcb_cursor_t createBitmapCursor(QCursor *cursor); -+ xcb_cursor_t createNonStandardCursor(int cshape); -+#endif -+ -+ QXcbScreen *m_screen; -+#ifndef QT_NO_CURSOR -+ CursorHash m_cursorHash; -+#endif -+#if QT_CONFIG(xcb_xlib) && QT_CONFIG(library) -+ static void cursorThemePropertyChanged(QXcbVirtualDesktop *screen, -+ const QByteArray &name, -+ const QVariant &property, -+ void *handle); -+#endif -+ bool m_gtkCursorThemeInitialized; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.9.2/qxcbdrag.h b/libqt5xcbqpa-dev/5.9.2/qxcbdrag.h -new file mode 100644 -index 0000000..2d152ed ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.2/qxcbdrag.h -@@ -0,0 +1,177 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the QtGui module of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBDRAG_H -+#define QXCBDRAG_H -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+#ifndef QT_NO_DRAGANDDROP -+ -+class QWindow; -+class QPlatformWindow; -+class QXcbConnection; -+class QXcbWindow; -+class QXcbDropData; -+class QXcbScreen; -+class QDrag; -+class QShapedPixmapWindow; -+ -+class QXcbDrag : public QXcbObject, public QBasicDrag -+{ -+public: -+ QXcbDrag(QXcbConnection *c); -+ ~QXcbDrag(); -+ -+ QMimeData *platformDropData() override; -+ bool eventFilter(QObject *o, QEvent *e) override; -+ -+ void startDrag() override; -+ void cancel() override; -+ void move(const QPoint &globalPos) override; -+ void drop(const QPoint &globalPos) override; -+ void endDrag() override; -+ -+ void handleEnter(QPlatformWindow *window, const xcb_client_message_event_t *event, xcb_window_t proxy = 0); -+ void handlePosition(QPlatformWindow *w, const xcb_client_message_event_t *event); -+ void handleLeave(QPlatformWindow *w, const xcb_client_message_event_t *event); -+ void handleDrop(QPlatformWindow *, const xcb_client_message_event_t *event); -+ -+ void handleStatus(const xcb_client_message_event_t *event); -+ void handleSelectionRequest(const xcb_selection_request_event_t *event); -+ void handleFinished(const xcb_client_message_event_t *event); -+ -+ bool dndEnable(QXcbWindow *win, bool on); -+ bool ownsDragObject() const override; -+ -+ void updatePixmap(); -+ xcb_timestamp_t targetTime() { return target_time; } -+ -+protected: -+ void timerEvent(QTimerEvent* e) override; -+ -+private: -+ friend class QXcbDropData; -+ -+ void init(); -+ -+ void handle_xdnd_position(QPlatformWindow *w, const xcb_client_message_event_t *event); -+ void handle_xdnd_status(const xcb_client_message_event_t *event); -+ void send_leave(); -+ -+ Qt::DropAction toDropAction(xcb_atom_t atom) const; -+ xcb_atom_t toXdndAction(Qt::DropAction a) const; -+ -+ QPointer initiatorWindow; -+ QPointer currentWindow; -+ QPoint currentPosition; -+ -+ QXcbDropData *dropData; -+ Qt::DropAction accepted_drop_action; -+ -+ QWindow *desktop_proxy; -+ -+ xcb_atom_t xdnd_dragsource; -+ -+ // the types in this drop. 100 is no good, but at least it's big. -+ enum { xdnd_max_type = 100 }; -+ QVector xdnd_types; -+ -+ // timestamp from XdndPosition and XdndDroptime for retrieving the data -+ xcb_timestamp_t target_time; -+ xcb_timestamp_t source_time; -+ -+ // rectangle in which the answer will be the same -+ QRect source_sameanswer; -+ bool waiting_for_status; -+ -+ // top-level window we sent position to last. -+ xcb_window_t current_target; -+ // window to send events to (always valid if current_target) -+ xcb_window_t current_proxy_target; -+ -+ QXcbVirtualDesktop *current_virtual_desktop; -+ -+ // 10 minute timer used to discard old XdndDrop transactions -+ enum { XdndDropTransactionTimeout = 600000 }; -+ int cleanup_timer; -+ -+ QVector drag_types; -+ -+ struct Transaction -+ { -+ xcb_timestamp_t timestamp; -+ xcb_window_t target; -+ xcb_window_t proxy_target; -+ QPlatformWindow *targetWindow; -+// QWidget *embedding_widget; -+ QPointer drag; -+ QTime time; -+ }; -+ friend class QTypeInfo; -+ QVector transactions; -+ -+ int transaction_expiry_timer; -+ void restartDropExpiryTimer(); -+ int findTransactionByWindow(xcb_window_t window); -+ int findTransactionByTime(xcb_timestamp_t timestamp); -+ xcb_window_t findRealWindow(const QPoint & pos, xcb_window_t w, int md, bool ignoreNonXdndAwareWindows); -+}; -+Q_DECLARE_TYPEINFO(QXcbDrag::Transaction, Q_MOVABLE_TYPE); -+ -+#endif // QT_NO_DRAGANDDROP -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.9.2/qxcbexport.h b/libqt5xcbqpa-dev/5.9.2/qxcbexport.h -new file mode 100644 -index 0000000..4db23a9 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.2/qxcbexport.h -@@ -0,0 +1,55 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBEXPORT_H -+#define QXCBEXPORT_H -+ -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+# if defined(QT_BUILD_XCB_PLUGIN) -+# define Q_XCB_EXPORT Q_DECL_EXPORT -+# else -+# define Q_XCB_EXPORT Q_DECL_IMPORT -+# endif -+ -+QT_END_NAMESPACE -+#endif //QXCBEXPORT_H -+ -diff --git a/libqt5xcbqpa-dev/5.9.2/qxcbimage.h b/libqt5xcbqpa-dev/5.9.2/qxcbimage.h -new file mode 100644 -index 0000000..a9071a4 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.2/qxcbimage.h -@@ -0,0 +1,62 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBIMAGE_H -+#define QXCBIMAGE_H -+ -+#include "qxcbscreen.h" -+#include -+#include -+#include -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+QImage::Format qt_xcb_imageFormatForVisual(QXcbConnection *connection, -+ uint8_t depth, const xcb_visualtype_t *visual); -+QPixmap qt_xcb_pixmapFromXPixmap(QXcbConnection *connection, xcb_pixmap_t pixmap, -+ int width, int height, int depth, -+ const xcb_visualtype_t *visual); -+xcb_pixmap_t qt_xcb_XPixmapFromBitmap(QXcbScreen *screen, const QImage &image); -+xcb_cursor_t qt_xcb_createCursorXRender(QXcbScreen *screen, const QImage &image, -+ const QPoint &spot); -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.9.2/qxcbintegration.h b/libqt5xcbqpa-dev/5.9.2/qxcbintegration.h -new file mode 100644 -index 0000000..b3d72c1 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.2/qxcbintegration.h -@@ -0,0 +1,145 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBINTEGRATION_H -+#define QXCBINTEGRATION_H -+ -+#include -+#include -+#include -+ -+#include "qxcbexport.h" -+ -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+class QXcbConnection; -+class QAbstractEventDispatcher; -+class QXcbNativeInterface; -+class QXcbScreen; -+ -+class Q_XCB_EXPORT QXcbIntegration : public QPlatformIntegration -+{ -+public: -+ QXcbIntegration(const QStringList ¶meters, int &argc, char **argv); -+ ~QXcbIntegration(); -+ -+ QPlatformWindow *createPlatformWindow(QWindow *window) const override; -+ QPlatformWindow *createForeignWindow(QWindow *window, WId nativeHandle) const override; -+#ifndef QT_NO_OPENGL -+ QPlatformOpenGLContext *createPlatformOpenGLContext(QOpenGLContext *context) const override; -+#endif -+ QPlatformBackingStore *createPlatformBackingStore(QWindow *window) const override; -+ -+ QPlatformOffscreenSurface *createPlatformOffscreenSurface(QOffscreenSurface *surface) const override; -+ -+ bool hasCapability(Capability cap) const override; -+ QAbstractEventDispatcher *createEventDispatcher() const override; -+ void initialize() override; -+ -+ void moveToScreen(QWindow *window, int screen); -+ -+ QPlatformFontDatabase *fontDatabase() const override; -+ -+ QPlatformNativeInterface *nativeInterface()const override; -+ -+#ifndef QT_NO_CLIPBOARD -+ QPlatformClipboard *clipboard() const override; -+#endif -+#ifndef QT_NO_DRAGANDDROP -+ QPlatformDrag *drag() const override; -+#endif -+ -+ QPlatformInputContext *inputContext() const override; -+ -+#ifndef QT_NO_ACCESSIBILITY -+ QPlatformAccessibility *accessibility() const override; -+#endif -+ -+ QPlatformServices *services() const override; -+ -+ Qt::KeyboardModifiers queryKeyboardModifiers() const override; -+ QList possibleKeys(const QKeyEvent *e) const override; -+ -+ QStringList themeNames() const override; -+ QPlatformTheme *createPlatformTheme(const QString &name) const override; -+ QVariant styleHint(StyleHint hint) const override; -+ -+ QXcbConnection *defaultConnection() const { return m_connections.first(); } -+ -+ QByteArray wmClass() const; -+ -+#if QT_CONFIG(xcb_sm) -+ QPlatformSessionManager *createPlatformSessionManager(const QString &id, const QString &key) const override; -+#endif -+ -+ void sync() override; -+ -+ void beep() const override; -+ -+ static QXcbIntegration *instance() { return m_instance; } -+ -+private: -+ QList m_connections; -+ -+ QScopedPointer m_fontDatabase; -+ QScopedPointer m_nativeInterface; -+ -+ QScopedPointer m_inputContext; -+ -+#ifndef QT_NO_ACCESSIBILITY -+ mutable QScopedPointer m_accessibility; -+#endif -+ -+ QScopedPointer m_services; -+ -+ friend class QXcbConnection; // access QPlatformIntegration::screenAdded() -+ -+ mutable QByteArray m_wmClass; -+ const char *m_instanceName; -+ bool m_canGrab; -+ xcb_visualid_t m_defaultVisualId; -+ -+ static QXcbIntegration *m_instance; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.9.2/qxcbkeyboard.h b/libqt5xcbqpa-dev/5.9.2/qxcbkeyboard.h -new file mode 100644 -index 0000000..74f9da0 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.2/qxcbkeyboard.h -@@ -0,0 +1,151 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBKEYBOARD_H -+#define QXCBKEYBOARD_H -+ -+#include "qxcbobject.h" -+ -+#include -+ -+#include -+#if QT_CONFIG(xkb) -+#include -+#endif -+ -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+class QWindow; -+ -+class QXcbKeyboard : public QXcbObject -+{ -+public: -+ QXcbKeyboard(QXcbConnection *connection); -+ -+ ~QXcbKeyboard(); -+ -+ void handleKeyPressEvent(const xcb_key_press_event_t *event); -+ void handleKeyReleaseEvent(const xcb_key_release_event_t *event); -+ void handleMappingNotifyEvent(const void *event); -+ -+ Qt::KeyboardModifiers translateModifiers(int s) const; -+ void updateKeymap(); -+ QList possibleKeys(const QKeyEvent *e) const; -+ -+ // when XKEYBOARD not present on the X server -+ void updateXKBMods(); -+ quint32 xkbModMask(quint16 state); -+ void updateXKBStateFromCore(quint16 state); -+#ifdef XCB_USE_XINPUT22 -+ void updateXKBStateFromXI(void *modInfo, void *groupInfo); -+#endif -+#if QT_CONFIG(xkb) -+ // when XKEYBOARD is present on the X server -+ int coreDeviceId() const { return core_device_id; } -+ void updateXKBState(xcb_xkb_state_notify_event_t *state); -+#endif -+ -+protected: -+ void handleKeyEvent(xcb_window_t sourceWindow, QEvent::Type type, xcb_keycode_t code, quint16 state, xcb_timestamp_t time); -+ -+ void resolveMaskConflicts(); -+ QString lookupString(struct xkb_state *state, xcb_keycode_t code) const; -+ int keysymToQtKey(xcb_keysym_t keysym) const; -+ int keysymToQtKey(xcb_keysym_t keysym, Qt::KeyboardModifiers &modifiers, const QString &text) const; -+ void printKeymapError(const char *error) const; -+ -+ void readXKBConfig(); -+ void clearXKBConfig(); -+ // when XKEYBOARD not present on the X server -+ void updateModifiers(); -+ // when XKEYBOARD is present on the X server -+ void updateVModMapping(); -+ void updateVModToRModMapping(); -+ -+ xkb_keysym_t lookupLatinKeysym(xkb_keycode_t keycode) const; -+ void checkForLatinLayout(); -+ -+private: -+ void updateXKBStateFromState(struct xkb_state *kb_state, quint16 state); -+ -+ bool m_config = false; -+ xcb_keycode_t m_autorepeat_code = 0; -+ -+ struct xkb_context *xkb_context = nullptr; -+ struct xkb_keymap *xkb_keymap = nullptr; -+ struct xkb_state *xkb_state = nullptr; -+ struct xkb_rule_names xkb_names; -+ mutable struct xkb_keymap *latin_keymap = nullptr; -+ -+ struct _mod_masks { -+ uint alt; -+ uint altgr; -+ uint meta; -+ uint super; -+ uint hyper; -+ }; -+ -+ _mod_masks rmod_masks; -+ -+ // when XKEYBOARD not present on the X server -+ xcb_key_symbols_t *m_key_symbols; -+ struct _xkb_mods { -+ xkb_mod_index_t shift; -+ xkb_mod_index_t lock; -+ xkb_mod_index_t control; -+ xkb_mod_index_t mod1; -+ xkb_mod_index_t mod2; -+ xkb_mod_index_t mod3; -+ xkb_mod_index_t mod4; -+ xkb_mod_index_t mod5; -+ }; -+ _xkb_mods xkb_mods; -+#if QT_CONFIG(xkb) -+ // when XKEYBOARD is present on the X server -+ _mod_masks vmod_masks; -+ int core_device_id; -+#endif -+ bool m_hasLatinLayout = false; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.9.2/qxcbmime.h b/libqt5xcbqpa-dev/5.9.2/qxcbmime.h -new file mode 100644 -index 0000000..561631a ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.2/qxcbmime.h -@@ -0,0 +1,75 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBMIME_H -+#define QXCBMIME_H -+ -+#include -+ -+#include -+ -+#include "qxcbintegration.h" -+#include "qxcbconnection.h" -+ -+QT_BEGIN_NAMESPACE -+ -+#if !(defined(QT_NO_DRAGANDDROP) && defined(QT_NO_CLIPBOARD)) -+ -+class QXcbMime : public QInternalMimeData { -+ Q_OBJECT -+public: -+ QXcbMime(); -+ ~QXcbMime(); -+ -+ static QVector mimeAtomsForFormat(QXcbConnection *connection, const QString &format); -+ static QString mimeAtomToString(QXcbConnection *connection, xcb_atom_t a); -+ static bool mimeDataForAtom(QXcbConnection *connection, xcb_atom_t a, QMimeData *mimeData, QByteArray *data, -+ xcb_atom_t *atomFormat, int *dataFormat); -+ static QVariant mimeConvertToFormat(QXcbConnection *connection, xcb_atom_t a, const QByteArray &data, const QString &format, -+ QVariant::Type requestedType, const QByteArray &encoding); -+ static xcb_atom_t mimeAtomForFormat(QXcbConnection *connection, const QString &format, QVariant::Type requestedType, -+ const QVector &atoms, QByteArray *requestedEncoding); -+}; -+ -+#endif // !(defined(QT_NO_DRAGANDDROP) && defined(QT_NO_CLIPBOARD)) -+ -+ -+QT_END_NAMESPACE -+ -+#endif // QXCBMIME_H -diff --git a/libqt5xcbqpa-dev/5.9.2/qxcbnativeinterface.h b/libqt5xcbqpa-dev/5.9.2/qxcbnativeinterface.h -new file mode 100644 -index 0000000..4186d77 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.2/qxcbnativeinterface.h -@@ -0,0 +1,152 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBNATIVEINTERFACE_H -+#define QXCBNATIVEINTERFACE_H -+ -+#include -+#include -+ -+#include -+ -+#include "qxcbexport.h" -+ -+QT_BEGIN_NAMESPACE -+ -+class QWidget; -+class QXcbScreen; -+class QXcbConnection; -+class QXcbNativeInterfaceHandler; -+ -+class Q_XCB_EXPORT QXcbNativeInterface : public QPlatformNativeInterface -+{ -+ Q_OBJECT -+public: -+ enum ResourceType { -+ Display, -+ Connection, -+ Screen, -+ AppTime, -+ AppUserTime, -+ ScreenHintStyle, -+ StartupId, -+ TrayWindow, -+ GetTimestamp, -+ X11Screen, -+ RootWindow, -+ ScreenSubpixelType, -+ ScreenAntialiasingEnabled, -+ AtspiBus, -+ CompositingEnabled -+ }; -+ -+ QXcbNativeInterface(); -+ -+ void *nativeResourceForIntegration(const QByteArray &resource) override; -+ void *nativeResourceForContext(const QByteArray &resourceString, QOpenGLContext *context) override; -+ void *nativeResourceForScreen(const QByteArray &resource, QScreen *screen) override; -+ void *nativeResourceForWindow(const QByteArray &resourceString, QWindow *window) override; -+ void *nativeResourceForBackingStore(const QByteArray &resource, QBackingStore *backingStore) override; -+#ifndef QT_NO_CURSOR -+ void *nativeResourceForCursor(const QByteArray &resource, const QCursor &cursor) override; -+#endif -+ -+ NativeResourceForIntegrationFunction nativeResourceFunctionForIntegration(const QByteArray &resource) override; -+ NativeResourceForContextFunction nativeResourceFunctionForContext(const QByteArray &resource) override; -+ NativeResourceForScreenFunction nativeResourceFunctionForScreen(const QByteArray &resource) override; -+ NativeResourceForWindowFunction nativeResourceFunctionForWindow(const QByteArray &resource) override; -+ NativeResourceForBackingStoreFunction nativeResourceFunctionForBackingStore(const QByteArray &resource) override; -+ -+ QFunctionPointer platformFunction(const QByteArray &function) const override; -+ -+ inline const QByteArray &genericEventFilterType() const { return m_genericEventFilterType; } -+ -+ void *displayForWindow(QWindow *window); -+ void *connectionForWindow(QWindow *window); -+ void *screenForWindow(QWindow *window); -+ void *appTime(const QXcbScreen *screen); -+ void *appUserTime(const QXcbScreen *screen); -+ void *getTimestamp(const QXcbScreen *screen); -+ void *startupId(); -+ void *x11Screen(); -+ void *rootWindow(); -+ void *display(); -+ void *atspiBus(); -+ void *connection(); -+ static void setStartupId(const char *); -+ static void setAppTime(QScreen *screen, xcb_timestamp_t time); -+ static void setAppUserTime(QScreen *screen, xcb_timestamp_t time); -+ -+ Q_INVOKABLE bool systemTrayAvailable(const QScreen *screen) const; -+ Q_INVOKABLE void setParentRelativeBackPixmap(QWindow *window); -+ Q_INVOKABLE bool systrayVisualHasAlphaChannel(); -+ Q_INVOKABLE bool requestSystemTrayWindowDock(const QWindow *window); -+ Q_INVOKABLE QRect systemTrayWindowGlobalGeometry(const QWindow *window); -+ -+ void addHandler(QXcbNativeInterfaceHandler *handler); -+ void removeHandler(QXcbNativeInterfaceHandler *handler); -+signals: -+ void systemTrayWindowChanged(QScreen *screen); -+ -+private: -+ xcb_window_t locateSystemTray(xcb_connection_t *conn, const QXcbScreen *screen); -+ -+ const QByteArray m_genericEventFilterType; -+ -+ xcb_atom_t m_sysTraySelectionAtom = XCB_ATOM_NONE; -+ -+ static QXcbScreen *qPlatformScreenForWindow(QWindow *window); -+ -+ QList m_handlers; -+ NativeResourceForIntegrationFunction handlerNativeResourceFunctionForIntegration(const QByteArray &resource) const; -+ NativeResourceForContextFunction handlerNativeResourceFunctionForContext(const QByteArray &resource) const; -+ NativeResourceForScreenFunction handlerNativeResourceFunctionForScreen(const QByteArray &resource) const; -+ NativeResourceForWindowFunction handlerNativeResourceFunctionForWindow(const QByteArray &resource) const; -+ NativeResourceForBackingStoreFunction handlerNativeResourceFunctionForBackingStore(const QByteArray &resource) const; -+ QFunctionPointer handlerPlatformFunction(const QByteArray &function) const; -+ void *handlerNativeResourceForIntegration(const QByteArray &resource) const; -+ void *handlerNativeResourceForContext(const QByteArray &resource, QOpenGLContext *context) const; -+ void *handlerNativeResourceForScreen(const QByteArray &resource, QScreen *screen) const; -+ void *handlerNativeResourceForWindow(const QByteArray &resource, QWindow *window) const; -+ void *handlerNativeResourceForBackingStore(const QByteArray &resource, QBackingStore *backingStore) const; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif // QXCBNATIVEINTERFACE_H -diff --git a/libqt5xcbqpa-dev/5.9.2/qxcbobject.h b/libqt5xcbqpa-dev/5.9.2/qxcbobject.h -new file mode 100644 -index 0000000..1b98d93 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.2/qxcbobject.h -@@ -0,0 +1,64 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBOBJECT_H -+#define QXCBOBJECT_H -+ -+#include "qxcbconnection.h" -+ -+QT_BEGIN_NAMESPACE -+ -+class QXcbObject -+{ -+public: -+ QXcbObject(QXcbConnection *connection = 0) : m_connection(connection) {} -+ -+ void setConnection(QXcbConnection *connection) { m_connection = connection; } -+ QXcbConnection *connection() const { return m_connection; } -+ -+ xcb_atom_t atom(QXcbAtom::Atom atom) const { return m_connection->atom(atom); } -+ xcb_connection_t *xcb_connection() const { return m_connection->xcb_connection(); } -+ -+private: -+ QXcbConnection *m_connection; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.9.2/qxcbscreen.h b/libqt5xcbqpa-dev/5.9.2/qxcbscreen.h -new file mode 100644 -index 0000000..4163be2 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.2/qxcbscreen.h -@@ -0,0 +1,220 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBSCREEN_H -+#define QXCBSCREEN_H -+ -+#include -+#include -+ -+#include -+#include -+#include -+#include -+ -+#include "qxcbobject.h" -+#include "qxcbscreen.h" -+ -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+class QXcbConnection; -+class QXcbCursor; -+class QXcbXSettings; -+#ifndef QT_NO_DEBUG_STREAM -+class QDebug; -+#endif -+ -+class QXcbVirtualDesktop : public QXcbObject -+{ -+public: -+ QXcbVirtualDesktop(QXcbConnection *connection, xcb_screen_t *screen, int number); -+ ~QXcbVirtualDesktop(); -+ -+ xcb_screen_t *screen() const { return m_screen; } -+ int number() const { return m_number; } -+ QSize size() const { return QSize(m_screen->width_in_pixels, m_screen->height_in_pixels); } -+ QSize physicalSize() const { return QSize(m_screen->width_in_millimeters, m_screen->height_in_millimeters); } -+ xcb_window_t root() const { return m_screen->root; } -+ QXcbScreen *screenAt(const QPoint &pos) const; -+ -+ QList screens() const { return m_screens; } -+ void setScreens(QList sl) { m_screens = sl; } -+ void removeScreen(QPlatformScreen *s) { m_screens.removeOne(s); } -+ void addScreen(QPlatformScreen *s); -+ void setPrimaryScreen(QPlatformScreen *s); -+ -+ QXcbXSettings *xSettings() const; -+ -+ bool compositingActive() const; -+ -+ QRect workArea() const { return m_workArea; } -+ void updateWorkArea(); -+ -+ void handleXFixesSelectionNotify(xcb_xfixes_selection_notify_event_t *notify_event); -+ void subscribeToXFixesSelectionNotify(); -+ -+private: -+ QRect getWorkArea() const; -+ -+ xcb_screen_t *m_screen; -+ const int m_number; -+ QList m_screens; -+ -+ QXcbXSettings *m_xSettings = nullptr; -+ xcb_atom_t m_net_wm_cm_atom = 0; -+ bool m_compositingActive = false; -+ -+ QRect m_workArea; -+}; -+ -+class Q_XCB_EXPORT QXcbScreen : public QXcbObject, public QPlatformScreen -+{ -+public: -+ QXcbScreen(QXcbConnection *connection, QXcbVirtualDesktop *virtualDesktop, -+ xcb_randr_output_t outputId, xcb_randr_get_output_info_reply_t *outputInfo, -+ const xcb_xinerama_screen_info_t *xineramaScreenInfo = Q_NULLPTR, int xineramaScreenIdx = -1); -+ ~QXcbScreen(); -+ -+ QString getOutputName(xcb_randr_get_output_info_reply_t *outputInfo); -+ -+ QPixmap grabWindow(WId window, int x, int y, int width, int height) const override; -+ -+ QWindow *topLevelAt(const QPoint &point) const override; -+ -+ QRect geometry() const override { return m_geometry; } -+ QRect availableGeometry() const override {return m_availableGeometry;} -+ int depth() const override { return screen()->root_depth; } -+ QImage::Format format() const override; -+ QSizeF physicalSize() const override { return m_sizeMillimeters; } -+ QSize virtualSize() const { return m_virtualSize; } -+ QSizeF physicalVirtualSize() const { return m_virtualSizeMillimeters; } -+ QDpi virtualDpi() const; -+ QDpi logicalDpi() const override; -+ qreal pixelDensity() const override; -+ QPlatformCursor *cursor() const override; -+ qreal refreshRate() const override { return m_refreshRate; } -+ Qt::ScreenOrientation orientation() const override { return m_orientation; } -+ QList virtualSiblings() const override { return m_virtualDesktop->screens(); } -+ QXcbVirtualDesktop *virtualDesktop() const { return m_virtualDesktop; } -+ -+ void setPrimary(bool primary) { m_primary = primary; } -+ bool isPrimary() const { return m_primary; } -+ -+ int screenNumber() const { return m_virtualDesktop->number(); } -+ static int virtualDesktopNumberStatic(const QScreen *screen); -+ -+ xcb_screen_t *screen() const { return m_virtualDesktop->screen(); } -+ xcb_window_t root() const { return screen()->root; } -+ xcb_randr_output_t output() const { return m_output; } -+ xcb_randr_crtc_t crtc() const { return m_crtc; } -+ xcb_randr_mode_t mode() const { return m_mode; } -+ -+ void setOutput(xcb_randr_output_t outputId, -+ xcb_randr_get_output_info_reply_t *outputInfo); -+ void setCrtc(xcb_randr_crtc_t crtc) { m_crtc = crtc; } -+ -+ void windowShown(QXcbWindow *window); -+ QString windowManagerName() const { return m_windowManagerName; } -+ bool syncRequestSupported() const { return m_syncRequestSupported; } -+ -+ QSurfaceFormat surfaceFormatFor(const QSurfaceFormat &format) const; -+ -+ const xcb_visualtype_t *visualForFormat(const QSurfaceFormat &format) const; -+ const xcb_visualtype_t *visualForId(xcb_visualid_t) const; -+ quint8 depthOfVisual(xcb_visualid_t) const; -+ -+ QString name() const override { return m_outputName; } -+ -+ void handleScreenChange(xcb_randr_screen_change_notify_event_t *change_event); -+ void updateGeometry(const QRect &geom, uint8_t rotation); -+ void updateGeometry(xcb_timestamp_t timestamp = XCB_TIME_CURRENT_TIME); -+ void updateAvailableGeometry(); -+ void updateRefreshRate(xcb_randr_mode_t mode); -+ -+ void readXResources(); -+ -+ QFontEngine::HintStyle hintStyle() const { return m_hintStyle; } -+ QFontEngine::SubpixelAntialiasingType subpixelType() const { return m_subpixelType; } -+ int antialiasingEnabled() const { return m_antialiasingEnabled; } -+ -+ QXcbXSettings *xSettings() const; -+ -+private: -+ static bool xResource(const QByteArray &identifier, -+ const QByteArray &expectedIdentifier, -+ QByteArray &stringValue); -+ void sendStartupMessage(const QByteArray &message) const; -+ -+ QXcbVirtualDesktop *m_virtualDesktop; -+ xcb_randr_output_t m_output; -+ xcb_randr_crtc_t m_crtc; -+ xcb_randr_mode_t m_mode = XCB_NONE; -+ bool m_primary = false; -+ uint8_t m_rotation = XCB_RANDR_ROTATION_ROTATE_0; -+ -+ QString m_outputName; -+ QSizeF m_outputSizeMillimeters; -+ QSizeF m_sizeMillimeters; -+ QRect m_geometry; -+ QRect m_availableGeometry; -+ QSize m_virtualSize; -+ QSizeF m_virtualSizeMillimeters; -+ Qt::ScreenOrientation m_orientation = Qt::PrimaryOrientation; -+ QString m_windowManagerName; -+ bool m_syncRequestSupported = false; -+ QMap m_visuals; -+ QMap m_visualDepths; -+ QXcbCursor *m_cursor; -+ int m_refreshRate = 60; -+ int m_forcedDpi = -1; -+ int m_pixelDensity = 1; -+ QFontEngine::HintStyle m_hintStyle = QFontEngine::HintStyle(-1); -+ QFontEngine::SubpixelAntialiasingType m_subpixelType = QFontEngine::SubpixelAntialiasingType(-1); -+ int m_antialiasingEnabled = -1; -+}; -+ -+#ifndef QT_NO_DEBUG_STREAM -+Q_GUI_EXPORT QDebug operator<<(QDebug, const QXcbScreen *); -+#endif -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.9.2/qxcbsessionmanager.h b/libqt5xcbqpa-dev/5.9.2/qxcbsessionmanager.h -new file mode 100644 -index 0000000..0ad9445 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.2/qxcbsessionmanager.h -@@ -0,0 +1,96 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2013 Teo Mrnjavac -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBSESSIONMANAGER_H -+#define QXCBSESSIONMANAGER_H -+ -+// -+// W A R N I N G -+// ------------- -+// -+// This file is part of the QPA API and is not meant to be used -+// in applications. Usage of this API may make your code -+// source and binary incompatible with future versions of Qt. -+// -+ -+#include -+ -+#ifndef QT_NO_SESSIONMANAGER -+ -+QT_BEGIN_NAMESPACE -+ -+class QEventLoop; -+ -+class QXcbSessionManager : public QPlatformSessionManager -+{ -+public: -+ QXcbSessionManager(const QString &id, const QString &key); -+ virtual ~QXcbSessionManager(); -+ -+ void *handle() const; -+ -+ void setSessionId(const QString &id) { m_sessionId = id; } -+ void setSessionKey(const QString &key) { m_sessionKey = key; } -+ -+ bool allowsInteraction() override; -+ bool allowsErrorInteraction() override; -+ void release() override; -+ -+ void cancel() override; -+ -+ void setManagerProperty(const QString &name, const QString &value) override; -+ void setManagerProperty(const QString &name, const QStringList &value) override; -+ -+ bool isPhase2() const override; -+ void requestPhase2() override; -+ -+ void exitEventLoop(); -+ -+private: -+ QEventLoop *m_eventLoop; -+ -+ Q_DISABLE_COPY(QXcbSessionManager) -+}; -+ -+QT_END_NAMESPACE -+ -+#endif //QT_NO_SESSIONMANAGER -+ -+#endif //QXCBSESSIONMANAGER_H -diff --git a/libqt5xcbqpa-dev/5.9.2/qxcbsystemtraytracker.h b/libqt5xcbqpa-dev/5.9.2/qxcbsystemtraytracker.h -new file mode 100644 -index 0000000..a95b937 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.2/qxcbsystemtraytracker.h -@@ -0,0 +1,85 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBSYSTEMTRAYTRACKER_H -+#define QXCBSYSTEMTRAYTRACKER_H -+ -+#include "qxcbconnection.h" -+ -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+class QXcbConnection; -+class QScreen; -+ -+class QXcbSystemTrayTracker : public QObject, public QXcbWindowEventListener -+{ -+ Q_OBJECT -+public: -+ static QXcbSystemTrayTracker *create(QXcbConnection *connection); -+ -+ xcb_window_t trayWindow(); -+ void requestSystemTrayWindowDock(xcb_window_t window) const; -+ QRect systemTrayWindowGlobalGeometry(xcb_window_t window) const; -+ -+ void notifyManagerClientMessageEvent(const xcb_client_message_event_t *); -+ -+ void handleDestroyNotifyEvent(const xcb_destroy_notify_event_t *) override; -+ -+ bool visualHasAlphaChannel(); -+signals: -+ void systemTrayWindowChanged(QScreen *screen); -+ -+private: -+ explicit QXcbSystemTrayTracker(QXcbConnection *connection, -+ xcb_atom_t trayAtom, -+ xcb_atom_t selection); -+ static xcb_window_t locateTrayWindow(const QXcbConnection *connection, xcb_atom_t selection); -+ void emitSystemTrayWindowChanged(); -+ -+ const xcb_atom_t m_selection; -+ const xcb_atom_t m_trayAtom; -+ QXcbConnection *m_connection; -+ xcb_window_t m_trayWindow = 0; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif // QXCBSYSTEMTRAYTRACKER_H -diff --git a/libqt5xcbqpa-dev/5.9.2/qxcbwindow.h b/libqt5xcbqpa-dev/5.9.2/qxcbwindow.h -new file mode 100644 -index 0000000..f38343b ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.2/qxcbwindow.h -@@ -0,0 +1,297 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBWINDOW_H -+#define QXCBWINDOW_H -+ -+#include -+#include -+#include -+ -+#include -+#include -+ -+#include "qxcbobject.h" -+ -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+class QXcbScreen; -+class QXcbSyncWindowRequest; -+class QIcon; -+ -+class Q_XCB_EXPORT QXcbWindow : public QXcbObject, public QXcbWindowEventListener, public QPlatformWindow -+{ -+public: -+ enum NetWmState { -+ NetWmStateAbove = 0x1, -+ NetWmStateBelow = 0x2, -+ NetWmStateFullScreen = 0x4, -+ NetWmStateMaximizedHorz = 0x8, -+ NetWmStateMaximizedVert = 0x10, -+ NetWmStateModal = 0x20, -+ NetWmStateStaysOnTop = 0x40, -+ NetWmStateDemandsAttention = 0x80 -+ }; -+ -+ Q_DECLARE_FLAGS(NetWmStates, NetWmState) -+ -+ QXcbWindow(QWindow *window); -+ ~QXcbWindow(); -+ -+ void setGeometry(const QRect &rect) override; -+ -+ QMargins frameMargins() const override; -+ -+ void setVisible(bool visible) override; -+ void setWindowFlags(Qt::WindowFlags flags) override; -+ void setWindowState(Qt::WindowState state) override; -+ WId winId() const override; -+ void setParent(const QPlatformWindow *window) override; -+ -+ bool isExposed() const override; -+ bool isEmbedded() const override; -+ QPoint mapToGlobal(const QPoint &pos) const override; -+ QPoint mapFromGlobal(const QPoint &pos) const override; -+ -+ void setWindowTitle(const QString &title) override; -+ void setWindowIconText(const QString &title); -+ void setWindowIcon(const QIcon &icon) override; -+ void raise() override; -+ void lower() override; -+ void propagateSizeHints() override; -+ -+ void requestActivateWindow() override; -+ -+ bool setKeyboardGrabEnabled(bool grab) override; -+ bool setMouseGrabEnabled(bool grab) override; -+ -+ void setCursor(xcb_cursor_t cursor, bool isBitmapCursor); -+ -+ QSurfaceFormat format() const override; -+ -+ void windowEvent(QEvent *event) override; -+ -+ bool startSystemResize(const QPoint &pos, Qt::Corner corner) override; -+ -+ void setOpacity(qreal level) override; -+ void setMask(const QRegion ®ion) override; -+ -+ void setAlertState(bool enabled) override; -+ bool isAlertState() const override { return m_alertState; } -+ -+ xcb_window_t xcb_window() const { return m_window; } -+ uint depth() const { return m_depth; } -+ QImage::Format imageFormat() const { return m_imageFormat; } -+ bool imageNeedsRgbSwap() const { return m_imageRgbSwap; } -+ -+ bool handleGenericEvent(xcb_generic_event_t *event, long *result) override; -+ -+ void handleExposeEvent(const xcb_expose_event_t *event) override; -+ void handleClientMessageEvent(const xcb_client_message_event_t *event) override; -+ void handleConfigureNotifyEvent(const xcb_configure_notify_event_t *event) override; -+ void handleMapNotifyEvent(const xcb_map_notify_event_t *event) override; -+ void handleUnmapNotifyEvent(const xcb_unmap_notify_event_t *event) override; -+ void handleButtonPressEvent(const xcb_button_press_event_t *event) override; -+ void handleButtonReleaseEvent(const xcb_button_release_event_t *event) override; -+ void handleMotionNotifyEvent(const xcb_motion_notify_event_t *event) override; -+ -+ void handleEnterNotifyEvent(const xcb_enter_notify_event_t *event) override; -+ void handleLeaveNotifyEvent(const xcb_leave_notify_event_t *event) override; -+ void handleFocusInEvent(const xcb_focus_in_event_t *event) override; -+ void handleFocusOutEvent(const xcb_focus_out_event_t *event) override; -+ void handlePropertyNotifyEvent(const xcb_property_notify_event_t *event) override; -+#ifdef XCB_USE_XINPUT22 -+ void handleXIMouseEvent(xcb_ge_event_t *, Qt::MouseEventSource source = Qt::MouseEventNotSynthesized) override; -+ void handleXIEnterLeave(xcb_ge_event_t *) override; -+#endif -+ -+ QXcbWindow *toWindow() override; -+ -+ void handleMouseEvent(xcb_timestamp_t time, const QPoint &local, const QPoint &global, -+ Qt::KeyboardModifiers modifiers, Qt::MouseEventSource source); -+ -+ void updateNetWmUserTime(xcb_timestamp_t timestamp); -+ -+ static void setWmWindowTypeStatic(QWindow *window, QXcbWindowFunctions::WmWindowTypes windowTypes); -+ static void setWmWindowRoleStatic(QWindow *window, const QByteArray &role); -+ static uint visualIdStatic(QWindow *window); -+ -+ QXcbWindowFunctions::WmWindowTypes wmWindowTypes() const; -+ void setWmWindowType(QXcbWindowFunctions::WmWindowTypes types, Qt::WindowFlags flags); -+ void setWmWindowRole(const QByteArray &role); -+ -+ static void setWindowIconTextStatic(QWindow *window, const QString &text); -+ -+ static void setParentRelativeBackPixmapStatic(QWindow *window); -+ void setParentRelativeBackPixmap(); -+ -+ static bool requestSystemTrayWindowDockStatic(const QWindow *window); -+ bool requestSystemTrayWindowDock() const; -+ -+ static QRect systemTrayWindowGlobalGeometryStatic(const QWindow *window); -+ QRect systemTrayWindowGlobalGeometry() const; -+ uint visualId() const; -+ -+ bool needsSync() const; -+ -+ void postSyncWindowRequest(); -+ void clearSyncWindowRequest() { m_pendingSyncRequest = 0; } -+ -+ QXcbScreen *xcbScreen() const; -+ -+ bool doStartSystemResize(const QPoint &globalPos, Qt::Corner corner); -+ -+ virtual void create(); -+ virtual void destroy(); -+ -+public Q_SLOTS: -+ void updateSyncRequestCounter(); -+ -+protected: -+ virtual void resolveFormat(const QSurfaceFormat &format) { m_format = format; } -+ virtual const xcb_visualtype_t *createVisual(); -+ -+ QXcbScreen *parentScreen(); -+ -+ QXcbScreen *initialScreen() const; -+ void changeNetWmState(bool set, xcb_atom_t one, xcb_atom_t two = 0); -+ NetWmStates netWmStates(); -+ void setNetWmStates(NetWmStates); -+ -+ void setMotifWindowFlags(Qt::WindowFlags flags); -+ void setNetWmStateWindowFlags(Qt::WindowFlags flags); -+ -+ void updateMotifWmHintsBeforeMap(); -+ void updateNetWmStateBeforeMap(); -+ -+ void setTransparentForMouseEvents(bool transparent); -+ void updateDoesNotAcceptFocus(bool doesNotAcceptFocus); -+ -+ QRect windowToWmGeometry(QRect r) const; -+ void sendXEmbedMessage(xcb_window_t window, quint32 message, -+ quint32 detail = 0, quint32 data1 = 0, quint32 data2 = 0); -+ void handleXEmbedMessage(const xcb_client_message_event_t *event); -+ -+ void show(); -+ void hide(); -+ -+ bool relayFocusToModalWindow() const; -+ void doFocusIn(); -+ void doFocusOut(); -+ -+ bool compressExposeEvent(QRegion &exposeRegion); -+ -+ void handleButtonPressEvent(int event_x, int event_y, int root_x, int root_y, -+ int detail, Qt::KeyboardModifiers modifiers, xcb_timestamp_t timestamp, Qt::MouseEventSource source = Qt::MouseEventNotSynthesized); -+ -+ void handleButtonReleaseEvent(int event_x, int event_y, int root_x, int root_y, -+ int detail, Qt::KeyboardModifiers modifiers, xcb_timestamp_t timestamp, Qt::MouseEventSource source = Qt::MouseEventNotSynthesized); -+ -+ void handleMotionNotifyEvent(int event_x, int event_y, int root_x, int root_y, -+ Qt::KeyboardModifiers modifiers, xcb_timestamp_t timestamp, Qt::MouseEventSource source = Qt::MouseEventNotSynthesized); -+ -+ void handleEnterNotifyEvent(int event_x, int event_y, int root_x, int root_y, -+ quint8 mode, quint8 detail, xcb_timestamp_t timestamp); -+ -+ void handleLeaveNotifyEvent(int root_x, int root_y, -+ quint8 mode, quint8 detail, xcb_timestamp_t timestamp); -+ -+ xcb_window_t m_window = 0; -+ xcb_colormap_t m_cmap = 0; -+ -+ uint m_depth = 0; -+ QImage::Format m_imageFormat = QImage::Format_ARGB32_Premultiplied; -+ bool m_imageRgbSwap = false; -+ -+ xcb_sync_int64_t m_syncValue; -+ xcb_sync_counter_t m_syncCounter = 0; -+ -+ Qt::WindowState m_windowState = Qt::WindowNoState; -+ -+ xcb_gravity_t m_gravity = XCB_GRAVITY_STATIC; -+ -+ bool m_mapped = false; -+ bool m_transparent = false; -+ bool m_usingSyncProtocol = false; -+ bool m_deferredActivation = false; -+ bool m_embedded = false; -+ bool m_alertState = false; -+ xcb_window_t m_netWmUserTimeWindow = XCB_NONE; -+ -+ QSurfaceFormat m_format; -+ -+ mutable bool m_dirtyFrameMargins = false; -+ mutable QMargins m_frameMargins; -+ -+ QRegion m_exposeRegion; -+ QSize m_oldWindowSize; -+ -+ xcb_visualid_t m_visualId = 0; -+ int m_lastWindowStateEvent = -1; -+ -+ enum SyncState { -+ NoSyncNeeded, -+ SyncReceived, -+ SyncAndConfigureReceived -+ }; -+ SyncState m_syncState = NoSyncNeeded; -+ -+ QXcbSyncWindowRequest *m_pendingSyncRequest = nullptr; -+ xcb_cursor_t m_currentBitmapCursor = XCB_CURSOR_NONE; -+}; -+ -+class QXcbForeignWindow : public QXcbWindow -+{ -+public: -+ QXcbForeignWindow(QWindow *window, WId nativeHandle) -+ : QXcbWindow(window) { m_window = nativeHandle; } -+ ~QXcbForeignWindow(); -+ bool isForeignWindow() const override { return true; } -+ -+protected: -+ void create() override {} // No-op -+}; -+ -+QT_END_NAMESPACE -+ -+Q_DECLARE_METATYPE(QXcbWindow*) -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.9.2/qxcbwmsupport.h b/libqt5xcbqpa-dev/5.9.2/qxcbwmsupport.h -new file mode 100644 -index 0000000..b5de5b7 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.2/qxcbwmsupport.h -@@ -0,0 +1,68 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+#ifndef QXCBWMSUPPORT_H -+#define QXCBWMSUPPORT_H -+ -+#include "qxcbobject.h" -+#include "qxcbconnection.h" -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+class QXcbWMSupport : public QXcbObject -+{ -+public: -+ QXcbWMSupport(QXcbConnection *c); -+ -+ -+ bool isSupportedByWM(xcb_atom_t atom) const; -+ const QVector &virtualRoots() const { return net_virtual_roots; } -+ -+private: -+ friend class QXcbConnection; -+ void updateNetWMAtoms(); -+ void updateVirtualRoots(); -+ -+ QVector net_wm_atoms; -+ QVector net_virtual_roots; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.9.2/qxcbxsettings.h b/libqt5xcbqpa-dev/5.9.2/qxcbxsettings.h -new file mode 100644 -index 0000000..ab1f784 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.2/qxcbxsettings.h -@@ -0,0 +1,71 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBXSETTINGS_H -+#define QXCBXSETTINGS_H -+ -+#include "qxcbscreen.h" -+ -+QT_BEGIN_NAMESPACE -+ -+class QXcbXSettingsPrivate; -+ -+class QXcbXSettings : public QXcbWindowEventListener -+{ -+ Q_DECLARE_PRIVATE(QXcbXSettings) -+public: -+ QXcbXSettings(QXcbVirtualDesktop *screen); -+ ~QXcbXSettings(); -+ bool initialized() const; -+ -+ QVariant setting(const QByteArray &property) const; -+ -+ typedef void (*PropertyChangeFunc)(QXcbVirtualDesktop *screen, const QByteArray &name, const QVariant &property, void *handle); -+ void registerCallbackForProperty(const QByteArray &property, PropertyChangeFunc func, void *handle); -+ void removeCallbackForHandle(const QByteArray &property, void *handle); -+ void removeCallbackForHandle(void *handle); -+ -+ void handlePropertyNotifyEvent(const xcb_property_notify_event_t *event) override; -+private: -+ QXcbXSettingsPrivate *d_ptr; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif // QXCBXSETTINGS_H -diff --git a/libqt5xcbqpa-dev/5.9.3 b/libqt5xcbqpa-dev/5.9.3 -new file mode 120000 -index 0000000..2151dbd ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.3 -@@ -0,0 +1 @@ -+5.9.2 -\ No newline at end of file -diff --git a/libqt5xcbqpa-dev/5.9.4/qxcbbackingstore.h b/libqt5xcbqpa-dev/5.9.4/qxcbbackingstore.h -new file mode 100644 -index 0000000..94b5994 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.4/qxcbbackingstore.h -@@ -0,0 +1,85 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBBACKINGSTORE_H -+#define QXCBBACKINGSTORE_H -+ -+#include -+#include -+ -+#include -+ -+#include "qxcbobject.h" -+ -+QT_BEGIN_NAMESPACE -+ -+class QXcbShmImage; -+ -+class QXcbBackingStore : public QXcbObject, public QPlatformBackingStore -+{ -+public: -+ QXcbBackingStore(QWindow *window); -+ ~QXcbBackingStore(); -+ -+ QPaintDevice *paintDevice() override; -+ void flush(QWindow *window, const QRegion ®ion, const QPoint &offset) override; -+#ifndef QT_NO_OPENGL -+ void composeAndFlush(QWindow *window, const QRegion ®ion, const QPoint &offset, -+ QPlatformTextureList *textures, QOpenGLContext *context, -+ bool translucentBackground) override; -+#endif -+ QImage toImage() const override; -+ -+ QPlatformGraphicsBuffer *graphicsBuffer() const override; -+ -+ void resize(const QSize &size, const QRegion &staticContents) override; -+ bool scroll(const QRegion &area, int dx, int dy) override; -+ -+ void beginPaint(const QRegion &) override; -+ void endPaint() override; -+ -+private: -+ QXcbShmImage *m_image; -+ QStack m_paintRegions; -+ QImage m_rgbImage; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.9.4/qxcbclipboard.h b/libqt5xcbqpa-dev/5.9.4/qxcbclipboard.h -new file mode 100644 -index 0000000..bfeae13 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.4/qxcbclipboard.h -@@ -0,0 +1,119 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBCLIPBOARD_H -+#define QXCBCLIPBOARD_H -+ -+#include -+#include -+#include -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+#ifndef QT_NO_CLIPBOARD -+ -+class QXcbConnection; -+class QXcbScreen; -+class QXcbClipboardMime; -+ -+class QXcbClipboard : public QXcbObject, public QPlatformClipboard -+{ -+public: -+ QXcbClipboard(QXcbConnection *connection); -+ ~QXcbClipboard(); -+ -+ QMimeData *mimeData(QClipboard::Mode mode) override; -+ void setMimeData(QMimeData *data, QClipboard::Mode mode) override; -+ -+ bool supportsMode(QClipboard::Mode mode) const override; -+ bool ownsMode(QClipboard::Mode mode) const override; -+ -+ QXcbScreen *screen() const; -+ -+ xcb_window_t requestor() const; -+ void setRequestor(xcb_window_t window); -+ -+ xcb_window_t owner() const; -+ -+ void handleSelectionRequest(xcb_selection_request_event_t *event); -+ void handleSelectionClearRequest(xcb_selection_clear_event_t *event); -+ void handleXFixesSelectionRequest(xcb_xfixes_selection_notify_event_t *event); -+ -+ bool clipboardReadProperty(xcb_window_t win, xcb_atom_t property, bool deleteProperty, QByteArray *buffer, int *size, xcb_atom_t *type, int *format); -+ QByteArray clipboardReadIncrementalProperty(xcb_window_t win, xcb_atom_t property, int nbytes, bool nullterm); -+ -+ QByteArray getDataInFormat(xcb_atom_t modeAtom, xcb_atom_t fmtatom); -+ -+ void setProcessIncr(bool process) { m_incr_active = process; } -+ bool processIncr() { return m_incr_active; } -+ void incrTransactionPeeker(xcb_generic_event_t *ge, bool &accepted); -+ -+ xcb_window_t getSelectionOwner(xcb_atom_t atom) const; -+ QByteArray getSelection(xcb_atom_t selection, xcb_atom_t target, xcb_atom_t property, xcb_timestamp_t t = 0); -+ -+private: -+ xcb_generic_event_t *waitForClipboardEvent(xcb_window_t win, int type, int timeout, bool checkManager = false); -+ -+ xcb_atom_t sendTargetsSelection(QMimeData *d, xcb_window_t window, xcb_atom_t property); -+ xcb_atom_t sendSelection(QMimeData *d, xcb_atom_t target, xcb_window_t window, xcb_atom_t property); -+ -+ xcb_atom_t atomForMode(QClipboard::Mode mode) const; -+ QClipboard::Mode modeForAtom(xcb_atom_t atom) const; -+ -+ // Selection and Clipboard -+ QScopedPointer m_xClipboard[2]; -+ QMimeData *m_clientClipboard[2]; -+ xcb_timestamp_t m_timestamp[2]; -+ -+ xcb_window_t m_requestor = XCB_NONE; -+ xcb_window_t m_owner = XCB_NONE; -+ -+ static const int clipboard_timeout; -+ -+ bool m_incr_active = false; -+ bool m_clipboard_closing = false; -+ xcb_timestamp_t m_incr_receive_time = 0; -+}; -+ -+#endif // QT_NO_CLIPBOARD -+ -+QT_END_NAMESPACE -+ -+#endif // QXCBCLIPBOARD_H -diff --git a/libqt5xcbqpa-dev/5.9.4/qxcbconnection.h b/libqt5xcbqpa-dev/5.9.4/qxcbconnection.h -new file mode 100644 -index 0000000..edbc8d8 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.4/qxcbconnection.h -@@ -0,0 +1,775 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBCONNECTION_H -+#define QXCBCONNECTION_H -+ -+#include -+#include -+ -+#include -+#include "qxcbexport.h" -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+// This is needed to make Qt compile together with XKB. xkb.h is using a variable -+// which is called 'explicit', this is a reserved keyword in c++ -+#if QT_CONFIG(xkb) -+#define explicit dont_use_cxx_explicit -+#include -+#undef explicit -+#endif -+ -+#if QT_CONFIG(tabletevent) -+#include -+#endif -+ -+#if QT_CONFIG(xinput2) -+#include -+#ifdef XIScrollClass -+#define XCB_USE_XINPUT21 // XI 2.1 adds smooth scrolling support -+#ifdef XI_TouchBeginMask -+#define XCB_USE_XINPUT22 // XI 2.2 adds multi-point touch support -+#endif -+#endif -+struct XInput2TouchDeviceData; -+#endif // QT_CONFIG(xinput2) -+ -+struct xcb_randr_get_output_info_reply_t; -+ -+//#define Q_XCB_DEBUG -+ -+QT_BEGIN_NAMESPACE -+ -+Q_DECLARE_LOGGING_CATEGORY(lcQpaXInput) -+Q_DECLARE_LOGGING_CATEGORY(lcQpaXInputDevices) -+Q_DECLARE_LOGGING_CATEGORY(lcQpaXInputEvents) -+Q_DECLARE_LOGGING_CATEGORY(lcQpaScreen) -+ -+class QXcbVirtualDesktop; -+class QXcbScreen; -+class QXcbWindow; -+class QXcbDrag; -+class QXcbKeyboard; -+class QXcbClipboard; -+class QXcbWMSupport; -+class QXcbNativeInterface; -+class QXcbSystemTrayTracker; -+class QXcbGlIntegration; -+ -+namespace QXcbAtom { -+ enum Atom { -+ // window-manager <-> client protocols -+ WM_PROTOCOLS, -+ WM_DELETE_WINDOW, -+ WM_TAKE_FOCUS, -+ _NET_WM_PING, -+ _NET_WM_CONTEXT_HELP, -+ _NET_WM_SYNC_REQUEST, -+ _NET_WM_SYNC_REQUEST_COUNTER, -+ MANAGER, // System tray notification -+ _NET_SYSTEM_TRAY_OPCODE, // System tray operation -+ -+ // ICCCM window state -+ WM_STATE, -+ WM_CHANGE_STATE, -+ WM_CLASS, -+ WM_NAME, -+ -+ // Session management -+ WM_CLIENT_LEADER, -+ WM_WINDOW_ROLE, -+ SM_CLIENT_ID, -+ -+ // Clipboard -+ CLIPBOARD, -+ INCR, -+ TARGETS, -+ MULTIPLE, -+ TIMESTAMP, -+ SAVE_TARGETS, -+ CLIP_TEMPORARY, -+ _QT_SELECTION, -+ _QT_CLIPBOARD_SENTINEL, -+ _QT_SELECTION_SENTINEL, -+ CLIPBOARD_MANAGER, -+ -+ RESOURCE_MANAGER, -+ -+ _XSETROOT_ID, -+ -+ _QT_SCROLL_DONE, -+ _QT_INPUT_ENCODING, -+ -+ // Qt/XCB specific -+ _QT_CLOSE_CONNECTION, -+ -+ _MOTIF_WM_HINTS, -+ -+ DTWM_IS_RUNNING, -+ ENLIGHTENMENT_DESKTOP, -+ _DT_SAVE_MODE, -+ _SGI_DESKS_MANAGER, -+ -+ // EWMH (aka NETWM) -+ _NET_SUPPORTED, -+ _NET_VIRTUAL_ROOTS, -+ _NET_WORKAREA, -+ -+ _NET_MOVERESIZE_WINDOW, -+ _NET_WM_MOVERESIZE, -+ -+ _NET_WM_NAME, -+ _NET_WM_ICON_NAME, -+ _NET_WM_ICON, -+ -+ _NET_WM_PID, -+ -+ _NET_WM_WINDOW_OPACITY, -+ -+ _NET_WM_STATE, -+ _NET_WM_STATE_ABOVE, -+ _NET_WM_STATE_BELOW, -+ _NET_WM_STATE_FULLSCREEN, -+ _NET_WM_STATE_MAXIMIZED_HORZ, -+ _NET_WM_STATE_MAXIMIZED_VERT, -+ _NET_WM_STATE_MODAL, -+ _NET_WM_STATE_STAYS_ON_TOP, -+ _NET_WM_STATE_DEMANDS_ATTENTION, -+ -+ _NET_WM_USER_TIME, -+ _NET_WM_USER_TIME_WINDOW, -+ _NET_WM_FULL_PLACEMENT, -+ -+ _NET_WM_WINDOW_TYPE, -+ _NET_WM_WINDOW_TYPE_DESKTOP, -+ _NET_WM_WINDOW_TYPE_DOCK, -+ _NET_WM_WINDOW_TYPE_TOOLBAR, -+ _NET_WM_WINDOW_TYPE_MENU, -+ _NET_WM_WINDOW_TYPE_UTILITY, -+ _NET_WM_WINDOW_TYPE_SPLASH, -+ _NET_WM_WINDOW_TYPE_DIALOG, -+ _NET_WM_WINDOW_TYPE_DROPDOWN_MENU, -+ _NET_WM_WINDOW_TYPE_POPUP_MENU, -+ _NET_WM_WINDOW_TYPE_TOOLTIP, -+ _NET_WM_WINDOW_TYPE_NOTIFICATION, -+ _NET_WM_WINDOW_TYPE_COMBO, -+ _NET_WM_WINDOW_TYPE_DND, -+ _NET_WM_WINDOW_TYPE_NORMAL, -+ _KDE_NET_WM_WINDOW_TYPE_OVERRIDE, -+ -+ _KDE_NET_WM_FRAME_STRUT, -+ _NET_FRAME_EXTENTS, -+ -+ _NET_STARTUP_INFO, -+ _NET_STARTUP_INFO_BEGIN, -+ -+ _NET_SUPPORTING_WM_CHECK, -+ -+ _NET_WM_CM_S0, -+ -+ _NET_SYSTEM_TRAY_VISUAL, -+ -+ _NET_ACTIVE_WINDOW, -+ -+ // Property formats -+ TEXT, -+ UTF8_STRING, -+ CARDINAL, -+ -+ // Xdnd -+ XdndEnter, -+ XdndPosition, -+ XdndStatus, -+ XdndLeave, -+ XdndDrop, -+ XdndFinished, -+ XdndTypelist, -+ XdndActionList, -+ -+ XdndSelection, -+ -+ XdndAware, -+ XdndProxy, -+ -+ XdndActionCopy, -+ XdndActionLink, -+ XdndActionMove, -+ XdndActionPrivate, -+ -+ // Motif DND -+ _MOTIF_DRAG_AND_DROP_MESSAGE, -+ _MOTIF_DRAG_INITIATOR_INFO, -+ _MOTIF_DRAG_RECEIVER_INFO, -+ _MOTIF_DRAG_WINDOW, -+ _MOTIF_DRAG_TARGETS, -+ -+ XmTRANSFER_SUCCESS, -+ XmTRANSFER_FAILURE, -+ -+ // Xkb -+ _XKB_RULES_NAMES, -+ -+ // XEMBED -+ _XEMBED, -+ _XEMBED_INFO, -+ -+ // XInput2 -+ ButtonLeft, -+ ButtonMiddle, -+ ButtonRight, -+ ButtonWheelUp, -+ ButtonWheelDown, -+ ButtonHorizWheelLeft, -+ ButtonHorizWheelRight, -+ AbsMTPositionX, -+ AbsMTPositionY, -+ AbsMTTouchMajor, -+ AbsMTTouchMinor, -+ AbsMTOrientation, -+ AbsMTPressure, -+ AbsMTTrackingID, -+ MaxContacts, -+ RelX, -+ RelY, -+ // XInput2 tablet -+ AbsX, -+ AbsY, -+ AbsPressure, -+ AbsTiltX, -+ AbsTiltY, -+ AbsWheel, -+ AbsDistance, -+ WacomSerialIDs, -+ INTEGER, -+ RelHorizWheel, -+ RelVertWheel, -+ RelHorizScroll, -+ RelVertScroll, -+ -+ _XSETTINGS_SETTINGS, -+ -+ _COMPIZ_DECOR_PENDING, -+ _COMPIZ_DECOR_REQUEST, -+ _COMPIZ_DECOR_DELETE_PIXMAP, -+ _COMPIZ_TOOLKIT_ACTION, -+ _GTK_LOAD_ICONTHEMES, -+ -+ NPredefinedAtoms, -+ -+ _QT_SETTINGS_TIMESTAMP = NPredefinedAtoms, -+ NAtoms -+ }; -+} -+ -+typedef QVarLengthArray QXcbEventArray; -+ -+class QXcbConnection; -+class QXcbEventReader : public QThread -+{ -+ Q_OBJECT -+public: -+ QXcbEventReader(QXcbConnection *connection); -+ -+ void run() override; -+ -+ QXcbEventArray *lock(); -+ void unlock(); -+ -+ void start(); -+ -+ void registerEventDispatcher(QAbstractEventDispatcher *dispatcher); -+ -+signals: -+ void eventPending(); -+ -+private slots: -+ void registerForEvents(); -+ -+private: -+ void addEvent(xcb_generic_event_t *event); -+ -+ QMutex m_mutex; -+ QXcbEventArray m_events; -+ QXcbConnection *m_connection; -+}; -+ -+class QXcbWindowEventListener -+{ -+public: -+ virtual ~QXcbWindowEventListener() {} -+ virtual bool handleGenericEvent(xcb_generic_event_t *, long *) { return false; } -+ -+ virtual void handleExposeEvent(const xcb_expose_event_t *) {} -+ virtual void handleClientMessageEvent(const xcb_client_message_event_t *) {} -+ virtual void handleConfigureNotifyEvent(const xcb_configure_notify_event_t *) {} -+ virtual void handleMapNotifyEvent(const xcb_map_notify_event_t *) {} -+ virtual void handleUnmapNotifyEvent(const xcb_unmap_notify_event_t *) {} -+ virtual void handleDestroyNotifyEvent(const xcb_destroy_notify_event_t *) {} -+ virtual void handleButtonPressEvent(const xcb_button_press_event_t *) {} -+ virtual void handleButtonReleaseEvent(const xcb_button_release_event_t *) {} -+ virtual void handleMotionNotifyEvent(const xcb_motion_notify_event_t *) {} -+ virtual void handleEnterNotifyEvent(const xcb_enter_notify_event_t *) {} -+ virtual void handleLeaveNotifyEvent(const xcb_leave_notify_event_t *) {} -+ virtual void handleFocusInEvent(const xcb_focus_in_event_t *) {} -+ virtual void handleFocusOutEvent(const xcb_focus_out_event_t *) {} -+ virtual void handlePropertyNotifyEvent(const xcb_property_notify_event_t *) {} -+#ifdef XCB_USE_XINPUT22 -+ virtual void handleXIMouseEvent(xcb_ge_event_t *, Qt::MouseEventSource = Qt::MouseEventNotSynthesized) {} -+ virtual void handleXIEnterLeave(xcb_ge_event_t *) {} -+#endif -+ virtual QXcbWindow *toWindow() { return 0; } -+}; -+ -+typedef QHash WindowMapper; -+ -+class QXcbSyncWindowRequest : public QEvent -+{ -+public: -+ QXcbSyncWindowRequest(QXcbWindow *w) : QEvent(QEvent::Type(QEvent::User + 1)), m_window(w) { } -+ -+ QXcbWindow *window() const { return m_window; } -+ void invalidate(); -+ -+private: -+ QXcbWindow *m_window; -+}; -+ -+class QAbstractEventDispatcher; -+class Q_XCB_EXPORT QXcbConnection : public QObject -+{ -+ Q_OBJECT -+public: -+ QXcbConnection(QXcbNativeInterface *nativeInterface, bool canGrabServer, xcb_visualid_t defaultVisualId, const char *displayName = 0); -+ ~QXcbConnection(); -+ -+ QXcbConnection *connection() const { return const_cast(this); } -+ bool isConnected() const; -+ -+ const QList &virtualDesktops() const { return m_virtualDesktops; } -+ const QList &screens() const { return m_screens; } -+ int primaryScreenNumber() const { return m_primaryScreenNumber; } -+ QXcbVirtualDesktop *primaryVirtualDesktop() const { return m_virtualDesktops.value(m_primaryScreenNumber); } -+ QXcbScreen *primaryScreen() const; -+ -+ inline xcb_atom_t atom(QXcbAtom::Atom atom) const { return m_allAtoms[atom]; } -+ QXcbAtom::Atom qatom(xcb_atom_t atom) const; -+ xcb_atom_t internAtom(const char *name); -+ QByteArray atomName(xcb_atom_t atom); -+ -+ const char *displayName() const { return m_displayName.constData(); } -+ xcb_connection_t *xcb_connection() const { return m_connection; } -+ const xcb_setup_t *setup() const { return m_setup; } -+ const xcb_format_t *formatForDepth(uint8_t depth) const; -+ -+ QXcbKeyboard *keyboard() const { return m_keyboard; } -+ -+#ifndef QT_NO_CLIPBOARD -+ QXcbClipboard *clipboard() const { return m_clipboard; } -+#endif -+#ifndef QT_NO_DRAGANDDROP -+ QXcbDrag *drag() const { return m_drag; } -+#endif -+ -+ QXcbWMSupport *wmSupport() const { return m_wmSupport.data(); } -+ xcb_window_t rootWindow(); -+ xcb_window_t clientLeader(); -+ -+ bool hasDefaultVisualId() const { return m_defaultVisualId != UINT_MAX; } -+ xcb_visualid_t defaultVisualId() const { return m_defaultVisualId; } -+ -+#if QT_CONFIG(xcb_xlib) -+ void *xlib_display() const; -+ void *createVisualInfoForDefaultVisualId() const; -+#endif -+ -+#if QT_CONFIG(xinput2) -+ void xi2Select(xcb_window_t window); -+ void xi2SelectStateEvents(); -+#endif -+#ifdef XCB_USE_XINPUT21 -+ bool isAtLeastXI21() const { return m_xi2Enabled && m_xi2Minor >= 1; } -+#else -+ bool isAtLeastXI21() const { return false; } -+#endif -+#ifdef XCB_USE_XINPUT22 -+ bool isAtLeastXI22() const { return m_xi2Enabled && m_xi2Minor >= 2; } -+#else -+ bool isAtLeastXI22() const { return false; } -+#endif -+ -+ void sync(); -+ -+ void handleXcbError(xcb_generic_error_t *error); -+ void handleXcbEvent(xcb_generic_event_t *event); -+ -+ void addWindowEventListener(xcb_window_t id, QXcbWindowEventListener *eventListener); -+ void removeWindowEventListener(xcb_window_t id); -+ QXcbWindowEventListener *windowEventListenerFromId(xcb_window_t id); -+ QXcbWindow *platformWindowFromId(xcb_window_t id); -+ -+ template -+ inline xcb_generic_event_t *checkEvent(T &checker); -+ -+ typedef bool (*PeekFunc)(QXcbConnection *, xcb_generic_event_t *); -+ void addPeekFunc(PeekFunc f); -+ -+ inline xcb_timestamp_t time() const { return m_time; } -+ inline void setTime(xcb_timestamp_t t) { if (t > m_time) m_time = t; } -+ -+ inline xcb_timestamp_t netWmUserTime() const { return m_netWmUserTime; } -+ inline void setNetWmUserTime(xcb_timestamp_t t) { if (t > m_netWmUserTime) m_netWmUserTime = t; } -+ -+ bool hasXFixes() const { return xfixes_first_event > 0; } -+ bool hasXShape() const { return has_shape_extension; } -+ bool hasXRandr() const { return has_randr_extension; } -+ bool hasInputShape() const { return has_input_shape; } -+ bool hasXKB() const { return has_xkb; } -+ -+ bool supportsThreadedRendering() const { return m_reader->isRunning(); } -+ bool threadedEventHandling() const { return m_reader->isRunning(); } -+ -+ xcb_timestamp_t getTimestamp(); -+ xcb_window_t getSelectionOwner(xcb_atom_t atom) const; -+ xcb_window_t getQtSelectionOwner(); -+ -+ void setButton(Qt::MouseButton button, bool down) { m_buttons.setFlag(button, down); } -+ Qt::MouseButtons buttons() const { return m_buttons; } -+ Qt::MouseButton translateMouseButton(xcb_button_t s); -+ -+ QXcbWindow *focusWindow() const { return m_focusWindow; } -+ void setFocusWindow(QWindow *); -+ QXcbWindow *mouseGrabber() const { return m_mouseGrabber; } -+ void setMouseGrabber(QXcbWindow *); -+ QXcbWindow *mousePressWindow() const { return m_mousePressWindow; } -+ void setMousePressWindow(QXcbWindow *); -+ -+ QByteArray startupId() const { return m_startupId; } -+ void setStartupId(const QByteArray &nextId) { m_startupId = nextId; } -+ void clearStartupId() { m_startupId.clear(); } -+ -+ void grabServer(); -+ void ungrabServer(); -+ -+ QXcbNativeInterface *nativeInterface() const { return m_nativeInterface; } -+ -+ QXcbSystemTrayTracker *systemTrayTracker() const; -+ static bool xEmbedSystemTrayAvailable(); -+ static bool xEmbedSystemTrayVisualHasAlphaChannel(); -+ -+#ifdef XCB_USE_XINPUT21 -+ void handleEnterEvent(); -+#endif -+ -+#ifdef XCB_USE_XINPUT22 -+ bool startSystemResizeForTouchBegin(xcb_window_t window, const QPoint &point, Qt::Corner corner); -+ bool xi2SetMouseGrabEnabled(xcb_window_t w, bool grab); -+#endif -+ Qt::MouseButton xiToQtMouseButton(uint32_t b); -+ -+ QXcbEventReader *eventReader() const { return m_reader; } -+ -+ bool canGrab() const { return m_canGrabServer; } -+ -+ QXcbGlIntegration *glIntegration() const { return m_glIntegration; } -+ -+#ifdef XCB_USE_XINPUT22 -+ bool xi2MouseEvents() const; -+ bool isTouchScreen(int id) const; -+#endif -+ -+protected: -+ bool event(QEvent *e) override; -+ -+public slots: -+ void flush() { xcb_flush(m_connection); } -+ -+private slots: -+ void processXcbEvents(); -+ -+private: -+ void initializeAllAtoms(); -+ void sendConnectionEvent(QXcbAtom::Atom atom, uint id = 0); -+ void initializeXFixes(); -+ void initializeXRender(); -+ void initializeXRandr(); -+ void initializeXinerama(); -+ void initializeXShape(); -+ void initializeXKB(); -+ void handleClientMessageEvent(const xcb_client_message_event_t *event); -+ QXcbScreen* findScreenForCrtc(xcb_window_t rootWindow, xcb_randr_crtc_t crtc) const; -+ QXcbScreen* findScreenForOutput(xcb_window_t rootWindow, xcb_randr_output_t output) const; -+ QXcbVirtualDesktop* virtualDesktopForRootWindow(xcb_window_t rootWindow) const; -+ void updateScreens(const xcb_randr_notify_event_t *event); -+ bool checkOutputIsPrimary(xcb_window_t rootWindow, xcb_randr_output_t output); -+ void updateScreen(QXcbScreen *screen, const xcb_randr_output_change_t &outputChange); -+ QXcbScreen *createScreen(QXcbVirtualDesktop *virtualDesktop, -+ const xcb_randr_output_change_t &outputChange, -+ xcb_randr_get_output_info_reply_t *outputInfo); -+ void destroyScreen(QXcbScreen *screen); -+ void initializeScreens(); -+ bool compressEvent(xcb_generic_event_t *event, int currentIndex, QXcbEventArray *eventqueue) const; -+#if QT_CONFIG(xinput2) -+ bool m_xi2Enabled = false; -+ int m_xi2Minor = 2; -+ void initializeXInput2(); -+ void finalizeXInput2(); -+ void xi2SetupDevices(); -+ XInput2TouchDeviceData *touchDeviceForId(int id); -+ void xi2HandleEvent(xcb_ge_event_t *event); -+ void xi2HandleHierachyEvent(void *event); -+ void xi2HandleDeviceChangedEvent(void *event); -+ int m_xiOpCode, m_xiEventBase, m_xiErrorBase; -+#ifdef XCB_USE_XINPUT22 -+ void xi2ProcessTouch(void *xiDevEvent, QXcbWindow *platformWindow); -+#endif // XCB_USE_XINPUT22 -+#if QT_CONFIG(tabletevent) -+ struct TabletData { -+ int deviceId = 0; -+ QTabletEvent::PointerType pointerType = QTabletEvent::UnknownPointer; -+ QTabletEvent::TabletDevice tool = QTabletEvent::Stylus; -+ Qt::MouseButtons buttons = 0; -+ qint64 serialId = 0; -+ bool inProximity = false; -+ struct ValuatorClassInfo { -+ double minVal = 0; -+ double maxVal = 0; -+ double curVal = 0; -+ int number = -1; -+ }; -+ QHash valuatorInfo; -+ }; -+ friend class QTypeInfo; -+ friend class QTypeInfo; -+ bool xi2HandleTabletEvent(const void *event, TabletData *tabletData); -+ void xi2ReportTabletEvent(const void *event, TabletData *tabletData); -+ QVector m_tabletData; -+ TabletData *tabletDataForDevice(int id); -+#endif // QT_CONFIG(tabletevent) -+ struct ScrollingDevice { -+ int deviceId = 0; -+ int verticalIndex = 0; -+ int horizontalIndex = 0; -+ double verticalIncrement = 0; -+ double horizontalIncrement = 0; -+ Qt::Orientations orientations = 0; -+ Qt::Orientations legacyOrientations = 0; -+ QPointF lastScrollPosition; -+ }; -+ void updateScrollingDevice(ScrollingDevice& scrollingDevice, int num_classes, void *classes); -+ void xi2HandleScrollEvent(void *event, ScrollingDevice &scrollingDevice); -+ QHash m_scrollingDevices; -+ -+ static bool xi2GetValuatorValueIfSet(const void *event, int valuatorNum, double *value); -+ static void xi2PrepareXIGenericDeviceEvent(xcb_ge_event_t *event); -+#endif -+ -+ xcb_connection_t *m_connection = nullptr; -+ const xcb_setup_t *m_setup = nullptr; -+ const bool m_canGrabServer; -+ const xcb_visualid_t m_defaultVisualId; -+ -+ QList m_virtualDesktops; -+ QList m_screens; -+ int m_primaryScreenNumber = 0; -+ -+ xcb_atom_t m_allAtoms[QXcbAtom::NAtoms]; -+ -+ xcb_timestamp_t m_time = XCB_CURRENT_TIME; -+ xcb_timestamp_t m_netWmUserTime = XCB_CURRENT_TIME; -+ -+ QByteArray m_displayName; -+ -+ QXcbKeyboard *m_keyboard = nullptr; -+#ifndef QT_NO_CLIPBOARD -+ QXcbClipboard *m_clipboard = nullptr; -+#endif -+#ifndef QT_NO_DRAGANDDROP -+ QXcbDrag *m_drag = nullptr; -+#endif -+ QScopedPointer m_wmSupport; -+ QXcbNativeInterface *m_nativeInterface = nullptr; -+ -+#if QT_CONFIG(xcb_xlib) -+ void *m_xlib_display = nullptr; -+#endif -+ QXcbEventReader *m_reader = nullptr; -+#if QT_CONFIG(xinput2) -+ QHash m_touchDevices; -+#ifdef XCB_USE_XINPUT22 -+ struct StartSystemResizeInfo { -+ xcb_window_t window; -+ uint16_t deviceid; -+ uint32_t pointid; -+ Qt::Corner corner; -+ } m_startSystemResizeInfo; -+#endif -+#endif -+#ifdef Q_XCB_DEBUG -+ struct CallInfo { -+ int sequence; -+ QByteArray file; -+ int line; -+ }; -+ QVector m_callLog; -+ QMutex m_callLogMutex; -+ void log(const char *file, int line, int sequence); -+ template -+ friend cookie_t q_xcb_call_template(const cookie_t &cookie, QXcbConnection *connection, -+ const char *file, int line); -+ template -+ friend reply_t *q_xcb_call_template(reply_t *reply, QXcbConnection *connection, -+ const char *file, int line); -+#endif -+ -+ WindowMapper m_mapper; -+ -+ QVector m_peekFuncs; -+ -+ uint32_t xfixes_first_event = 0; -+ uint32_t xrandr_first_event = 0; -+ uint32_t xkb_first_event = 0; -+ -+ bool has_xinerama_extension = false; -+ bool has_shape_extension = false; -+ bool has_randr_extension = false; -+ bool has_input_shape; -+ bool has_xkb = false; -+ -+ Qt::MouseButtons m_buttons = 0; -+ -+ QXcbWindow *m_focusWindow = nullptr; -+ QXcbWindow *m_mouseGrabber = nullptr; -+ QXcbWindow *m_mousePressWindow = nullptr; -+ -+ xcb_window_t m_clientLeader = 0; -+ QByteArray m_startupId; -+ QXcbSystemTrayTracker *m_systemTrayTracker = nullptr; -+ QXcbGlIntegration *m_glIntegration = nullptr; -+ bool m_xiGrab = false; -+ -+ xcb_window_t m_qtSelectionOwner = 0; -+ -+ friend class QXcbEventReader; -+}; -+#if QT_CONFIG(xinput2) -+#if QT_CONFIG(tabletevent) -+Q_DECLARE_TYPEINFO(QXcbConnection::TabletData::ValuatorClassInfo, Q_PRIMITIVE_TYPE); -+Q_DECLARE_TYPEINFO(QXcbConnection::TabletData, Q_MOVABLE_TYPE); -+#endif -+#endif -+ -+#define DISPLAY_FROM_XCB(object) (reinterpret_cast(object->connection()->xlib_display())) -+#define CREATE_VISUALINFO_FROM_DEFAULT_VISUALID(object) ((XVisualInfo *)(object->connection()->createVisualInfoForDefaultVisualId())) -+ -+template -+xcb_generic_event_t *QXcbConnection::checkEvent(T &checker) -+{ -+ QXcbEventArray *eventqueue = m_reader->lock(); -+ -+ for (int i = 0; i < eventqueue->size(); ++i) { -+ xcb_generic_event_t *event = eventqueue->at(i); -+ if (checker.checkEvent(event)) { -+ (*eventqueue)[i] = 0; -+ m_reader->unlock(); -+ return event; -+ } -+ } -+ m_reader->unlock(); -+ return 0; -+} -+ -+class QXcbConnectionGrabber -+{ -+public: -+ QXcbConnectionGrabber(QXcbConnection *connection); -+ ~QXcbConnectionGrabber(); -+ void release(); -+private: -+ QXcbConnection *m_connection; -+}; -+ -+template -+union q_padded_xcb_event { -+ T event; -+ char padding[32]; -+}; -+ -+// The xcb_send_event() requires all events to have 32 bytes. It calls memcpy() on the -+// passed in event. If the passed in event is less than 32 bytes, memcpy() reaches into -+// unrelated memory. -+#define Q_DECLARE_XCB_EVENT(event_var, event_type) \ -+ q_padded_xcb_event store = {}; \ -+ auto &event_var = store.event; -+ -+#ifdef Q_XCB_DEBUG -+template -+cookie_t q_xcb_call_template(const cookie_t &cookie, QXcbConnection *connection, const char *file, -+ int line) -+{ -+ connection->log(file, line, cookie.sequence); -+ return cookie; -+} -+ -+template -+reply_t *q_xcb_call_template(reply_t *reply, QXcbConnection *connection, const char *file, int line) -+{ -+ connection->log(file, line, reply->sequence); -+ return reply; -+} -+#define Q_XCB_CALL(x) q_xcb_call_template(x, connection(), __FILE__, __LINE__) -+#define Q_XCB_CALL2(x, connection) q_xcb_call_template(x, connection, __FILE__, __LINE__) -+#define Q_XCB_NOOP(c) q_xcb_call_template(xcb_no_operation(c->xcb_connection()), c, __FILE__, __LINE__); -+#else -+#define Q_XCB_CALL(x) x -+#define Q_XCB_CALL2(x, connection) x -+#define Q_XCB_NOOP(c) (void)c; -+#endif -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.9.4/qxcbcursor.h b/libqt5xcbqpa-dev/5.9.4/qxcbcursor.h -new file mode 100644 -index 0000000..e3f8851 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.4/qxcbcursor.h -@@ -0,0 +1,115 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBCURSOR_H -+#define QXCBCURSOR_H -+ -+#include -+#include "qxcbscreen.h" -+ -+QT_BEGIN_NAMESPACE -+ -+#ifndef QT_NO_CURSOR -+ -+struct QXcbCursorCacheKey -+{ -+ explicit QXcbCursorCacheKey(const QCursor &c); -+ explicit QXcbCursorCacheKey(Qt::CursorShape s) : shape(s), bitmapCacheKey(0), maskCacheKey(0) {} -+ QXcbCursorCacheKey() : shape(Qt::CustomCursor), bitmapCacheKey(0), maskCacheKey(0) {} -+ -+ Qt::CursorShape shape; -+ qint64 bitmapCacheKey; -+ qint64 maskCacheKey; -+}; -+ -+inline bool operator==(const QXcbCursorCacheKey &k1, const QXcbCursorCacheKey &k2) -+{ -+ return k1.shape == k2.shape && k1.bitmapCacheKey == k2.bitmapCacheKey && k1.maskCacheKey == k2.maskCacheKey; -+} -+ -+inline uint qHash(const QXcbCursorCacheKey &k, uint seed) Q_DECL_NOTHROW -+{ -+ return (uint(k.shape) + uint(k.bitmapCacheKey) + uint(k.maskCacheKey)) ^ seed; -+} -+ -+#endif // !QT_NO_CURSOR -+ -+class QXcbCursor : public QXcbObject, public QPlatformCursor -+{ -+public: -+ QXcbCursor(QXcbConnection *conn, QXcbScreen *screen); -+ ~QXcbCursor(); -+#ifndef QT_NO_CURSOR -+ void changeCursor(QCursor *cursor, QWindow *widget) override; -+#endif -+ QPoint pos() const override; -+ void setPos(const QPoint &pos) override; -+ -+ static void queryPointer(QXcbConnection *c, QXcbVirtualDesktop **virtualDesktop, QPoint *pos, int *keybMask = 0); -+ -+#ifndef QT_NO_CURSOR -+ xcb_cursor_t xcbCursor(const QCursor &c) const -+ { return m_cursorHash.value(QXcbCursorCacheKey(c), xcb_cursor_t(0)); } -+#endif -+ -+private: -+#ifndef QT_NO_CURSOR -+ typedef QHash CursorHash; -+ -+ xcb_cursor_t createFontCursor(int cshape); -+ xcb_cursor_t createBitmapCursor(QCursor *cursor); -+ xcb_cursor_t createNonStandardCursor(int cshape); -+#endif -+ -+ QXcbScreen *m_screen; -+#ifndef QT_NO_CURSOR -+ CursorHash m_cursorHash; -+#endif -+#if QT_CONFIG(xcb_xlib) && QT_CONFIG(library) -+ static void cursorThemePropertyChanged(QXcbVirtualDesktop *screen, -+ const QByteArray &name, -+ const QVariant &property, -+ void *handle); -+#endif -+ bool m_gtkCursorThemeInitialized; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.9.4/qxcbdrag.h b/libqt5xcbqpa-dev/5.9.4/qxcbdrag.h -new file mode 100644 -index 0000000..9e1ee46 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.4/qxcbdrag.h -@@ -0,0 +1,181 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the QtGui module of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBDRAG_H -+#define QXCBDRAG_H -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+#ifndef QT_NO_DRAGANDDROP -+ -+class QWindow; -+class QPlatformWindow; -+class QXcbConnection; -+class QXcbWindow; -+class QXcbDropData; -+class QXcbScreen; -+class QDrag; -+class QShapedPixmapWindow; -+ -+class QXcbDrag : public QXcbObject, public QBasicDrag -+{ -+public: -+ QXcbDrag(QXcbConnection *c); -+ ~QXcbDrag(); -+ -+ QMimeData *platformDropData() override; -+ bool eventFilter(QObject *o, QEvent *e) override; -+ -+ void startDrag() override; -+ void cancel() override; -+ void move(const QPoint &globalPos) override; -+ void drop(const QPoint &globalPos) override; -+ void endDrag() override; -+ -+ void handleEnter(QPlatformWindow *window, const xcb_client_message_event_t *event, xcb_window_t proxy = 0); -+ void handlePosition(QPlatformWindow *w, const xcb_client_message_event_t *event); -+ void handleLeave(QPlatformWindow *w, const xcb_client_message_event_t *event); -+ void handleDrop(QPlatformWindow *, const xcb_client_message_event_t *event); -+ -+ void handleStatus(const xcb_client_message_event_t *event); -+ void handleSelectionRequest(const xcb_selection_request_event_t *event); -+ void handleFinished(const xcb_client_message_event_t *event); -+ -+ bool dndEnable(QXcbWindow *win, bool on); -+ bool ownsDragObject() const override; -+ -+ void updatePixmap(); -+ xcb_timestamp_t targetTime() { return target_time; } -+ -+protected: -+ void timerEvent(QTimerEvent* e) override; -+ -+private: -+ friend class QXcbDropData; -+ -+ void init(); -+ -+ void handle_xdnd_position(QPlatformWindow *w, const xcb_client_message_event_t *event); -+ void handle_xdnd_status(const xcb_client_message_event_t *event); -+ void send_leave(); -+ -+ Qt::DropAction toDropAction(xcb_atom_t atom) const; -+ xcb_atom_t toXdndAction(Qt::DropAction a) const; -+ -+ QPointer initiatorWindow; -+ QPointer currentWindow; -+ QPoint currentPosition; -+ -+ QXcbDropData *dropData; -+ Qt::DropAction accepted_drop_action; -+ -+ QWindow *desktop_proxy; -+ -+ xcb_atom_t xdnd_dragsource; -+ -+ // the types in this drop. 100 is no good, but at least it's big. -+ enum { xdnd_max_type = 100 }; -+ QVector xdnd_types; -+ -+ // timestamp from XdndPosition and XdndDroptime for retrieving the data -+ xcb_timestamp_t target_time; -+ xcb_timestamp_t source_time; -+ -+ // rectangle in which the answer will be the same -+ QRect source_sameanswer; -+ bool waiting_for_status; -+ -+ // helpers for setting executed drop action outside application -+ bool dropped; -+ bool canceled; -+ -+ // top-level window we sent position to last. -+ xcb_window_t current_target; -+ // window to send events to (always valid if current_target) -+ xcb_window_t current_proxy_target; -+ -+ QXcbVirtualDesktop *current_virtual_desktop; -+ -+ // 10 minute timer used to discard old XdndDrop transactions -+ enum { XdndDropTransactionTimeout = 600000 }; -+ int cleanup_timer; -+ -+ QVector drag_types; -+ -+ struct Transaction -+ { -+ xcb_timestamp_t timestamp; -+ xcb_window_t target; -+ xcb_window_t proxy_target; -+ QPlatformWindow *targetWindow; -+// QWidget *embedding_widget; -+ QPointer drag; -+ QTime time; -+ }; -+ friend class QTypeInfo; -+ QVector transactions; -+ -+ int transaction_expiry_timer; -+ void restartDropExpiryTimer(); -+ int findTransactionByWindow(xcb_window_t window); -+ int findTransactionByTime(xcb_timestamp_t timestamp); -+ xcb_window_t findRealWindow(const QPoint & pos, xcb_window_t w, int md, bool ignoreNonXdndAwareWindows); -+}; -+Q_DECLARE_TYPEINFO(QXcbDrag::Transaction, Q_MOVABLE_TYPE); -+ -+#endif // QT_NO_DRAGANDDROP -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.9.4/qxcbexport.h b/libqt5xcbqpa-dev/5.9.4/qxcbexport.h -new file mode 100644 -index 0000000..4db23a9 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.4/qxcbexport.h -@@ -0,0 +1,55 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBEXPORT_H -+#define QXCBEXPORT_H -+ -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+# if defined(QT_BUILD_XCB_PLUGIN) -+# define Q_XCB_EXPORT Q_DECL_EXPORT -+# else -+# define Q_XCB_EXPORT Q_DECL_IMPORT -+# endif -+ -+QT_END_NAMESPACE -+#endif //QXCBEXPORT_H -+ -diff --git a/libqt5xcbqpa-dev/5.9.4/qxcbimage.h b/libqt5xcbqpa-dev/5.9.4/qxcbimage.h -new file mode 100644 -index 0000000..a9071a4 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.4/qxcbimage.h -@@ -0,0 +1,62 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBIMAGE_H -+#define QXCBIMAGE_H -+ -+#include "qxcbscreen.h" -+#include -+#include -+#include -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+QImage::Format qt_xcb_imageFormatForVisual(QXcbConnection *connection, -+ uint8_t depth, const xcb_visualtype_t *visual); -+QPixmap qt_xcb_pixmapFromXPixmap(QXcbConnection *connection, xcb_pixmap_t pixmap, -+ int width, int height, int depth, -+ const xcb_visualtype_t *visual); -+xcb_pixmap_t qt_xcb_XPixmapFromBitmap(QXcbScreen *screen, const QImage &image); -+xcb_cursor_t qt_xcb_createCursorXRender(QXcbScreen *screen, const QImage &image, -+ const QPoint &spot); -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.9.4/qxcbintegration.h b/libqt5xcbqpa-dev/5.9.4/qxcbintegration.h -new file mode 100644 -index 0000000..b3d72c1 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.4/qxcbintegration.h -@@ -0,0 +1,145 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBINTEGRATION_H -+#define QXCBINTEGRATION_H -+ -+#include -+#include -+#include -+ -+#include "qxcbexport.h" -+ -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+class QXcbConnection; -+class QAbstractEventDispatcher; -+class QXcbNativeInterface; -+class QXcbScreen; -+ -+class Q_XCB_EXPORT QXcbIntegration : public QPlatformIntegration -+{ -+public: -+ QXcbIntegration(const QStringList ¶meters, int &argc, char **argv); -+ ~QXcbIntegration(); -+ -+ QPlatformWindow *createPlatformWindow(QWindow *window) const override; -+ QPlatformWindow *createForeignWindow(QWindow *window, WId nativeHandle) const override; -+#ifndef QT_NO_OPENGL -+ QPlatformOpenGLContext *createPlatformOpenGLContext(QOpenGLContext *context) const override; -+#endif -+ QPlatformBackingStore *createPlatformBackingStore(QWindow *window) const override; -+ -+ QPlatformOffscreenSurface *createPlatformOffscreenSurface(QOffscreenSurface *surface) const override; -+ -+ bool hasCapability(Capability cap) const override; -+ QAbstractEventDispatcher *createEventDispatcher() const override; -+ void initialize() override; -+ -+ void moveToScreen(QWindow *window, int screen); -+ -+ QPlatformFontDatabase *fontDatabase() const override; -+ -+ QPlatformNativeInterface *nativeInterface()const override; -+ -+#ifndef QT_NO_CLIPBOARD -+ QPlatformClipboard *clipboard() const override; -+#endif -+#ifndef QT_NO_DRAGANDDROP -+ QPlatformDrag *drag() const override; -+#endif -+ -+ QPlatformInputContext *inputContext() const override; -+ -+#ifndef QT_NO_ACCESSIBILITY -+ QPlatformAccessibility *accessibility() const override; -+#endif -+ -+ QPlatformServices *services() const override; -+ -+ Qt::KeyboardModifiers queryKeyboardModifiers() const override; -+ QList possibleKeys(const QKeyEvent *e) const override; -+ -+ QStringList themeNames() const override; -+ QPlatformTheme *createPlatformTheme(const QString &name) const override; -+ QVariant styleHint(StyleHint hint) const override; -+ -+ QXcbConnection *defaultConnection() const { return m_connections.first(); } -+ -+ QByteArray wmClass() const; -+ -+#if QT_CONFIG(xcb_sm) -+ QPlatformSessionManager *createPlatformSessionManager(const QString &id, const QString &key) const override; -+#endif -+ -+ void sync() override; -+ -+ void beep() const override; -+ -+ static QXcbIntegration *instance() { return m_instance; } -+ -+private: -+ QList m_connections; -+ -+ QScopedPointer m_fontDatabase; -+ QScopedPointer m_nativeInterface; -+ -+ QScopedPointer m_inputContext; -+ -+#ifndef QT_NO_ACCESSIBILITY -+ mutable QScopedPointer m_accessibility; -+#endif -+ -+ QScopedPointer m_services; -+ -+ friend class QXcbConnection; // access QPlatformIntegration::screenAdded() -+ -+ mutable QByteArray m_wmClass; -+ const char *m_instanceName; -+ bool m_canGrab; -+ xcb_visualid_t m_defaultVisualId; -+ -+ static QXcbIntegration *m_instance; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.9.4/qxcbkeyboard.h b/libqt5xcbqpa-dev/5.9.4/qxcbkeyboard.h -new file mode 100644 -index 0000000..74f9da0 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.4/qxcbkeyboard.h -@@ -0,0 +1,151 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBKEYBOARD_H -+#define QXCBKEYBOARD_H -+ -+#include "qxcbobject.h" -+ -+#include -+ -+#include -+#if QT_CONFIG(xkb) -+#include -+#endif -+ -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+class QWindow; -+ -+class QXcbKeyboard : public QXcbObject -+{ -+public: -+ QXcbKeyboard(QXcbConnection *connection); -+ -+ ~QXcbKeyboard(); -+ -+ void handleKeyPressEvent(const xcb_key_press_event_t *event); -+ void handleKeyReleaseEvent(const xcb_key_release_event_t *event); -+ void handleMappingNotifyEvent(const void *event); -+ -+ Qt::KeyboardModifiers translateModifiers(int s) const; -+ void updateKeymap(); -+ QList possibleKeys(const QKeyEvent *e) const; -+ -+ // when XKEYBOARD not present on the X server -+ void updateXKBMods(); -+ quint32 xkbModMask(quint16 state); -+ void updateXKBStateFromCore(quint16 state); -+#ifdef XCB_USE_XINPUT22 -+ void updateXKBStateFromXI(void *modInfo, void *groupInfo); -+#endif -+#if QT_CONFIG(xkb) -+ // when XKEYBOARD is present on the X server -+ int coreDeviceId() const { return core_device_id; } -+ void updateXKBState(xcb_xkb_state_notify_event_t *state); -+#endif -+ -+protected: -+ void handleKeyEvent(xcb_window_t sourceWindow, QEvent::Type type, xcb_keycode_t code, quint16 state, xcb_timestamp_t time); -+ -+ void resolveMaskConflicts(); -+ QString lookupString(struct xkb_state *state, xcb_keycode_t code) const; -+ int keysymToQtKey(xcb_keysym_t keysym) const; -+ int keysymToQtKey(xcb_keysym_t keysym, Qt::KeyboardModifiers &modifiers, const QString &text) const; -+ void printKeymapError(const char *error) const; -+ -+ void readXKBConfig(); -+ void clearXKBConfig(); -+ // when XKEYBOARD not present on the X server -+ void updateModifiers(); -+ // when XKEYBOARD is present on the X server -+ void updateVModMapping(); -+ void updateVModToRModMapping(); -+ -+ xkb_keysym_t lookupLatinKeysym(xkb_keycode_t keycode) const; -+ void checkForLatinLayout(); -+ -+private: -+ void updateXKBStateFromState(struct xkb_state *kb_state, quint16 state); -+ -+ bool m_config = false; -+ xcb_keycode_t m_autorepeat_code = 0; -+ -+ struct xkb_context *xkb_context = nullptr; -+ struct xkb_keymap *xkb_keymap = nullptr; -+ struct xkb_state *xkb_state = nullptr; -+ struct xkb_rule_names xkb_names; -+ mutable struct xkb_keymap *latin_keymap = nullptr; -+ -+ struct _mod_masks { -+ uint alt; -+ uint altgr; -+ uint meta; -+ uint super; -+ uint hyper; -+ }; -+ -+ _mod_masks rmod_masks; -+ -+ // when XKEYBOARD not present on the X server -+ xcb_key_symbols_t *m_key_symbols; -+ struct _xkb_mods { -+ xkb_mod_index_t shift; -+ xkb_mod_index_t lock; -+ xkb_mod_index_t control; -+ xkb_mod_index_t mod1; -+ xkb_mod_index_t mod2; -+ xkb_mod_index_t mod3; -+ xkb_mod_index_t mod4; -+ xkb_mod_index_t mod5; -+ }; -+ _xkb_mods xkb_mods; -+#if QT_CONFIG(xkb) -+ // when XKEYBOARD is present on the X server -+ _mod_masks vmod_masks; -+ int core_device_id; -+#endif -+ bool m_hasLatinLayout = false; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.9.4/qxcbmime.h b/libqt5xcbqpa-dev/5.9.4/qxcbmime.h -new file mode 100644 -index 0000000..561631a ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.4/qxcbmime.h -@@ -0,0 +1,75 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBMIME_H -+#define QXCBMIME_H -+ -+#include -+ -+#include -+ -+#include "qxcbintegration.h" -+#include "qxcbconnection.h" -+ -+QT_BEGIN_NAMESPACE -+ -+#if !(defined(QT_NO_DRAGANDDROP) && defined(QT_NO_CLIPBOARD)) -+ -+class QXcbMime : public QInternalMimeData { -+ Q_OBJECT -+public: -+ QXcbMime(); -+ ~QXcbMime(); -+ -+ static QVector mimeAtomsForFormat(QXcbConnection *connection, const QString &format); -+ static QString mimeAtomToString(QXcbConnection *connection, xcb_atom_t a); -+ static bool mimeDataForAtom(QXcbConnection *connection, xcb_atom_t a, QMimeData *mimeData, QByteArray *data, -+ xcb_atom_t *atomFormat, int *dataFormat); -+ static QVariant mimeConvertToFormat(QXcbConnection *connection, xcb_atom_t a, const QByteArray &data, const QString &format, -+ QVariant::Type requestedType, const QByteArray &encoding); -+ static xcb_atom_t mimeAtomForFormat(QXcbConnection *connection, const QString &format, QVariant::Type requestedType, -+ const QVector &atoms, QByteArray *requestedEncoding); -+}; -+ -+#endif // !(defined(QT_NO_DRAGANDDROP) && defined(QT_NO_CLIPBOARD)) -+ -+ -+QT_END_NAMESPACE -+ -+#endif // QXCBMIME_H -diff --git a/libqt5xcbqpa-dev/5.9.4/qxcbnativeinterface.h b/libqt5xcbqpa-dev/5.9.4/qxcbnativeinterface.h -new file mode 100644 -index 0000000..4186d77 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.4/qxcbnativeinterface.h -@@ -0,0 +1,152 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBNATIVEINTERFACE_H -+#define QXCBNATIVEINTERFACE_H -+ -+#include -+#include -+ -+#include -+ -+#include "qxcbexport.h" -+ -+QT_BEGIN_NAMESPACE -+ -+class QWidget; -+class QXcbScreen; -+class QXcbConnection; -+class QXcbNativeInterfaceHandler; -+ -+class Q_XCB_EXPORT QXcbNativeInterface : public QPlatformNativeInterface -+{ -+ Q_OBJECT -+public: -+ enum ResourceType { -+ Display, -+ Connection, -+ Screen, -+ AppTime, -+ AppUserTime, -+ ScreenHintStyle, -+ StartupId, -+ TrayWindow, -+ GetTimestamp, -+ X11Screen, -+ RootWindow, -+ ScreenSubpixelType, -+ ScreenAntialiasingEnabled, -+ AtspiBus, -+ CompositingEnabled -+ }; -+ -+ QXcbNativeInterface(); -+ -+ void *nativeResourceForIntegration(const QByteArray &resource) override; -+ void *nativeResourceForContext(const QByteArray &resourceString, QOpenGLContext *context) override; -+ void *nativeResourceForScreen(const QByteArray &resource, QScreen *screen) override; -+ void *nativeResourceForWindow(const QByteArray &resourceString, QWindow *window) override; -+ void *nativeResourceForBackingStore(const QByteArray &resource, QBackingStore *backingStore) override; -+#ifndef QT_NO_CURSOR -+ void *nativeResourceForCursor(const QByteArray &resource, const QCursor &cursor) override; -+#endif -+ -+ NativeResourceForIntegrationFunction nativeResourceFunctionForIntegration(const QByteArray &resource) override; -+ NativeResourceForContextFunction nativeResourceFunctionForContext(const QByteArray &resource) override; -+ NativeResourceForScreenFunction nativeResourceFunctionForScreen(const QByteArray &resource) override; -+ NativeResourceForWindowFunction nativeResourceFunctionForWindow(const QByteArray &resource) override; -+ NativeResourceForBackingStoreFunction nativeResourceFunctionForBackingStore(const QByteArray &resource) override; -+ -+ QFunctionPointer platformFunction(const QByteArray &function) const override; -+ -+ inline const QByteArray &genericEventFilterType() const { return m_genericEventFilterType; } -+ -+ void *displayForWindow(QWindow *window); -+ void *connectionForWindow(QWindow *window); -+ void *screenForWindow(QWindow *window); -+ void *appTime(const QXcbScreen *screen); -+ void *appUserTime(const QXcbScreen *screen); -+ void *getTimestamp(const QXcbScreen *screen); -+ void *startupId(); -+ void *x11Screen(); -+ void *rootWindow(); -+ void *display(); -+ void *atspiBus(); -+ void *connection(); -+ static void setStartupId(const char *); -+ static void setAppTime(QScreen *screen, xcb_timestamp_t time); -+ static void setAppUserTime(QScreen *screen, xcb_timestamp_t time); -+ -+ Q_INVOKABLE bool systemTrayAvailable(const QScreen *screen) const; -+ Q_INVOKABLE void setParentRelativeBackPixmap(QWindow *window); -+ Q_INVOKABLE bool systrayVisualHasAlphaChannel(); -+ Q_INVOKABLE bool requestSystemTrayWindowDock(const QWindow *window); -+ Q_INVOKABLE QRect systemTrayWindowGlobalGeometry(const QWindow *window); -+ -+ void addHandler(QXcbNativeInterfaceHandler *handler); -+ void removeHandler(QXcbNativeInterfaceHandler *handler); -+signals: -+ void systemTrayWindowChanged(QScreen *screen); -+ -+private: -+ xcb_window_t locateSystemTray(xcb_connection_t *conn, const QXcbScreen *screen); -+ -+ const QByteArray m_genericEventFilterType; -+ -+ xcb_atom_t m_sysTraySelectionAtom = XCB_ATOM_NONE; -+ -+ static QXcbScreen *qPlatformScreenForWindow(QWindow *window); -+ -+ QList m_handlers; -+ NativeResourceForIntegrationFunction handlerNativeResourceFunctionForIntegration(const QByteArray &resource) const; -+ NativeResourceForContextFunction handlerNativeResourceFunctionForContext(const QByteArray &resource) const; -+ NativeResourceForScreenFunction handlerNativeResourceFunctionForScreen(const QByteArray &resource) const; -+ NativeResourceForWindowFunction handlerNativeResourceFunctionForWindow(const QByteArray &resource) const; -+ NativeResourceForBackingStoreFunction handlerNativeResourceFunctionForBackingStore(const QByteArray &resource) const; -+ QFunctionPointer handlerPlatformFunction(const QByteArray &function) const; -+ void *handlerNativeResourceForIntegration(const QByteArray &resource) const; -+ void *handlerNativeResourceForContext(const QByteArray &resource, QOpenGLContext *context) const; -+ void *handlerNativeResourceForScreen(const QByteArray &resource, QScreen *screen) const; -+ void *handlerNativeResourceForWindow(const QByteArray &resource, QWindow *window) const; -+ void *handlerNativeResourceForBackingStore(const QByteArray &resource, QBackingStore *backingStore) const; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif // QXCBNATIVEINTERFACE_H -diff --git a/libqt5xcbqpa-dev/5.9.4/qxcbobject.h b/libqt5xcbqpa-dev/5.9.4/qxcbobject.h -new file mode 100644 -index 0000000..1b98d93 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.4/qxcbobject.h -@@ -0,0 +1,64 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBOBJECT_H -+#define QXCBOBJECT_H -+ -+#include "qxcbconnection.h" -+ -+QT_BEGIN_NAMESPACE -+ -+class QXcbObject -+{ -+public: -+ QXcbObject(QXcbConnection *connection = 0) : m_connection(connection) {} -+ -+ void setConnection(QXcbConnection *connection) { m_connection = connection; } -+ QXcbConnection *connection() const { return m_connection; } -+ -+ xcb_atom_t atom(QXcbAtom::Atom atom) const { return m_connection->atom(atom); } -+ xcb_connection_t *xcb_connection() const { return m_connection->xcb_connection(); } -+ -+private: -+ QXcbConnection *m_connection; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.9.4/qxcbscreen.h b/libqt5xcbqpa-dev/5.9.4/qxcbscreen.h -new file mode 100644 -index 0000000..4163be2 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.4/qxcbscreen.h -@@ -0,0 +1,220 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBSCREEN_H -+#define QXCBSCREEN_H -+ -+#include -+#include -+ -+#include -+#include -+#include -+#include -+ -+#include "qxcbobject.h" -+#include "qxcbscreen.h" -+ -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+class QXcbConnection; -+class QXcbCursor; -+class QXcbXSettings; -+#ifndef QT_NO_DEBUG_STREAM -+class QDebug; -+#endif -+ -+class QXcbVirtualDesktop : public QXcbObject -+{ -+public: -+ QXcbVirtualDesktop(QXcbConnection *connection, xcb_screen_t *screen, int number); -+ ~QXcbVirtualDesktop(); -+ -+ xcb_screen_t *screen() const { return m_screen; } -+ int number() const { return m_number; } -+ QSize size() const { return QSize(m_screen->width_in_pixels, m_screen->height_in_pixels); } -+ QSize physicalSize() const { return QSize(m_screen->width_in_millimeters, m_screen->height_in_millimeters); } -+ xcb_window_t root() const { return m_screen->root; } -+ QXcbScreen *screenAt(const QPoint &pos) const; -+ -+ QList screens() const { return m_screens; } -+ void setScreens(QList sl) { m_screens = sl; } -+ void removeScreen(QPlatformScreen *s) { m_screens.removeOne(s); } -+ void addScreen(QPlatformScreen *s); -+ void setPrimaryScreen(QPlatformScreen *s); -+ -+ QXcbXSettings *xSettings() const; -+ -+ bool compositingActive() const; -+ -+ QRect workArea() const { return m_workArea; } -+ void updateWorkArea(); -+ -+ void handleXFixesSelectionNotify(xcb_xfixes_selection_notify_event_t *notify_event); -+ void subscribeToXFixesSelectionNotify(); -+ -+private: -+ QRect getWorkArea() const; -+ -+ xcb_screen_t *m_screen; -+ const int m_number; -+ QList m_screens; -+ -+ QXcbXSettings *m_xSettings = nullptr; -+ xcb_atom_t m_net_wm_cm_atom = 0; -+ bool m_compositingActive = false; -+ -+ QRect m_workArea; -+}; -+ -+class Q_XCB_EXPORT QXcbScreen : public QXcbObject, public QPlatformScreen -+{ -+public: -+ QXcbScreen(QXcbConnection *connection, QXcbVirtualDesktop *virtualDesktop, -+ xcb_randr_output_t outputId, xcb_randr_get_output_info_reply_t *outputInfo, -+ const xcb_xinerama_screen_info_t *xineramaScreenInfo = Q_NULLPTR, int xineramaScreenIdx = -1); -+ ~QXcbScreen(); -+ -+ QString getOutputName(xcb_randr_get_output_info_reply_t *outputInfo); -+ -+ QPixmap grabWindow(WId window, int x, int y, int width, int height) const override; -+ -+ QWindow *topLevelAt(const QPoint &point) const override; -+ -+ QRect geometry() const override { return m_geometry; } -+ QRect availableGeometry() const override {return m_availableGeometry;} -+ int depth() const override { return screen()->root_depth; } -+ QImage::Format format() const override; -+ QSizeF physicalSize() const override { return m_sizeMillimeters; } -+ QSize virtualSize() const { return m_virtualSize; } -+ QSizeF physicalVirtualSize() const { return m_virtualSizeMillimeters; } -+ QDpi virtualDpi() const; -+ QDpi logicalDpi() const override; -+ qreal pixelDensity() const override; -+ QPlatformCursor *cursor() const override; -+ qreal refreshRate() const override { return m_refreshRate; } -+ Qt::ScreenOrientation orientation() const override { return m_orientation; } -+ QList virtualSiblings() const override { return m_virtualDesktop->screens(); } -+ QXcbVirtualDesktop *virtualDesktop() const { return m_virtualDesktop; } -+ -+ void setPrimary(bool primary) { m_primary = primary; } -+ bool isPrimary() const { return m_primary; } -+ -+ int screenNumber() const { return m_virtualDesktop->number(); } -+ static int virtualDesktopNumberStatic(const QScreen *screen); -+ -+ xcb_screen_t *screen() const { return m_virtualDesktop->screen(); } -+ xcb_window_t root() const { return screen()->root; } -+ xcb_randr_output_t output() const { return m_output; } -+ xcb_randr_crtc_t crtc() const { return m_crtc; } -+ xcb_randr_mode_t mode() const { return m_mode; } -+ -+ void setOutput(xcb_randr_output_t outputId, -+ xcb_randr_get_output_info_reply_t *outputInfo); -+ void setCrtc(xcb_randr_crtc_t crtc) { m_crtc = crtc; } -+ -+ void windowShown(QXcbWindow *window); -+ QString windowManagerName() const { return m_windowManagerName; } -+ bool syncRequestSupported() const { return m_syncRequestSupported; } -+ -+ QSurfaceFormat surfaceFormatFor(const QSurfaceFormat &format) const; -+ -+ const xcb_visualtype_t *visualForFormat(const QSurfaceFormat &format) const; -+ const xcb_visualtype_t *visualForId(xcb_visualid_t) const; -+ quint8 depthOfVisual(xcb_visualid_t) const; -+ -+ QString name() const override { return m_outputName; } -+ -+ void handleScreenChange(xcb_randr_screen_change_notify_event_t *change_event); -+ void updateGeometry(const QRect &geom, uint8_t rotation); -+ void updateGeometry(xcb_timestamp_t timestamp = XCB_TIME_CURRENT_TIME); -+ void updateAvailableGeometry(); -+ void updateRefreshRate(xcb_randr_mode_t mode); -+ -+ void readXResources(); -+ -+ QFontEngine::HintStyle hintStyle() const { return m_hintStyle; } -+ QFontEngine::SubpixelAntialiasingType subpixelType() const { return m_subpixelType; } -+ int antialiasingEnabled() const { return m_antialiasingEnabled; } -+ -+ QXcbXSettings *xSettings() const; -+ -+private: -+ static bool xResource(const QByteArray &identifier, -+ const QByteArray &expectedIdentifier, -+ QByteArray &stringValue); -+ void sendStartupMessage(const QByteArray &message) const; -+ -+ QXcbVirtualDesktop *m_virtualDesktop; -+ xcb_randr_output_t m_output; -+ xcb_randr_crtc_t m_crtc; -+ xcb_randr_mode_t m_mode = XCB_NONE; -+ bool m_primary = false; -+ uint8_t m_rotation = XCB_RANDR_ROTATION_ROTATE_0; -+ -+ QString m_outputName; -+ QSizeF m_outputSizeMillimeters; -+ QSizeF m_sizeMillimeters; -+ QRect m_geometry; -+ QRect m_availableGeometry; -+ QSize m_virtualSize; -+ QSizeF m_virtualSizeMillimeters; -+ Qt::ScreenOrientation m_orientation = Qt::PrimaryOrientation; -+ QString m_windowManagerName; -+ bool m_syncRequestSupported = false; -+ QMap m_visuals; -+ QMap m_visualDepths; -+ QXcbCursor *m_cursor; -+ int m_refreshRate = 60; -+ int m_forcedDpi = -1; -+ int m_pixelDensity = 1; -+ QFontEngine::HintStyle m_hintStyle = QFontEngine::HintStyle(-1); -+ QFontEngine::SubpixelAntialiasingType m_subpixelType = QFontEngine::SubpixelAntialiasingType(-1); -+ int m_antialiasingEnabled = -1; -+}; -+ -+#ifndef QT_NO_DEBUG_STREAM -+Q_GUI_EXPORT QDebug operator<<(QDebug, const QXcbScreen *); -+#endif -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.9.4/qxcbsessionmanager.h b/libqt5xcbqpa-dev/5.9.4/qxcbsessionmanager.h -new file mode 100644 -index 0000000..0ad9445 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.4/qxcbsessionmanager.h -@@ -0,0 +1,96 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2013 Teo Mrnjavac -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBSESSIONMANAGER_H -+#define QXCBSESSIONMANAGER_H -+ -+// -+// W A R N I N G -+// ------------- -+// -+// This file is part of the QPA API and is not meant to be used -+// in applications. Usage of this API may make your code -+// source and binary incompatible with future versions of Qt. -+// -+ -+#include -+ -+#ifndef QT_NO_SESSIONMANAGER -+ -+QT_BEGIN_NAMESPACE -+ -+class QEventLoop; -+ -+class QXcbSessionManager : public QPlatformSessionManager -+{ -+public: -+ QXcbSessionManager(const QString &id, const QString &key); -+ virtual ~QXcbSessionManager(); -+ -+ void *handle() const; -+ -+ void setSessionId(const QString &id) { m_sessionId = id; } -+ void setSessionKey(const QString &key) { m_sessionKey = key; } -+ -+ bool allowsInteraction() override; -+ bool allowsErrorInteraction() override; -+ void release() override; -+ -+ void cancel() override; -+ -+ void setManagerProperty(const QString &name, const QString &value) override; -+ void setManagerProperty(const QString &name, const QStringList &value) override; -+ -+ bool isPhase2() const override; -+ void requestPhase2() override; -+ -+ void exitEventLoop(); -+ -+private: -+ QEventLoop *m_eventLoop; -+ -+ Q_DISABLE_COPY(QXcbSessionManager) -+}; -+ -+QT_END_NAMESPACE -+ -+#endif //QT_NO_SESSIONMANAGER -+ -+#endif //QXCBSESSIONMANAGER_H -diff --git a/libqt5xcbqpa-dev/5.9.4/qxcbsystemtraytracker.h b/libqt5xcbqpa-dev/5.9.4/qxcbsystemtraytracker.h -new file mode 100644 -index 0000000..a95b937 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.4/qxcbsystemtraytracker.h -@@ -0,0 +1,85 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBSYSTEMTRAYTRACKER_H -+#define QXCBSYSTEMTRAYTRACKER_H -+ -+#include "qxcbconnection.h" -+ -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+class QXcbConnection; -+class QScreen; -+ -+class QXcbSystemTrayTracker : public QObject, public QXcbWindowEventListener -+{ -+ Q_OBJECT -+public: -+ static QXcbSystemTrayTracker *create(QXcbConnection *connection); -+ -+ xcb_window_t trayWindow(); -+ void requestSystemTrayWindowDock(xcb_window_t window) const; -+ QRect systemTrayWindowGlobalGeometry(xcb_window_t window) const; -+ -+ void notifyManagerClientMessageEvent(const xcb_client_message_event_t *); -+ -+ void handleDestroyNotifyEvent(const xcb_destroy_notify_event_t *) override; -+ -+ bool visualHasAlphaChannel(); -+signals: -+ void systemTrayWindowChanged(QScreen *screen); -+ -+private: -+ explicit QXcbSystemTrayTracker(QXcbConnection *connection, -+ xcb_atom_t trayAtom, -+ xcb_atom_t selection); -+ static xcb_window_t locateTrayWindow(const QXcbConnection *connection, xcb_atom_t selection); -+ void emitSystemTrayWindowChanged(); -+ -+ const xcb_atom_t m_selection; -+ const xcb_atom_t m_trayAtom; -+ QXcbConnection *m_connection; -+ xcb_window_t m_trayWindow = 0; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif // QXCBSYSTEMTRAYTRACKER_H -diff --git a/libqt5xcbqpa-dev/5.9.4/qxcbwindow.h b/libqt5xcbqpa-dev/5.9.4/qxcbwindow.h -new file mode 100644 -index 0000000..f38343b ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.4/qxcbwindow.h -@@ -0,0 +1,297 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBWINDOW_H -+#define QXCBWINDOW_H -+ -+#include -+#include -+#include -+ -+#include -+#include -+ -+#include "qxcbobject.h" -+ -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+class QXcbScreen; -+class QXcbSyncWindowRequest; -+class QIcon; -+ -+class Q_XCB_EXPORT QXcbWindow : public QXcbObject, public QXcbWindowEventListener, public QPlatformWindow -+{ -+public: -+ enum NetWmState { -+ NetWmStateAbove = 0x1, -+ NetWmStateBelow = 0x2, -+ NetWmStateFullScreen = 0x4, -+ NetWmStateMaximizedHorz = 0x8, -+ NetWmStateMaximizedVert = 0x10, -+ NetWmStateModal = 0x20, -+ NetWmStateStaysOnTop = 0x40, -+ NetWmStateDemandsAttention = 0x80 -+ }; -+ -+ Q_DECLARE_FLAGS(NetWmStates, NetWmState) -+ -+ QXcbWindow(QWindow *window); -+ ~QXcbWindow(); -+ -+ void setGeometry(const QRect &rect) override; -+ -+ QMargins frameMargins() const override; -+ -+ void setVisible(bool visible) override; -+ void setWindowFlags(Qt::WindowFlags flags) override; -+ void setWindowState(Qt::WindowState state) override; -+ WId winId() const override; -+ void setParent(const QPlatformWindow *window) override; -+ -+ bool isExposed() const override; -+ bool isEmbedded() const override; -+ QPoint mapToGlobal(const QPoint &pos) const override; -+ QPoint mapFromGlobal(const QPoint &pos) const override; -+ -+ void setWindowTitle(const QString &title) override; -+ void setWindowIconText(const QString &title); -+ void setWindowIcon(const QIcon &icon) override; -+ void raise() override; -+ void lower() override; -+ void propagateSizeHints() override; -+ -+ void requestActivateWindow() override; -+ -+ bool setKeyboardGrabEnabled(bool grab) override; -+ bool setMouseGrabEnabled(bool grab) override; -+ -+ void setCursor(xcb_cursor_t cursor, bool isBitmapCursor); -+ -+ QSurfaceFormat format() const override; -+ -+ void windowEvent(QEvent *event) override; -+ -+ bool startSystemResize(const QPoint &pos, Qt::Corner corner) override; -+ -+ void setOpacity(qreal level) override; -+ void setMask(const QRegion ®ion) override; -+ -+ void setAlertState(bool enabled) override; -+ bool isAlertState() const override { return m_alertState; } -+ -+ xcb_window_t xcb_window() const { return m_window; } -+ uint depth() const { return m_depth; } -+ QImage::Format imageFormat() const { return m_imageFormat; } -+ bool imageNeedsRgbSwap() const { return m_imageRgbSwap; } -+ -+ bool handleGenericEvent(xcb_generic_event_t *event, long *result) override; -+ -+ void handleExposeEvent(const xcb_expose_event_t *event) override; -+ void handleClientMessageEvent(const xcb_client_message_event_t *event) override; -+ void handleConfigureNotifyEvent(const xcb_configure_notify_event_t *event) override; -+ void handleMapNotifyEvent(const xcb_map_notify_event_t *event) override; -+ void handleUnmapNotifyEvent(const xcb_unmap_notify_event_t *event) override; -+ void handleButtonPressEvent(const xcb_button_press_event_t *event) override; -+ void handleButtonReleaseEvent(const xcb_button_release_event_t *event) override; -+ void handleMotionNotifyEvent(const xcb_motion_notify_event_t *event) override; -+ -+ void handleEnterNotifyEvent(const xcb_enter_notify_event_t *event) override; -+ void handleLeaveNotifyEvent(const xcb_leave_notify_event_t *event) override; -+ void handleFocusInEvent(const xcb_focus_in_event_t *event) override; -+ void handleFocusOutEvent(const xcb_focus_out_event_t *event) override; -+ void handlePropertyNotifyEvent(const xcb_property_notify_event_t *event) override; -+#ifdef XCB_USE_XINPUT22 -+ void handleXIMouseEvent(xcb_ge_event_t *, Qt::MouseEventSource source = Qt::MouseEventNotSynthesized) override; -+ void handleXIEnterLeave(xcb_ge_event_t *) override; -+#endif -+ -+ QXcbWindow *toWindow() override; -+ -+ void handleMouseEvent(xcb_timestamp_t time, const QPoint &local, const QPoint &global, -+ Qt::KeyboardModifiers modifiers, Qt::MouseEventSource source); -+ -+ void updateNetWmUserTime(xcb_timestamp_t timestamp); -+ -+ static void setWmWindowTypeStatic(QWindow *window, QXcbWindowFunctions::WmWindowTypes windowTypes); -+ static void setWmWindowRoleStatic(QWindow *window, const QByteArray &role); -+ static uint visualIdStatic(QWindow *window); -+ -+ QXcbWindowFunctions::WmWindowTypes wmWindowTypes() const; -+ void setWmWindowType(QXcbWindowFunctions::WmWindowTypes types, Qt::WindowFlags flags); -+ void setWmWindowRole(const QByteArray &role); -+ -+ static void setWindowIconTextStatic(QWindow *window, const QString &text); -+ -+ static void setParentRelativeBackPixmapStatic(QWindow *window); -+ void setParentRelativeBackPixmap(); -+ -+ static bool requestSystemTrayWindowDockStatic(const QWindow *window); -+ bool requestSystemTrayWindowDock() const; -+ -+ static QRect systemTrayWindowGlobalGeometryStatic(const QWindow *window); -+ QRect systemTrayWindowGlobalGeometry() const; -+ uint visualId() const; -+ -+ bool needsSync() const; -+ -+ void postSyncWindowRequest(); -+ void clearSyncWindowRequest() { m_pendingSyncRequest = 0; } -+ -+ QXcbScreen *xcbScreen() const; -+ -+ bool doStartSystemResize(const QPoint &globalPos, Qt::Corner corner); -+ -+ virtual void create(); -+ virtual void destroy(); -+ -+public Q_SLOTS: -+ void updateSyncRequestCounter(); -+ -+protected: -+ virtual void resolveFormat(const QSurfaceFormat &format) { m_format = format; } -+ virtual const xcb_visualtype_t *createVisual(); -+ -+ QXcbScreen *parentScreen(); -+ -+ QXcbScreen *initialScreen() const; -+ void changeNetWmState(bool set, xcb_atom_t one, xcb_atom_t two = 0); -+ NetWmStates netWmStates(); -+ void setNetWmStates(NetWmStates); -+ -+ void setMotifWindowFlags(Qt::WindowFlags flags); -+ void setNetWmStateWindowFlags(Qt::WindowFlags flags); -+ -+ void updateMotifWmHintsBeforeMap(); -+ void updateNetWmStateBeforeMap(); -+ -+ void setTransparentForMouseEvents(bool transparent); -+ void updateDoesNotAcceptFocus(bool doesNotAcceptFocus); -+ -+ QRect windowToWmGeometry(QRect r) const; -+ void sendXEmbedMessage(xcb_window_t window, quint32 message, -+ quint32 detail = 0, quint32 data1 = 0, quint32 data2 = 0); -+ void handleXEmbedMessage(const xcb_client_message_event_t *event); -+ -+ void show(); -+ void hide(); -+ -+ bool relayFocusToModalWindow() const; -+ void doFocusIn(); -+ void doFocusOut(); -+ -+ bool compressExposeEvent(QRegion &exposeRegion); -+ -+ void handleButtonPressEvent(int event_x, int event_y, int root_x, int root_y, -+ int detail, Qt::KeyboardModifiers modifiers, xcb_timestamp_t timestamp, Qt::MouseEventSource source = Qt::MouseEventNotSynthesized); -+ -+ void handleButtonReleaseEvent(int event_x, int event_y, int root_x, int root_y, -+ int detail, Qt::KeyboardModifiers modifiers, xcb_timestamp_t timestamp, Qt::MouseEventSource source = Qt::MouseEventNotSynthesized); -+ -+ void handleMotionNotifyEvent(int event_x, int event_y, int root_x, int root_y, -+ Qt::KeyboardModifiers modifiers, xcb_timestamp_t timestamp, Qt::MouseEventSource source = Qt::MouseEventNotSynthesized); -+ -+ void handleEnterNotifyEvent(int event_x, int event_y, int root_x, int root_y, -+ quint8 mode, quint8 detail, xcb_timestamp_t timestamp); -+ -+ void handleLeaveNotifyEvent(int root_x, int root_y, -+ quint8 mode, quint8 detail, xcb_timestamp_t timestamp); -+ -+ xcb_window_t m_window = 0; -+ xcb_colormap_t m_cmap = 0; -+ -+ uint m_depth = 0; -+ QImage::Format m_imageFormat = QImage::Format_ARGB32_Premultiplied; -+ bool m_imageRgbSwap = false; -+ -+ xcb_sync_int64_t m_syncValue; -+ xcb_sync_counter_t m_syncCounter = 0; -+ -+ Qt::WindowState m_windowState = Qt::WindowNoState; -+ -+ xcb_gravity_t m_gravity = XCB_GRAVITY_STATIC; -+ -+ bool m_mapped = false; -+ bool m_transparent = false; -+ bool m_usingSyncProtocol = false; -+ bool m_deferredActivation = false; -+ bool m_embedded = false; -+ bool m_alertState = false; -+ xcb_window_t m_netWmUserTimeWindow = XCB_NONE; -+ -+ QSurfaceFormat m_format; -+ -+ mutable bool m_dirtyFrameMargins = false; -+ mutable QMargins m_frameMargins; -+ -+ QRegion m_exposeRegion; -+ QSize m_oldWindowSize; -+ -+ xcb_visualid_t m_visualId = 0; -+ int m_lastWindowStateEvent = -1; -+ -+ enum SyncState { -+ NoSyncNeeded, -+ SyncReceived, -+ SyncAndConfigureReceived -+ }; -+ SyncState m_syncState = NoSyncNeeded; -+ -+ QXcbSyncWindowRequest *m_pendingSyncRequest = nullptr; -+ xcb_cursor_t m_currentBitmapCursor = XCB_CURSOR_NONE; -+}; -+ -+class QXcbForeignWindow : public QXcbWindow -+{ -+public: -+ QXcbForeignWindow(QWindow *window, WId nativeHandle) -+ : QXcbWindow(window) { m_window = nativeHandle; } -+ ~QXcbForeignWindow(); -+ bool isForeignWindow() const override { return true; } -+ -+protected: -+ void create() override {} // No-op -+}; -+ -+QT_END_NAMESPACE -+ -+Q_DECLARE_METATYPE(QXcbWindow*) -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.9.4/qxcbwmsupport.h b/libqt5xcbqpa-dev/5.9.4/qxcbwmsupport.h -new file mode 100644 -index 0000000..b5de5b7 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.4/qxcbwmsupport.h -@@ -0,0 +1,68 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+#ifndef QXCBWMSUPPORT_H -+#define QXCBWMSUPPORT_H -+ -+#include "qxcbobject.h" -+#include "qxcbconnection.h" -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+class QXcbWMSupport : public QXcbObject -+{ -+public: -+ QXcbWMSupport(QXcbConnection *c); -+ -+ -+ bool isSupportedByWM(xcb_atom_t atom) const; -+ const QVector &virtualRoots() const { return net_virtual_roots; } -+ -+private: -+ friend class QXcbConnection; -+ void updateNetWMAtoms(); -+ void updateVirtualRoots(); -+ -+ QVector net_wm_atoms; -+ QVector net_virtual_roots; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif -diff --git a/libqt5xcbqpa-dev/5.9.4/qxcbxsettings.h b/libqt5xcbqpa-dev/5.9.4/qxcbxsettings.h -new file mode 100644 -index 0000000..ab1f784 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.4/qxcbxsettings.h -@@ -0,0 +1,71 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: https://www.qt.io/licensing/ -+** -+** This file is part of the plugins of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see https://www.qt.io/terms-conditions. For further -+** information use the contact form at https://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 3 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL3 included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 3 requirements -+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 2.0 or (at your option) the GNU General -+** Public license version 3 or any later version approved by the KDE Free -+** Qt Foundation. The licenses are as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -+** included in the packaging of this file. Please review the following -+** information to ensure the GNU General Public License requirements will -+** be met: https://www.gnu.org/licenses/gpl-2.0.html and -+** https://www.gnu.org/licenses/gpl-3.0.html. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QXCBXSETTINGS_H -+#define QXCBXSETTINGS_H -+ -+#include "qxcbscreen.h" -+ -+QT_BEGIN_NAMESPACE -+ -+class QXcbXSettingsPrivate; -+ -+class QXcbXSettings : public QXcbWindowEventListener -+{ -+ Q_DECLARE_PRIVATE(QXcbXSettings) -+public: -+ QXcbXSettings(QXcbVirtualDesktop *screen); -+ ~QXcbXSettings(); -+ bool initialized() const; -+ -+ QVariant setting(const QByteArray &property) const; -+ -+ typedef void (*PropertyChangeFunc)(QXcbVirtualDesktop *screen, const QByteArray &name, const QVariant &property, void *handle); -+ void registerCallbackForProperty(const QByteArray &property, PropertyChangeFunc func, void *handle); -+ void removeCallbackForHandle(const QByteArray &property, void *handle); -+ void removeCallbackForHandle(void *handle); -+ -+ void handlePropertyNotifyEvent(const xcb_property_notify_event_t *event) override; -+private: -+ QXcbXSettingsPrivate *d_ptr; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif // QXCBXSETTINGS_H -diff --git a/libqt5xcbqpa-dev/5.9.5 b/libqt5xcbqpa-dev/5.9.5 -new file mode 120000 -index 0000000..d2d714f ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.5 -@@ -0,0 +1 @@ -+5.9.4 -\ No newline at end of file -diff --git a/libqt5xcbqpa-dev/5.9.6 b/libqt5xcbqpa-dev/5.9.6 -new file mode 120000 -index 0000000..8487525 ---- /dev/null -+++ b/libqt5xcbqpa-dev/5.9.6 -@@ -0,0 +1 @@ -+5.9.5 -\ No newline at end of file diff --git a/debian/patches/series b/debian/patches/series deleted file mode 100644 index 0ea5738..0000000 --- a/debian/patches/series +++ /dev/null @@ -1 +0,0 @@ -0003-Workaround-qt-private-header-problem.patch diff --git a/debian/rules b/debian/rules index 7f70ead..78b289d 100755 --- a/debian/rules +++ b/debian/rules @@ -13,8 +13,6 @@ include /usr/share/dpkg/pkg-info.mk DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) -_QT_COMPAT_VERSION_LIST := 5.9.2 5.9.3 5.9.4 5.9.5 5.9.6 5.10.1 -_TMPDIR := debian/tmp # # DTK: Automatic version parsing @@ -48,11 +46,3 @@ override_dh_missing: override_dh_installchangelogs: dh_installchangelogs -k CHANGELOG.md - -override_dh_install: - for i in $(_QT_COMPAT_VERSION_LIST); do \ - _QTXCBDIR=$(_TMPDIR)/usr/include/$(DEB_HOST_MULTIARCH)/qt5/QtXcb/$${i}/QtXcb/private ; \ - mkdir -p $${_QTXCBDIR} ; \ - cp -t $${_QTXCBDIR}/ libqt5xcbqpa-dev/$${i}/*.h ; \ - done - dh_install