Changeset View
Changeset View
Standalone View
Standalone View
autotests/integration/maximize_test.cpp
Show All 22 Lines | |||||
23 | #include "decorations/settings.h" | 23 | #include "decorations/settings.h" | ||
24 | #include "platform.h" | 24 | #include "platform.h" | ||
25 | #include "shell_client.h" | 25 | #include "shell_client.h" | ||
26 | #include "screens.h" | 26 | #include "screens.h" | ||
27 | #include "wayland_server.h" | 27 | #include "wayland_server.h" | ||
28 | #include "workspace.h" | 28 | #include "workspace.h" | ||
29 | 29 | | |||
30 | #include <KWayland/Client/compositor.h> | 30 | #include <KWayland/Client/compositor.h> | ||
31 | #include <KWayland/Client/shell.h> | | |||
32 | #include <KWayland/Client/shm_pool.h> | 31 | #include <KWayland/Client/shm_pool.h> | ||
33 | #include <KWayland/Client/surface.h> | 32 | #include <KWayland/Client/surface.h> | ||
34 | #include <KWayland/Client/server_decoration.h> | 33 | #include <KWayland/Client/server_decoration.h> | ||
35 | #include <KWayland/Client/xdgdecoration.h> | 34 | #include <KWayland/Client/xdgdecoration.h> | ||
36 | #include <KWayland/Client/xdgshell.h> | | |||
37 | #include <KWayland/Client/plasmashell.h> | 35 | #include <KWayland/Client/plasmashell.h> | ||
38 | 36 | | |||
39 | #include <KWayland/Server/shell_interface.h> | | |||
40 | #include <KWayland/Server/xdgdecoration_interface.h> | 37 | #include <KWayland/Server/xdgdecoration_interface.h> | ||
41 | 38 | | |||
42 | #include <KDecoration2/DecoratedClient> | 39 | #include <KDecoration2/DecoratedClient> | ||
43 | #include <KDecoration2/Decoration> | 40 | #include <KDecoration2/Decoration> | ||
44 | #include <KDecoration2/DecorationSettings> | 41 | #include <KDecoration2/DecorationSettings> | ||
45 | 42 | | |||
46 | using namespace KWin; | 43 | using namespace KWin; | ||
47 | using namespace KWayland::Client; | 44 | using namespace KWayland::Client; | ||
▲ Show 20 Lines • Show All 54 Lines • ▼ Show 20 Line(s) | 93 | { | |||
102 | group.sync(); | 99 | group.sync(); | ||
103 | Workspace::self()->slotReconfigure(); | 100 | Workspace::self()->slotReconfigure(); | ||
104 | QCOMPARE(options->borderlessMaximizedWindows(), false); | 101 | QCOMPARE(options->borderlessMaximizedWindows(), false); | ||
105 | } | 102 | } | ||
106 | 103 | | |||
107 | void TestMaximized::testMaximizedPassedToDeco() | 104 | void TestMaximized::testMaximizedPassedToDeco() | ||
108 | { | 105 | { | ||
109 | // this test verifies that when a ShellClient gets maximized the Decoration receives the signal | 106 | // this test verifies that when a ShellClient gets maximized the Decoration receives the signal | ||
107 | | ||||
108 | // Create the test client. | ||||
110 | QScopedPointer<Surface> surface(Test::createSurface()); | 109 | QScopedPointer<Surface> surface(Test::createSurface()); | ||
111 | QScopedPointer<ShellSurface> shellSurface(Test::createShellSurface(surface.data())); | 110 | QScopedPointer<XdgShellSurface> shellSurface(Test::createXdgShellStableSurface(surface.data())); | ||
112 | QScopedPointer<ServerSideDecoration> ssd(Test::waylandServerSideDecoration()->create(surface.data())); | 111 | QScopedPointer<ServerSideDecoration> ssd(Test::waylandServerSideDecoration()->create(surface.data())); | ||
113 | 112 | | |||
114 | auto client = Test::renderAndWaitForShown(surface.data(), QSize(100, 50), Qt::blue); | 113 | auto client = Test::renderAndWaitForShown(surface.data(), QSize(100, 50), Qt::blue); | ||
115 | | ||||
116 | QSignalSpy sizeChangedSpy(shellSurface.data(), &ShellSurface::sizeChanged); | | |||
117 | QVERIFY(sizeChangedSpy.isValid()); | | |||
118 | | ||||
119 | QVERIFY(client); | 114 | QVERIFY(client); | ||
120 | QVERIFY(client->isDecorated()); | 115 | QVERIFY(client->isDecorated()); | ||
116 | | ||||
121 | auto decoration = client->decoration(); | 117 | auto decoration = client->decoration(); | ||
122 | QVERIFY(decoration); | 118 | QVERIFY(decoration); | ||
123 | QCOMPARE(client->maximizeMode(), MaximizeMode::MaximizeRestore); | 119 | QCOMPARE(client->maximizeMode(), MaximizeMode::MaximizeRestore); | ||
124 | 120 | | |||
121 | // Wait for configure event that signals the client is active now. | ||||
122 | QSignalSpy configureRequestedSpy(shellSurface.data(), &XdgShellSurface::configureRequested); | ||||
123 | QVERIFY(configureRequestedSpy.isValid()); | ||||
124 | QVERIFY(configureRequestedSpy.wait()); | ||||
125 | QCOMPARE(configureRequestedSpy.count(), 1); | ||||
126 | | ||||
125 | // When there are no borders, there is no change to them when maximizing. | 127 | // When there are no borders, there is no change to them when maximizing. | ||
126 | // TODO: we should test both cases with fixed fake decoration for autotests. | 128 | // TODO: we should test both cases with fixed fake decoration for autotests. | ||
127 | const bool hasBorders = Decoration::DecorationBridge::self()->settings()->borderSize() != KDecoration2::BorderSize::None; | 129 | const bool hasBorders = Decoration::DecorationBridge::self()->settings()->borderSize() != KDecoration2::BorderSize::None; | ||
128 | 130 | | |||
129 | // now maximize | 131 | // now maximize | ||
130 | QVERIFY(sizeChangedSpy.isEmpty()); | | |||
131 | QSignalSpy bordersChangedSpy(decoration, &KDecoration2::Decoration::bordersChanged); | 132 | QSignalSpy bordersChangedSpy(decoration, &KDecoration2::Decoration::bordersChanged); | ||
132 | QVERIFY(bordersChangedSpy.isValid()); | 133 | QVERIFY(bordersChangedSpy.isValid()); | ||
133 | QSignalSpy maximizedChangedSpy(decoration->client().data(), &KDecoration2::DecoratedClient::maximizedChanged); | 134 | QSignalSpy maximizedChangedSpy(decoration->client().data(), &KDecoration2::DecoratedClient::maximizedChanged); | ||
134 | QVERIFY(maximizedChangedSpy.isValid()); | 135 | QVERIFY(maximizedChangedSpy.isValid()); | ||
135 | QSignalSpy geometryShapeChangedSpy(client, &AbstractClient::geometryShapeChanged); | 136 | QSignalSpy geometryShapeChangedSpy(client, &AbstractClient::geometryShapeChanged); | ||
136 | QVERIFY(geometryShapeChangedSpy.isValid()); | 137 | QVERIFY(geometryShapeChangedSpy.isValid()); | ||
137 | 138 | | |||
138 | workspace()->slotWindowMaximize(); | 139 | workspace()->slotWindowMaximize(); | ||
139 | QVERIFY(sizeChangedSpy.wait()); | 140 | QVERIFY(configureRequestedSpy.wait()); | ||
140 | QCOMPARE(sizeChangedSpy.first().first().toSize(), QSize(1280, 1024 - decoration->borderTop())); | 141 | QCOMPARE(configureRequestedSpy.count(), 2); | ||
141 | Test::render(surface.data(), sizeChangedSpy.first().first().toSize(), Qt::red); | 142 | QCOMPARE(configureRequestedSpy.last().at(0).toSize(), QSize(1280, 1024 - decoration->borderTop())); | ||
143 | shellSurface->ackConfigure(configureRequestedSpy.last().at(2).value<quint32>()); | ||||
144 | Test::render(surface.data(), configureRequestedSpy.last().at(0).toSize(), Qt::red); | ||||
142 | QVERIFY(geometryShapeChangedSpy.wait()); | 145 | QVERIFY(geometryShapeChangedSpy.wait()); | ||
143 | 146 | | |||
144 | // If no borders, there is only the initial geometry shape change, but none through border resizing. | 147 | // If no borders, there is only the initial geometry shape change, but none through border resizing. | ||
145 | QCOMPARE(geometryShapeChangedSpy.count(), hasBorders ? 2 : 1); | 148 | QCOMPARE(geometryShapeChangedSpy.count(), hasBorders ? 2 : 1); | ||
146 | | ||||
147 | QCOMPARE(client->maximizeMode(), MaximizeMode::MaximizeFull); | 149 | QCOMPARE(client->maximizeMode(), MaximizeMode::MaximizeFull); | ||
148 | QCOMPARE(maximizedChangedSpy.count(), 1); | 150 | QCOMPARE(maximizedChangedSpy.count(), 1); | ||
149 | QCOMPARE(maximizedChangedSpy.last().first().toBool(), true); | 151 | QCOMPARE(maximizedChangedSpy.last().first().toBool(), true); | ||
150 | QCOMPARE(bordersChangedSpy.count(), hasBorders ? 1 : 0); | 152 | QCOMPARE(bordersChangedSpy.count(), hasBorders ? 1 : 0); | ||
151 | QCOMPARE(decoration->borderLeft(), 0); | 153 | QCOMPARE(decoration->borderLeft(), 0); | ||
152 | QCOMPARE(decoration->borderBottom(), 0); | 154 | QCOMPARE(decoration->borderBottom(), 0); | ||
153 | QCOMPARE(decoration->borderRight(), 0); | 155 | QCOMPARE(decoration->borderRight(), 0); | ||
154 | QVERIFY(decoration->borderTop() != 0); | 156 | QVERIFY(decoration->borderTop() != 0); | ||
155 | 157 | | |||
156 | // now unmaximize again | 158 | // now unmaximize again | ||
157 | workspace()->slotWindowMaximize(); | 159 | workspace()->slotWindowMaximize(); | ||
160 | QVERIFY(configureRequestedSpy.wait()); | ||||
161 | QCOMPARE(configureRequestedSpy.count(), 3); | ||||
162 | QCOMPARE(configureRequestedSpy.last().at(0).toSize(), QSize(100, 50)); | ||||
158 | 163 | | |||
164 | shellSurface->ackConfigure(configureRequestedSpy.last().at(2).value<quint32>()); | ||||
159 | Test::render(surface.data(), QSize(100, 50), Qt::red); | 165 | Test::render(surface.data(), QSize(100, 50), Qt::red); | ||
160 | QVERIFY(geometryShapeChangedSpy.wait()); | 166 | QVERIFY(geometryShapeChangedSpy.wait()); | ||
161 | QCOMPARE(geometryShapeChangedSpy.count(), hasBorders ? 4 : 2); | 167 | QCOMPARE(geometryShapeChangedSpy.count(), hasBorders ? 4 : 2); | ||
162 | QCOMPARE(client->maximizeMode(), MaximizeMode::MaximizeRestore); | 168 | QCOMPARE(client->maximizeMode(), MaximizeMode::MaximizeRestore); | ||
163 | QCOMPARE(maximizedChangedSpy.count(), 2); | 169 | QCOMPARE(maximizedChangedSpy.count(), 2); | ||
164 | QCOMPARE(maximizedChangedSpy.last().first().toBool(), false); | 170 | QCOMPARE(maximizedChangedSpy.last().first().toBool(), false); | ||
165 | QCOMPARE(bordersChangedSpy.count(), hasBorders ? 2 : 0); | 171 | QCOMPARE(bordersChangedSpy.count(), hasBorders ? 2 : 0); | ||
166 | QVERIFY(decoration->borderTop() != 0); | 172 | QVERIFY(decoration->borderTop() != 0); | ||
167 | QVERIFY(decoration->borderLeft() != !hasBorders); | 173 | QVERIFY(decoration->borderLeft() != !hasBorders); | ||
168 | QVERIFY(decoration->borderRight() != !hasBorders); | 174 | QVERIFY(decoration->borderRight() != !hasBorders); | ||
169 | QVERIFY(decoration->borderBottom() != !hasBorders); | 175 | QVERIFY(decoration->borderBottom() != !hasBorders); | ||
170 | 176 | | |||
171 | QCOMPARE(sizeChangedSpy.count(), 2); | 177 | // Destroy the test client. | ||
172 | QCOMPARE(sizeChangedSpy.last().first().toSize(), QSize(100, 50)); | 178 | shellSurface.reset(); | ||
179 | QVERIFY(Test::waitForWindowDestroyed(client)); | ||||
173 | } | 180 | } | ||
174 | 181 | | |||
175 | void TestMaximized::testInitiallyMaximized() | 182 | void TestMaximized::testInitiallyMaximized() | ||
176 | { | 183 | { | ||
177 | // this test verifies that a window created as maximized, will be maximized | 184 | // This test verifies that a window created as maximized, will be maximized. | ||
178 | QScopedPointer<Surface> surface(Test::createSurface()); | | |||
179 | QScopedPointer<ShellSurface> shellSurface(Test::createShellSurface(surface.data())); | | |||
180 | | ||||
181 | QSignalSpy sizeChangedSpy(shellSurface.data(), &ShellSurface::sizeChanged); | | |||
182 | QVERIFY(sizeChangedSpy.isValid()); | | |||
183 | 185 | | |||
184 | shellSurface->setMaximized(); | 186 | // Create the test client. | ||
185 | QVERIFY(sizeChangedSpy.wait()); | 187 | QScopedPointer<Surface> surface(Test::createSurface()); | ||
186 | QCOMPARE(shellSurface->size(), QSize(1280, 1024)); | 188 | QScopedPointer<XdgShellSurface> shellSurface( | ||
189 | Test::createXdgShellStableSurface(surface.data(), surface.data(), Test::CreationSetup::CreateOnly)); | ||||
190 | QSignalSpy configureRequestedSpy(shellSurface.data(), &XdgShellSurface::configureRequested); | ||||
191 | QVERIFY(configureRequestedSpy.isValid()); | ||||
192 | shellSurface->setMaximized(true); | ||||
193 | surface->commit(Surface::CommitFlag::None); | ||||
187 | 194 | | |||
188 | // now let's render in an incorrect size | 195 | // Wait for the initial configure event. | ||
189 | auto client = Test::renderAndWaitForShown(surface.data(), QSize(100, 50), Qt::blue); | 196 | XdgShellSurface::States states; | ||
197 | QVERIFY(configureRequestedSpy.wait()); | ||||
198 | QCOMPARE(configureRequestedSpy.count(), 1); | ||||
199 | states = configureRequestedSpy.last().at(1).value<XdgShellSurface::States>(); | ||||
200 | QVERIFY(!states.testFlag(XdgShellSurface::State::Activated)); | ||||
201 | QVERIFY(states.testFlag(XdgShellSurface::State::Maximized)); | ||||
202 | | ||||
203 | // Now let's render in an incorrect size. | ||||
204 | shellSurface->ackConfigure(configureRequestedSpy.last().at(2).value<quint32>()); | ||||
205 | ShellClient *client = Test::renderAndWaitForShown(surface.data(), QSize(100, 50), Qt::blue); | ||||
190 | QVERIFY(client); | 206 | QVERIFY(client); | ||
191 | QCOMPARE(client->geometry(), QRect(0, 0, 100, 50)); | 207 | QCOMPARE(client->geometry(), QRect(0, 0, 100, 50)); | ||
192 | QEXPECT_FAIL("", "Should go out of maximzied", Continue); | 208 | QEXPECT_FAIL("", "Should go out of maximzied", Continue); | ||
193 | QCOMPARE(client->maximizeMode(), MaximizeMode::MaximizeRestore); | 209 | QCOMPARE(client->maximizeMode(), MaximizeMode::MaximizeRestore); | ||
210 | | ||||
211 | // Destroy the client. | ||||
212 | shellSurface.reset(); | ||||
213 | QVERIFY(Test::waitForWindowDestroyed(client)); | ||||
194 | } | 214 | } | ||
195 | 215 | | |||
196 | void TestMaximized::testBorderlessMaximizedWindow() | 216 | void TestMaximized::testBorderlessMaximizedWindow() | ||
197 | { | 217 | { | ||
198 | // test case verifies that borderless maximized window works | 218 | // This test verifies that a maximized client looses it's server-side | ||
199 | // see BUG 370982 | 219 | // decoration when the borderless maximized option is on. | ||
200 | 220 | | |||
201 | // adjust config | 221 | // Enable the borderless maximized windows option. | ||
202 | auto group = kwinApp()->config()->group("Windows"); | 222 | auto group = kwinApp()->config()->group("Windows"); | ||
203 | group.writeEntry("BorderlessMaximizedWindows", true); | 223 | group.writeEntry("BorderlessMaximizedWindows", true); | ||
204 | group.sync(); | 224 | group.sync(); | ||
205 | Workspace::self()->slotReconfigure(); | 225 | Workspace::self()->slotReconfigure(); | ||
206 | QCOMPARE(options->borderlessMaximizedWindows(), true); | 226 | QCOMPARE(options->borderlessMaximizedWindows(), true); | ||
227 | | ||||
228 | // Create the test client. | ||||
207 | QScopedPointer<Surface> surface(Test::createSurface()); | 229 | QScopedPointer<Surface> surface(Test::createSurface()); | ||
208 | QScopedPointer<ShellSurface> shellSurface(Test::createShellSurface(surface.data())); | 230 | QScopedPointer<XdgShellSurface> shellSurface( | ||
209 | QScopedPointer<ServerSideDecoration> ssd(Test::waylandServerSideDecoration()->create(surface.data())); | 231 | Test::createXdgShellStableSurface(surface.data(), surface.data(), Test::CreationSetup::CreateOnly)); | ||
232 | QScopedPointer<XdgDecoration> decoration( | ||||
233 | Test::xdgDecorationManager()->getToplevelDecoration(shellSurface.data())); | ||||
234 | QSignalSpy decorationConfiguredSpy(decoration.data(), &XdgDecoration::modeChanged); | ||||
235 | QVERIFY(decorationConfiguredSpy.isValid()); | ||||
236 | QSignalSpy configureRequestedSpy(shellSurface.data(), &XdgShellSurface::configureRequested); | ||||
237 | QVERIFY(configureRequestedSpy.isValid()); | ||||
238 | decoration->setMode(XdgDecoration::Mode::ServerSide); | ||||
239 | surface->commit(Surface::CommitFlag::None); | ||||
210 | 240 | | |||
211 | auto client = Test::renderAndWaitForShown(surface.data(), QSize(100, 50), Qt::blue); | 241 | // Wait for the initial configure event. | ||
212 | QVERIFY(client->isDecorated()); | 242 | XdgShellSurface::States states; | ||
213 | const QRect origGeo = client->geometry(); | 243 | QVERIFY(configureRequestedSpy.wait()); | ||
244 | QCOMPARE(configureRequestedSpy.count(), 1); | ||||
245 | QCOMPARE(configureRequestedSpy.last().at(0).toSize(), QSize(0, 0)); | ||||
246 | states = configureRequestedSpy.last().at(1).value<XdgShellSurface::States>(); | ||||
247 | QVERIFY(!states.testFlag(XdgShellSurface::State::Activated)); | ||||
248 | QVERIFY(!states.testFlag(XdgShellSurface::State::Maximized)); | ||||
249 | | ||||
250 | // Map the client. | ||||
251 | shellSurface->ackConfigure(configureRequestedSpy.last().at(2).value<quint32>()); | ||||
252 | ShellClient *client = Test::renderAndWaitForShown(surface.data(), QSize(100, 50), Qt::blue); | ||||
253 | QVERIFY(client); | ||||
254 | QVERIFY(client->isActive()); | ||||
255 | QCOMPARE(client->maximizeMode(), MaximizeMode::MaximizeRestore); | ||||
256 | QCOMPARE(client->requestedMaximizeMode(), MaximizeMode::MaximizeRestore); | ||||
257 | QCOMPARE(client->isDecorated(), true); | ||||
214 | 258 | | |||
215 | QSignalSpy sizeChangedSpy(shellSurface.data(), &ShellSurface::sizeChanged); | 259 | // We should receive a configure event when the client becomes active. | ||
216 | QVERIFY(sizeChangedSpy.isValid()); | 260 | QVERIFY(configureRequestedSpy.wait()); | ||
261 | QCOMPARE(configureRequestedSpy.count(), 2); | ||||
262 | states = configureRequestedSpy.last().at(1).value<XdgShellSurface::States>(); | ||||
263 | QVERIFY(states.testFlag(XdgShellSurface::State::Activated)); | ||||
264 | QVERIFY(!states.testFlag(XdgShellSurface::State::Maximized)); | ||||
217 | 265 | | |||
218 | // go to maximized | 266 | // Maximize the client. | ||
219 | shellSurface->setMaximized(); | 267 | const QRect maximizeRestoreGeometry = client->geometry(); | ||
220 | QVERIFY(sizeChangedSpy.wait()); | 268 | workspace()->slotWindowMaximize(); | ||
221 | QCOMPARE(shellSurface->size(), QSize(1280, 1024)); | 269 | QVERIFY(configureRequestedSpy.wait()); | ||
222 | QSignalSpy geometryChangedSpy(client, &ShellClient::geometryChanged); | 270 | QCOMPARE(configureRequestedSpy.count(), 3); | ||
271 | QCOMPARE(configureRequestedSpy.last().at(0).toSize(), QSize(1280, 1024)); | ||||
272 | states = configureRequestedSpy.last().at(1).value<XdgShellSurface::States>(); | ||||
273 | QVERIFY(states.testFlag(XdgShellSurface::State::Activated)); | ||||
274 | QVERIFY(states.testFlag(XdgShellSurface::State::Maximized)); | ||||
275 | | ||||
276 | QSignalSpy geometryChangedSpy(client, &AbstractClient::geometryChanged); | ||||
223 | QVERIFY(geometryChangedSpy.isValid()); | 277 | QVERIFY(geometryChangedSpy.isValid()); | ||
224 | Test::render(surface.data(), shellSurface->size(), Qt::red); | 278 | shellSurface->ackConfigure(configureRequestedSpy.last().at(2).value<quint32>()); | ||
279 | Test::render(surface.data(), QSize(1280, 1024), Qt::blue); | ||||
225 | QVERIFY(geometryChangedSpy.wait()); | 280 | QVERIFY(geometryChangedSpy.wait()); | ||
226 | QCOMPARE(client->maximizeMode(), MaximizeMode::MaximizeFull); | | |||
227 | QCOMPARE(client->geometry(), QRect(0, 0, 1280, 1024)); | 281 | QCOMPARE(client->geometry(), QRect(0, 0, 1280, 1024)); | ||
228 | QCOMPARE(client->geometryRestore(), origGeo); | 282 | QCOMPARE(client->maximizeMode(), MaximizeMode::MaximizeFull); | ||
283 | QCOMPARE(client->requestedMaximizeMode(), MaximizeMode::MaximizeFull); | ||||
229 | QCOMPARE(client->isDecorated(), false); | 284 | QCOMPARE(client->isDecorated(), false); | ||
230 | 285 | | |||
231 | // go back to normal | 286 | // Restore the client. | ||
232 | shellSurface->setToplevel(); | 287 | workspace()->slotWindowMaximize(); | ||
233 | QVERIFY(sizeChangedSpy.wait()); | 288 | QVERIFY(configureRequestedSpy.wait()); | ||
234 | QCOMPARE(shellSurface->size(), QSize(100, 50)); | 289 | QCOMPARE(configureRequestedSpy.count(), 4); | ||
290 | QCOMPARE(configureRequestedSpy.last().at(0).toSize(), QSize(100, 50)); | ||||
291 | states = configureRequestedSpy.last().at(1).value<XdgShellSurface::States>(); | ||||
292 | QVERIFY(states.testFlag(XdgShellSurface::State::Activated)); | ||||
293 | QVERIFY(!states.testFlag(XdgShellSurface::State::Maximized)); | ||||
294 | | ||||
295 | shellSurface->ackConfigure(configureRequestedSpy.last().at(2).value<quint32>()); | ||||
235 | Test::render(surface.data(), QSize(100, 50), Qt::red); | 296 | Test::render(surface.data(), QSize(100, 50), Qt::red); | ||
236 | QVERIFY(geometryChangedSpy.wait()); | 297 | QVERIFY(geometryChangedSpy.wait()); | ||
298 | QCOMPARE(client->geometry(), maximizeRestoreGeometry); | ||||
237 | QCOMPARE(client->maximizeMode(), MaximizeMode::MaximizeRestore); | 299 | QCOMPARE(client->maximizeMode(), MaximizeMode::MaximizeRestore); | ||
238 | QCOMPARE(client->geometry(), origGeo); | 300 | QCOMPARE(client->requestedMaximizeMode(), MaximizeMode::MaximizeRestore); | ||
239 | QCOMPARE(client->geometryRestore(), origGeo); | | |||
240 | QCOMPARE(client->isDecorated(), true); | 301 | QCOMPARE(client->isDecorated(), true); | ||
302 | | ||||
303 | // Destroy the client. | ||||
304 | shellSurface.reset(); | ||||
305 | QVERIFY(Test::waitForWindowDestroyed(client)); | ||||
241 | } | 306 | } | ||
242 | 307 | | |||
243 | void TestMaximized::testBorderlessMaximizedWindowNoClientSideDecoration() | 308 | void TestMaximized::testBorderlessMaximizedWindowNoClientSideDecoration() | ||
244 | { | 309 | { | ||
245 | // test case verifies that borderless maximized windows doesn't cause | 310 | // test case verifies that borderless maximized windows doesn't cause | ||
246 | // clients to render client-side decorations instead (BUG 405385) | 311 | // clients to render client-side decorations instead (BUG 405385) | ||
247 | 312 | | |||
248 | // adjust config | 313 | // adjust config | ||
▲ Show 20 Lines • Show All 63 Lines • Show Last 20 Lines |