summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/xcb/qxcbconnection.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/xcb/qxcbconnection.h')
-rw-r--r--src/plugins/platforms/xcb/qxcbconnection.h44
1 files changed, 23 insertions, 21 deletions
diff --git a/src/plugins/platforms/xcb/qxcbconnection.h b/src/plugins/platforms/xcb/qxcbconnection.h
index 60a4efff4e..44ee38e5de 100644
--- a/src/plugins/platforms/xcb/qxcbconnection.h
+++ b/src/plugins/platforms/xcb/qxcbconnection.h
@@ -65,9 +65,7 @@
#include <QTabletEvent>
#endif
-#ifdef XCB_USE_XINPUT2_MAEMO
-struct XInput2MaemoData;
-#elif XCB_USE_XINPUT2
+#if XCB_USE_XINPUT2
#include <X11/extensions/XI2.h>
#ifdef XIScrollClass
#define XCB_USE_XINPUT21 // XI 2.1 adds smooth scrolling support
@@ -279,9 +277,6 @@ namespace QXcbAtom {
RelHorizScroll,
RelVertScroll,
-#if XCB_USE_MAEMO_WINDOW_PROPERTIES
- MeegoTouchOrientationAngle,
-#endif
_XSETTINGS_SETTINGS,
_COMPIZ_DECOR_PENDING,
@@ -355,6 +350,18 @@ public:
typedef QHash<xcb_window_t, QXcbWindowEventListener *> 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 QXcbConnection : public QObject
{
@@ -399,9 +406,7 @@ public:
#if defined(XCB_USE_EGL)
void *egl_display() const { return m_egl_display; }
#endif
-#ifdef XCB_USE_XINPUT2_MAEMO
- bool isUsingXInput2Maemo();
-#elif defined(XCB_USE_XINPUT2)
+#if defined(XCB_USE_XINPUT2)
void xi2Select(xcb_window_t window);
#endif
#ifdef XCB_USE_XINPUT21
@@ -452,6 +457,7 @@ public:
void setFocusWindow(QXcbWindow *);
QByteArray startupId() const { return m_startupId; }
+ void setStartupId(const QByteArray &nextId) { m_startupId = nextId; }
void clearStartupId() { m_startupId.clear(); }
void grabServer();
@@ -467,8 +473,10 @@ public:
QXcbEventReader *eventReader() const { return m_reader; }
+protected:
+ bool event(QEvent *e) Q_DECL_OVERRIDE;
+
public slots:
- void syncWindow(QXcbWindow *window);
void flush() { xcb_flush(m_connection); }
private slots:
@@ -483,11 +491,6 @@ private:
void initializeXRandr();
void initializeXShape();
void initializeXKB();
-#ifdef XCB_USE_XINPUT2_MAEMO
- void initializeXInput2Maemo();
- void finalizeXInput2Maemo();
- void handleGenericEventMaemo(xcb_ge_event_t *event);
-#endif
void handleClientMessageEvent(const xcb_client_message_event_t *event);
QXcbScreen* findOrCreateScreen(QList<QXcbScreen *>& newScreens, int screenNumber,
xcb_screen_t* xcbScreen, xcb_randr_get_output_info_reply_t *output = NULL);
@@ -508,11 +511,11 @@ private:
#ifndef QT_NO_TABLETEVENT
struct TabletData {
TabletData() : deviceId(0), pointerType(QTabletEvent::UnknownPointer),
- tool(QTabletEvent::Stylus), down(false), serialId(0), inProximity(false) { }
+ tool(QTabletEvent::Stylus), buttons(0), serialId(0), inProximity(false) { }
int deviceId;
QTabletEvent::PointerType pointerType;
QTabletEvent::TabletDevice tool;
- bool down;
+ Qt::MouseButtons buttons;
qint64 serialId;
bool inProximity;
struct ValuatorClassInfo {
@@ -541,7 +544,7 @@ private:
QHash<int, ScrollingDevice> m_scrollingDevices;
#endif // XCB_USE_XINPUT2
-#if defined(XCB_USE_XINPUT2) || defined(XCB_USE_XINPUT2_MAEMO)
+#if defined(XCB_USE_XINPUT2)
static bool xi2GetValuatorValueIfSet(void *event, int valuatorNum, double *value);
static bool xi2PrepareXIGenericDeviceEvent(xcb_ge_event_t *event, int opCode);
#endif
@@ -574,9 +577,7 @@ private:
void *m_xlib_display;
#endif
QXcbEventReader *m_reader;
-#ifdef XCB_USE_XINPUT2_MAEMO
- XInput2MaemoData *m_xinputData;
-#elif defined(XCB_USE_XINPUT2)
+#if defined(XCB_USE_XINPUT2)
QHash<int, QWindowSystemInterface::TouchPoint> m_touchPoints;
QHash<int, XInput2DeviceData*> m_touchDevices;
#endif
@@ -604,6 +605,7 @@ private:
uint32_t xfixes_first_event;
uint32_t xrandr_first_event;
uint32_t xkb_first_event;
+ uint32_t glx_first_event;
bool has_glx_extension;
bool has_shape_extension;