on xenial help sign in
fix searchfield selection in drawer (LP: #1677259)

Approved by: Albert Astals Cid, Unity8 CI Bot

commit001b318a8445b89297d387f349e3cb76c22039d1 authorMichael Zanetti <michael.zanetti@canonical.com> dateTue 4 Apr 2017, 22:52 (10 years ago) parent14a6cd47be7b3b
2 files changed+17
qml/Launcher/Launcher.qml+3 tests/qmltests/Launcher/tst_Drawer.qml+14
qml/Launcher/Launcher.qml+3
@@ -368,8 +368,11 @@ FocusScope {
368368 // Remove (and put back) the focus for the searchfield in
369369 // order to hide the copy/paste popover when we move the drawer
370370 var hadFocus = drawer.searchTextField.focus;
371+ var oldSelectionStart = drawer.searchTextField.selectionStart;
372+ var oldSelectionEnd = drawer.searchTextField.selectionEnd;
371373 drawer.searchTextField.focus = false;
372374 drawer.searchTextField.focus = hadFocus;
375+ drawer.searchTextField.select(oldSelectionStart, oldSelectionEnd);
373376 }
374377 }
375378 width: Math.min(root.width, units.gu(90)) * .9
tests/qmltests/Launcher/tst_Drawer.qml+14
@@ -271,8 +271,22 @@ StyledItem {
271271
272272 var searchField = findChild(drawer, "searchField");
273273 tryCompareFunction(function() { return !!searchField }, true);
274+ tryCompare(searchField, "selectedText", searchField.displayText);
274275 typeString("cam");
275276 tryCompareFunction(function() { return searchField.displayText }, "cam");
277+
278+ // Try again to make sure it cleaned and everything
279+ keyClick(Qt.Key_Escape);
280+ waitForRendering(launcher);
281+ waitUntilTransitionsEnd(launcher);
282+ launcher.openDrawer(true);
283+ waitForRendering(launcher);
284+ waitUntilTransitionsEnd(launcher);
285+
286+ tryCompare(searchField, "selectedText", searchField.displayText);
287+ typeString("terminal");
288+ tryCompareFunction(function() { return searchField.displayText }, "terminal");
289+
276290 }
277291
278292 function test_kbdNavigation() {