summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/xcb/qxcbconnection.h
diff options
context:
space:
mode:
authorGatis Paeglis <gatis.paeglis@qt.io>2018-09-18 21:51:57 +0200
committerGatis Paeglis <gatis.paeglis@qt.io>2018-10-15 18:33:40 +0000
commit80b1cce0cfe5d8e527731b921fd5d0c1a007afd5 (patch)
tree313ae2cf0d5e104843348faf4a7fe8e452a026f8 /src/plugins/platforms/xcb/qxcbconnection.h
parent793a36258dd946d5c2d2a6c10c87c40e88e4736b (diff)
xcb: call processXcbEvents() on every event loop iteration
It is necessary for QTBUG-69687. The original code processes the xcb event queue only when new events have arrived, but if we want to do an event filtering that buffers some events and processes them later based on set/unset flags (e.g. QEventLoop::ExcludeUserInputEvents), we need to call processXcbEvents() on every event loop iteration, not only when new events have arrived from X server. The required functionality is implemented by having custom event dispatchers, instead of using the generic ones from QtGenericUnixDispatcher:: createUnixEventDispatcher() / eventdispatcher_support-private. This also enables for further customizations, as might be necessary by QTBUG-70095. Task-number: QTBUG-69687 Change-Id: I1f8b2400d26cccf17279d57bb4b678e40c615f33 Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
Diffstat (limited to 'src/plugins/platforms/xcb/qxcbconnection.h')
-rw-r--r--src/plugins/platforms/xcb/qxcbconnection.h3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/plugins/platforms/xcb/qxcbconnection.h b/src/plugins/platforms/xcb/qxcbconnection.h
index 29a233496b..3fb64f01a4 100644
--- a/src/plugins/platforms/xcb/qxcbconnection.h
+++ b/src/plugins/platforms/xcb/qxcbconnection.h
@@ -495,12 +495,11 @@ public:
QXcbGlIntegration *glIntegration() const;
void flush() { xcb_flush(m_connection); }
+ void processXcbEvents();
protected:
bool event(QEvent *e) override;
- void processXcbEvents();
-
private:
void initializeAllAtoms();
void initializeShm();