@@ -64,12 +64,16 @@ Item {
6464 signal done()
6565 signal favoriteSelected(var scopeId)
6666 signal allFavoriteSelected(var scopeId)
67− signal allSelected(var scopeId, var pos)
68− signal searchSelected(var scopeId, var pos, var size)
67+ signal searchSelected(var scopeId, var result, var pos, var size)
6968
70− function showTemporaryScope(scope, itemPos, itemSize) {
71− scopesOverviewXYScaler.restorePosition = itemPos;
72− scopesOverviewXYScaler.restoreSize = itemSize;
69+ Connections {
70+ target: scope
71+ onOpenScope: showTemporaryScope(scope);
72+ }
73+
74+ function showTemporaryScope(scope) {
75+ var itemPos = scopesOverviewXYScaler.restorePosition;
76+ var itemSize = scopesOverviewXYScaler.restoreSize;
7377 scopesOverviewXYScaler.scale = itemSize.width / scopesOverviewXYScaler.width;
7478 scopesOverviewXYScaler.x = itemPos.x -(scopesOverviewXYScaler.width - scopesOverviewXYScaler.width * scopesOverviewXYScaler.scale) / 2;
7579 scopesOverviewXYScaler.y = itemPos.y -(scopesOverviewXYScaler.height - scopesOverviewXYScaler.height * scopesOverviewXYScaler.scale) / 2;
@@ -276,7 +280,10 @@ Item {
276280 if (scopeIndex >= 0) {
277281 root.allFavoriteSelected(itemModel.scopeId);
278282 } else {
279− root.allSelected(itemModel.scopeId, item.mapToItem(null, 0, 0));
283+ // Will result in an openScope from root.scope
284+ scopesOverviewXYScaler.restorePosition = item.mapToItem(null, 0, 0);
285+ scopesOverviewXYScaler.restoreSize = allCardSize;
286+ root.scope.activate(result);
280287 }
281288 }
282289 }
@@ -309,7 +316,10 @@ Item {
309316 clickOverride: function (index, result, item, itemModel) {
310317 pageHeader.closeSearchHistory();
311318 if (itemModel.scopeId) {
312− root.searchSelected(itemModel.scopeId, item.mapToItem(null, 0, 0), Qt.size(item.width, item.height));
319+ // This can end up in openScope so save restorePosition and restoreSize
320+ scopesOverviewXYScaler.restorePosition = item.mapToItem(null, 0, 0);
321+ scopesOverviewXYScaler.restoreSize = Qt.size(item.width, item.height);
322+ root.searchSelected(itemModel.scopeId, result, item.mapToItem(null, 0, 0), Qt.size(item.width, item.height));
313323 } else {
314324 // Not a scope, just activate it
315325 searchResultsViewer.scope.activate(result);
@@ -407,6 +417,7 @@ Item {
407417 onRunningChanged: {
408418 if (!running) {
409419 if (root.showingNonFavoriteScope && scopesOverviewXYScaler.scale != 1) {
420+ root.scope.closeScope(tempScopeItem.scope);
410421 tempScopeItem.scope = null;
411422 } else if (root.growingDashFromPos) {
412423 root.growingDashFromPos = false;