on xenial help sign in
fix search string selection in drawer
7be7b3bMichael Zanetti
qml/Launcher/Launcher.qml+3
@@ -368,8 +368,11 @@ FocusScope {
368 // Remove (and put back) the focus for the searchfield in
368 // Remove (and put back) the focus for the searchfield in
369 // order to hide the copy/paste popover when we move the drawer
369 // order to hide the copy/paste popover when we move the drawer
370 var hadFocus = drawer.searchTextField.focus;
370 var hadFocus = drawer.searchTextField.focus;
371+ var oldSelectionStart = drawer.searchTextField.selectionStart;
372+ var oldSelectionEnd = drawer.searchTextField.selectionEnd;
371 drawer.searchTextField.focus = false;
373 drawer.searchTextField.focus = false;
372 drawer.searchTextField.focus = hadFocus;
374 drawer.searchTextField.focus = hadFocus;
375+ drawer.searchTextField.select(oldSelectionStart, oldSelectionEnd);
373 }
376 }
374 }
377 }
375 width: Math.min(root.width, units.gu(90)) * .9
378 width: Math.min(root.width, units.gu(90)) * .9
tests/qmltests/Launcher/tst_Drawer.qml+14
@@ -271,8 +271,22 @@ StyledItem {
271
271
272 var searchField = findChild(drawer, "searchField");
272 var searchField = findChild(drawer, "searchField");
273 tryCompareFunction(function() { return !!searchField }, true);
273 tryCompareFunction(function() { return !!searchField }, true);
274+ tryCompare(searchField, "selectedText", searchField.displayText);
274 typeString("cam");
275 typeString("cam");
275 tryCompareFunction(function() { return searchField.displayText }, "cam");
276 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+
276 }
290 }
277
291
278 function test_kbdNavigation() {
292 function test_kbdNavigation() {