diff options
author | Gatis Paeglis <gatis.paeglis@qt.io> | 2020-06-18 16:51:02 +0200 |
---|---|---|
committer | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2020-06-21 17:51:28 +0200 |
commit | 1e39b39ddb478719682948bed329e891b26d7bf6 (patch) | |
tree | ed866bd1b045f189436313942a5416a30f7b6613 /src/plugins/platforms/xcb/qxcbnativeinterface.cpp | |
parent | 26a226630443a20bb2d3015431c019614e33a061 (diff) |
xcb: remove multi-connection code path
This code was introduced in 2011 as an experimental feature
and have been untested/unmaintained ever since. It's time to
remove it for the following reasons:
- It has never been documented in QGuiApplication under
"Supported Command Line Options". The intended command
line was: ./app -platform xcb:address:display
- I am not aware of other toolkits that would provide this
functionality - connecting to several X displays simultaneously.
- XCB plugin respects the "-display" command line and DISPLAY
envvar which should be sufficient. So the "workaround" to get
your window on 2 X displays is:
./app -display :0
./app -display :1
- There are no JIRA bugs where users would complain that this
feature does not work. AFAICT it has not worked for years.
Almost all functions care only about the "default" connection,
and don't attempt to support multi-connection.
- This will stop confusing people who want to contribute to
the XCB plugin.
[ChangeLog][Platform Specific Changes][X11] Connecting to multiple
X servers simultaneously within the same application is no longer
supported.
Task-number: QTBUG-52408
Change-Id: I61ce23480702bb89b02c6028fa0986fe63481978
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src/plugins/platforms/xcb/qxcbnativeinterface.cpp')
-rw-r--r-- | src/plugins/platforms/xcb/qxcbnativeinterface.cpp | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/src/plugins/platforms/xcb/qxcbnativeinterface.cpp b/src/plugins/platforms/xcb/qxcbnativeinterface.cpp index 30fa6864ac..fba62c57b5 100644 --- a/src/plugins/platforms/xcb/qxcbnativeinterface.cpp +++ b/src/plugins/platforms/xcb/qxcbnativeinterface.cpp @@ -362,27 +362,27 @@ void *QXcbNativeInterface::getTimestamp(const QXcbScreen *screen) void *QXcbNativeInterface::startupId() { QXcbIntegration* integration = QXcbIntegration::instance(); - QXcbConnection *defaultConnection = integration->defaultConnection(); - if (defaultConnection) - return reinterpret_cast<void *>(const_cast<char *>(defaultConnection->startupId().constData())); + QXcbConnection *connection = integration->connection(); + if (connection) + return reinterpret_cast<void *>(const_cast<char *>(connection->startupId().constData())); return nullptr; } void *QXcbNativeInterface::x11Screen() { QXcbIntegration *integration = QXcbIntegration::instance(); - QXcbConnection *defaultConnection = integration->defaultConnection(); - if (defaultConnection) - return reinterpret_cast<void *>(defaultConnection->primaryScreenNumber()); + QXcbConnection *connection = integration->connection(); + if (connection) + return reinterpret_cast<void *>(connection->primaryScreenNumber()); return nullptr; } void *QXcbNativeInterface::rootWindow() { QXcbIntegration *integration = QXcbIntegration::instance(); - QXcbConnection *defaultConnection = integration->defaultConnection(); - if (defaultConnection) - return reinterpret_cast<void *>(defaultConnection->rootWindow()); + QXcbConnection *connection = integration->connection(); + if (connection) + return reinterpret_cast<void *>(connection->rootWindow()); return nullptr; } @@ -390,9 +390,9 @@ void *QXcbNativeInterface::display() { #if QT_CONFIG(xcb_xlib) QXcbIntegration *integration = QXcbIntegration::instance(); - QXcbConnection *defaultConnection = integration->defaultConnection(); - if (defaultConnection) - return defaultConnection->xlib_display(); + QXcbConnection *connection = integration->connection(); + if (connection) + return connection->xlib_display(); #endif return nullptr; } @@ -400,17 +400,17 @@ void *QXcbNativeInterface::display() void *QXcbNativeInterface::connection() { QXcbIntegration *integration = QXcbIntegration::instance(); - return integration->defaultConnection()->xcb_connection(); + return integration->connection()->xcb_connection(); } void *QXcbNativeInterface::atspiBus() { QXcbIntegration *integration = static_cast<QXcbIntegration *>(QGuiApplicationPrivate::platformIntegration()); - QXcbConnection *defaultConnection = integration->defaultConnection(); - if (defaultConnection) { - auto atspiBusAtom = defaultConnection->atom(QXcbAtom::AT_SPI_BUS); - auto reply = Q_XCB_REPLY(xcb_get_property, defaultConnection->xcb_connection(), - false, defaultConnection->rootWindow(), + QXcbConnection *connection = integration->connection(); + if (connection) { + auto atspiBusAtom = connection->atom(QXcbAtom::AT_SPI_BUS); + auto reply = Q_XCB_REPLY(xcb_get_property, connection->xcb_connection(), + false, connection->rootWindow(), atspiBusAtom, XCB_ATOM_STRING, 0, 128); if (!reply) return nullptr; @@ -440,29 +440,29 @@ void QXcbNativeInterface::setAppUserTime(QScreen* screen, xcb_timestamp_t time) qint32 QXcbNativeInterface::generatePeekerId() { QXcbIntegration *integration = QXcbIntegration::instance(); - return integration->defaultConnection()->eventQueue()->generatePeekerId(); + return integration->connection()->eventQueue()->generatePeekerId(); } bool QXcbNativeInterface::removePeekerId(qint32 peekerId) { QXcbIntegration *integration = QXcbIntegration::instance(); - return integration->defaultConnection()->eventQueue()->removePeekerId(peekerId); + return integration->connection()->eventQueue()->removePeekerId(peekerId); } bool QXcbNativeInterface::peekEventQueue(QXcbEventQueue::PeekerCallback peeker, void *peekerData, QXcbEventQueue::PeekOptions option, qint32 peekerId) { QXcbIntegration *integration = QXcbIntegration::instance(); - return integration->defaultConnection()->eventQueue()->peekEventQueue(peeker, peekerData, option, peekerId); + return integration->connection()->eventQueue()->peekEventQueue(peeker, peekerData, option, peekerId); } void QXcbNativeInterface::setStartupId(const char *data) { QByteArray startupId(data); QXcbIntegration *integration = QXcbIntegration::instance(); - QXcbConnection *defaultConnection = integration->defaultConnection(); - if (defaultConnection) - defaultConnection->setStartupId(startupId); + QXcbConnection *connection = integration->connection(); + if (connection) + connection->setStartupId(startupId); } QXcbScreen *QXcbNativeInterface::qPlatformScreenForWindow(QWindow *window) @@ -671,7 +671,7 @@ QString QXcbNativeInterface::dumpConnectionNativeWindows(const QXcbConnection *c QString QXcbNativeInterface::dumpNativeWindows(WId root) const { - return dumpConnectionNativeWindows(QXcbIntegration::instance()->defaultConnection(), root); + return dumpConnectionNativeWindows(QXcbIntegration::instance()->connection(), root); } QT_END_NAMESPACE |