oops - need repairDamage for shown to be set (under unix; it used to
work under win32)
--- a/UIPainterView.st Wed Jun 10 18:26:53 2009 +0200
+++ b/UIPainterView.st Wed Jun 10 19:31:23 2009 +0200
@@ -384,7 +384,7 @@
if given a single spec, returns that view (sigh - a stupid bw-compatibility kludge)"
|sensor specsToPaste pasteOffset builder newSel
- bounds containerToPasteInto pastePoint beforeIndex|
+ bounds containerToPasteInto pastePoint beforeIndex count|
treeView askForSelectionChangeAllowed ifFalse:[^ nil].
@@ -524,9 +524,12 @@
self elementChangedSize:containerToPasteInto.
"/ because the new-created view will destroy the handles, when it redraws itself,
- "/ give it a chance to do so, before we return.
- [ (newSel conform:[:v | v shown]) ] whileFalse:[
+ "/ give it a chance to do so, before we return. (bail out after half a second, in case of trouble)
+ count := 0.
+ [ (newSel conform:[:v | v shown]) or:[count > 50] ] whileFalse:[
+ self windowGroup repairDamage.
Delay waitForSeconds:0.01.
+ count := count+1.
].
Delay waitForSeconds:0.01.
self windowGroup repairDamage.