[server] Send text input leave if focused surface gets unbound

Summary: As 9266a94400 just for text input.

Test Plan: Adjusted test passes, fails without adjustment

Reviewers: #plasma, #frameworks

Subscribers: plasma-devel

Tags: #plasma_on_wayland, #frameworks

Differential Revision: https://phabricator.kde.org/D6786
This commit is contained in:
Martin Flöser 2017-07-19 20:16:57 +02:00
parent 1b989a0464
commit dd873cb980
2 changed files with 3 additions and 1 deletions

View file

@ -321,6 +321,8 @@ void TextInputTest::testEnterLeave()
QSignalSpy unboundSpy(serverSurface, &QObject::destroyed); QSignalSpy unboundSpy(serverSurface, &QObject::destroyed);
surface.reset(); surface.reset();
QVERIFY(unboundSpy.wait()); QVERIFY(unboundSpy.wait());
QVERIFY(leftSpy.wait());
QVERIFY(!textInput->enteredSurface());
} }
void TextInputTest::testShowHidePanel_data() void TextInputTest::testShowHidePanel_data()

View file

@ -1437,7 +1437,7 @@ void SeatInterface::setFocusedTextInputSurface(SurfaceInterface *surface)
} }
d->textInput.focus.textInput = t; d->textInput.focus.textInput = t;
if (d->textInput.focus.surface) { if (d->textInput.focus.surface) {
d->textInput.focus.destroyConnection = connect(surface, &QObject::destroyed, this, d->textInput.focus.destroyConnection = connect(surface, &Resource::aboutToBeUnbound, this,
[this] { [this] {
setFocusedTextInputSurface(nullptr); setFocusedTextInputSurface(nullptr);
} }