Changeset View
Changeset View
Standalone View
Standalone View
plugins/qpa/integration.cpp
Show First 20 Lines • Show All 91 Lines • ▼ Show 20 Line(s) | 91 | { | |||
---|---|---|---|---|---|
92 | connect(kwinApp(), &Application::screensCreated, this, | 92 | connect(kwinApp(), &Application::screensCreated, this, | ||
93 | [this] { | 93 | [this] { | ||
94 | connect(screens(), &Screens::changed, this, &Integration::initScreens); | 94 | connect(screens(), &Screens::changed, this, &Integration::initScreens); | ||
95 | initScreens(); | 95 | initScreens(); | ||
96 | } | 96 | } | ||
97 | ); | 97 | ); | ||
98 | QPlatformIntegration::initialize(); | 98 | QPlatformIntegration::initialize(); | ||
99 | auto dummyScreen = new Screen(-1); | 99 | auto dummyScreen = new Screen(-1); | ||
100 | #if (QT_VERSION >= QT_VERSION_CHECK(5, 13, 0)) | ||||
101 | QWindowSystemInterface::handleScreenAdded(dummyScreen); | ||||
102 | #else | ||||
100 | screenAdded(dummyScreen); | 103 | screenAdded(dummyScreen); | ||
104 | #endif | ||||
101 | m_screens << dummyScreen; | 105 | m_screens << dummyScreen; | ||
102 | m_inputContext.reset(QPlatformInputContextFactory::create(QStringLiteral("qtvirtualkeyboard"))); | 106 | m_inputContext.reset(QPlatformInputContextFactory::create(QStringLiteral("qtvirtualkeyboard"))); | ||
103 | qunsetenv("QT_IM_MODULE"); | 107 | qunsetenv("QT_IM_MODULE"); | ||
104 | if (!m_inputContext.isNull()) { | 108 | if (!m_inputContext.isNull()) { | ||
105 | connect(qApp, &QGuiApplication::focusObjectChanged, this, | 109 | connect(qApp, &QGuiApplication::focusObjectChanged, this, | ||
106 | [this] { | 110 | [this] { | ||
107 | if (VirtualKeyboard::self() && qApp->focusObject() != VirtualKeyboard::self()) { | 111 | if (VirtualKeyboard::self() && qApp->focusObject() != VirtualKeyboard::self()) { | ||
108 | m_inputContext->setFocusObject(VirtualKeyboard::self()); | 112 | m_inputContext->setFocusObject(VirtualKeyboard::self()); | ||
▲ Show 20 Lines • Show All 86 Lines • ▼ Show 20 Line(s) | |||||
195 | } | 199 | } | ||
196 | 200 | | |||
197 | void Integration::initScreens() | 201 | void Integration::initScreens() | ||
198 | { | 202 | { | ||
199 | QVector<Screen*> newScreens; | 203 | QVector<Screen*> newScreens; | ||
200 | newScreens.reserve(qMax(screens()->count(), 1)); | 204 | newScreens.reserve(qMax(screens()->count(), 1)); | ||
201 | for (int i = 0; i < screens()->count(); i++) { | 205 | for (int i = 0; i < screens()->count(); i++) { | ||
202 | auto screen = new Screen(i); | 206 | auto screen = new Screen(i); | ||
207 | #if (QT_VERSION >= QT_VERSION_CHECK(5, 13, 0)) | ||||
208 | QWindowSystemInterface::handleScreenAdded(screen); | ||||
209 | #else | ||||
203 | screenAdded(screen); | 210 | screenAdded(screen); | ||
211 | #endif | ||||
204 | newScreens << screen; | 212 | newScreens << screen; | ||
205 | } | 213 | } | ||
206 | if (newScreens.isEmpty()) { | 214 | if (newScreens.isEmpty()) { | ||
207 | auto dummyScreen = new Screen(-1); | 215 | auto dummyScreen = new Screen(-1); | ||
216 | #if (QT_VERSION >= QT_VERSION_CHECK(5, 13, 0)) | ||||
217 | QWindowSystemInterface::handleScreenAdded(dummyScreen); | ||||
218 | #else | ||||
208 | screenAdded(dummyScreen); | 219 | screenAdded(dummyScreen); | ||
220 | #endif | ||||
209 | newScreens << dummyScreen; | 221 | newScreens << dummyScreen; | ||
210 | } | 222 | } | ||
211 | while (!m_screens.isEmpty()) { | 223 | while (!m_screens.isEmpty()) { | ||
224 | #if (QT_VERSION >= QT_VERSION_CHECK(5, 13, 0)) | ||||
225 | QWindowSystemInterface::handleScreenRemoved(m_screens.takeLast()); | ||||
226 | #else | ||||
212 | destroyScreen(m_screens.takeLast()); | 227 | destroyScreen(m_screens.takeLast()); | ||
228 | #endif | ||||
213 | } | 229 | } | ||
214 | m_screens = newScreens; | 230 | m_screens = newScreens; | ||
215 | } | 231 | } | ||
216 | 232 | | |||
217 | KWayland::Client::Compositor *Integration::compositor() const | 233 | KWayland::Client::Compositor *Integration::compositor() const | ||
218 | { | 234 | { | ||
219 | if (!m_compositor) { | 235 | if (!m_compositor) { | ||
220 | using namespace KWayland::Client; | 236 | using namespace KWayland::Client; | ||
Show All 34 Lines |