diff options
author | Gatis Paeglis <gatis.paeglis@qt.io> | 2018-10-14 20:26:38 +0200 |
---|---|---|
committer | Gatis Paeglis <gatis.paeglis@qt.io> | 2018-10-18 17:06:48 +0000 |
commit | 96218681f22588b93999626684ec73717207bb39 (patch) | |
tree | e23bb07f2a028ad1387c0f83d3a3ba08291feacf /src/plugins/platforms/xcb/qxcbmain.cpp | |
parent | 5ac2b9ef5904d8130f6de1ad758b5140784045d4 (diff) |
Restore "Do not create instance of QPlatformIntegration for invalid displays"
This patch is amended version of 67cc8fea106c35c7ca75bf476667d07b3bbf3257,
which was temporary reverted to simplify integration of conflicting
patches. What was amended:
- Dropped the factory interface. It is sufficiently clean to check for
QXcbConnection::isConnected().
Task-number: QTBUG-68859
Change-Id: I810897b3ea20e356fc4d62e6f01231fd287962dc
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'src/plugins/platforms/xcb/qxcbmain.cpp')
-rw-r--r-- | src/plugins/platforms/xcb/qxcbmain.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/plugins/platforms/xcb/qxcbmain.cpp b/src/plugins/platforms/xcb/qxcbmain.cpp index f8cb9a9269..c1e37f3704 100644 --- a/src/plugins/platforms/xcb/qxcbmain.cpp +++ b/src/plugins/platforms/xcb/qxcbmain.cpp @@ -52,10 +52,16 @@ public: QPlatformIntegration* QXcbIntegrationPlugin::create(const QString& system, const QStringList& parameters, int &argc, char **argv) { - if (!system.compare(QLatin1String("xcb"), Qt::CaseInsensitive)) - return new QXcbIntegration(parameters, argc, argv); + if (!system.compare(QLatin1String("xcb"), Qt::CaseInsensitive)) { + auto xcbIntegration = new QXcbIntegration(parameters, argc, argv); + if (!xcbIntegration->hasDefaultConnection()) { + delete xcbIntegration; + return nullptr; + } + return xcbIntegration; + } - return 0; + return nullptr; } QT_END_NAMESPACE |