Merge jv
authorHG Automerge
Thu, 08 Dec 2016 10:30:26 +0000
branchjv
changeset 6009 e40141d51a0e
parent 6008 ccc5e4486599 (current diff)
parent 5994 daa54392bf90 (diff)
child 6010 181112f1dd26
Merge
SelectionInListView.st
--- a/.hgtags	Wed Dec 07 12:00:07 2016 +0000
+++ b/.hgtags	Thu Dec 08 10:30:26 2016 +0000
@@ -10,7 +10,6 @@
 19af20c4f04f49e24c5a4af916cc04a5225f8fc8 rel5_2_1
 1cd1ea860d26ac7ca936e6f3252a2039f50f72d3 expecco_2_7_5a
 1fe161a855da4488136b2afef189770aee4f6a66 expecco_2_9_0
-1fe161a855da4488136b2afef189770aee4f6a66 expecco_2_9_0_a
 1fe161a855da4488136b2afef189770aee4f6a66 expecco_2_9_0_win75_lx36
 1fe161a855da4488136b2afef189770aee4f6a66 expecco_2_9_1
 2d10ecc7efb00e010206a0f1e435845c12d46c5d expecco_2_1_0
@@ -48,6 +47,8 @@
 76de19bec54bfa87495522090f7c89f854136bba release
 7800380ae0dcefa3e4aad5e68d5b19f3e9701063 expecco_1_5_0
 7b9d701d947b79d0fcadb309d60624561f4761c6 stable
+8934110278a30020baf8b0f089334f88a6438674 expecco_2_10_0
+8934110278a30020baf8b0f089334f88a6438674 expecco_2_10_1
 898390ffc60246027be514e931aaa1f684dec8a3 balla
 966270358179746c40739275e562ec92e93112cb expecco_1_7_0b1
 966270358179746c40739275e562ec92e93112cb expecco_1_7_0b2
--- a/DialogBox.st	Wed Dec 07 12:00:07 2016 +0000
+++ b/DialogBox.st	Thu Dec 08 10:30:26 2016 +0000
@@ -6600,11 +6600,13 @@
     "
 !
 
-requestProject:title from:listOfProjectsIn initialAnswer:initialTextOrNil suggestions:suggestions
+requestProject:title from:listOfProjectsIn initialAnswer:initialTextOrNil suggestions:suggestionsOrNil
     "Ask for a project (package-id)"
 
-    |listOfProjects newProject box more|
-
+    |suggestions listOfProjects newProject box more|
+
+    suggestions := suggestionsOrNil ? #().
+    
     listOfProjects := listOfProjectsIn.
     
     more := suggestions reject:[:each | (listOfProjects includes:each)].
--- a/SelectionInListView.st	Wed Dec 07 12:00:07 2016 +0000
+++ b/SelectionInListView.st	Thu Dec 08 10:30:26 2016 +0000
@@ -2731,16 +2731,20 @@
 !
 
 sizeChanged:how
+    self sizeChanged:how from:nil
+!
+
+sizeChanged:how from:oldExtent
     "if there is a selection, make certain, it is visible
-     after the sizechange"
-
-    |first wasAtEnd selectionWasWisible oldFirst|
+     after the sizechange."
+
+    |first wasAtEnd selectionWasVisible oldFirst|
 
     widthOfWidestLine := nil.
     oldFirst := firstLineShown.
     wasAtEnd := (nFullLinesShown < list size) and:[ (firstLineShown + nFullLinesShown) >= list size ].
 
-    selectionWasWisible := false.
+    selectionWasVisible := false.
     selection notNil ifTrue:[
         self multipleSelectOk ifTrue:[
             first := selection firstIfEmpty:nil
@@ -2748,7 +2752,7 @@
             first := selection
         ].
         first notNil ifTrue:[
-            selectionWasWisible := (first between:firstLineShown and:(firstLineShown + nFullLinesShown)).
+            selectionWasVisible := (first between:firstLineShown and:(firstLineShown + nFullLinesShown)).
         ]
     ].
 
@@ -2760,23 +2764,25 @@
     ].
 
     shown ifTrue:[
-        selection size > 0 ifTrue:[
-            selectionWasWisible ifTrue:[
-                self multipleSelectOk ifTrue:[
-                    first := selection firstIfEmpty:nil
-                ] ifFalse:[
-                    first := selection
-                ].
-                first notNil ifTrue:[self makeLineVisible:first]
-            ]
-        ] ifFalse:[
-            "
-             if we were at the end before, move to the end again.
-             Still to be seen, if this is better in real life ...
-            "
-            wasAtEnd ifTrue:[
-                "at end"
-                self scrollToBottom
+        (oldExtent isNil or:[oldExtent y ~= height]) ifTrue:[
+            selection size > 0 ifTrue:[
+                selectionWasVisible ifTrue:[
+                    self multipleSelectOk ifTrue:[
+                        first := selection firstIfEmpty:nil
+                    ] ifFalse:[
+                        first := selection
+                    ].
+                    first notNil ifTrue:[self makeLineVisible:first]
+                ]
+            ] ifFalse:[
+                "
+                 if we were at the end before, move to the end again.
+                 Still to be seen, if this is better in real life ...
+                "
+                wasAtEnd ifTrue:[
+                    "at end"
+                    self scrollToBottom
+                ]
             ]
         ]
     ]