<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body>
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p>Interesting idea! Should we generally make all morphs visible, not just a subset of them? I was already confused a few times when a parts bin or a do-it button was no longer accessible after resizing the window ...</p>
<p><br>
</p>
<p>Best,</p>
<p>Christoph</p>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von Taeumel, Marcel<br>
<b>Gesendet:</b> Mittwoch, 24. August 2022 13:35:57<br>
<b>An:</b> squeak-dev<br>
<b>Betreff:</b> Re: [squeak-dev] The Inbox: Morphic-ct.2032.mcz</font>
<div> </div>
</div>
<div>
<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
Can we avoid #respondsTo: by just implementing #<span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">makeMeVisible in Morph?</span>
<div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px"><br>
</span></div>
<div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Best,</span></div>
<div><span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">Marcel</span></div>
<div class="mb_sig"></div>
<blockquote class="history_container" type="cite" style="border-left-style: solid;border-width: 1px;margin-top: 20px;margin-left: 0px;padding-left: 10px;min-width: 500px">
<p style="color: #AAAAAA; margin-top: 10px;">Am 24.08.2022 12:16:17 schrieb commits@source.squeak.org <commits@source.squeak.org>:</p>
<div style="font-family:Arial,Helvetica,sans-serif">A new version of Morphic was added to project The Inbox:<br>
http://source.squeak.org/inbox/Morphic-ct.2032.mcz<br>
<br>
==================== Summary ====================<br>
<br>
Name: Morphic-ct.2032<br>
Author: ct<br>
Time: 24 August 2022, 12:15:59.039424 pm<br>
UUID: 385fbab8-ecc3-9f42-8b04-5ce73768f082<br>
Ancestors: Morphic-ct.2031<br>
<br>
Proposal: After resizing the display, also make all open dialog windows and progress morphs visible.<br>
<br>
=============== Diff against Morphic-ct.2031 ===============<br>
<br>
Item was added:<br>
+ ----- Method: DialogWindow>>makeMeVisible (in category 'updating') -----<br>
+ makeMeVisible<br>
+ "Assure that the receiver is visible within the current world bounds."<br>
+ <br>
+ self world extent > (0 @ 0) ifFalse: [^ self].<br>
+ <br>
+ ((self world bounds insetBy: (0 @ 0 corner: self firstSubmorph height asPoint))<br>
+ containsPoint: self position) ifTrue: [^ self "OK -- at least my top left is visible"].<br>
+ <br>
+ "window not on screen (probably due to reframe) -- move it now"<br>
+ self position: (RealEstateAgent initialFrameFor: self initialExtent: self extent world: self world) topLeft.!<br>
<br>
Item was changed:<br>
----- Method: PasteUpMorph>>fullRepaintNeeded (in category 'world state') -----<br>
fullRepaintNeeded<br>
<br>
worldState doFullRepaint.<br>
+ self submorphsDo: [:morph |<br>
+ (morph respondsTo: #makeMeVisible)<br>
+ ifTrue: [morph makeMeVisible]].<br>
+ SystemProgressMorph fullRepaintNeeded.!<br>
- SystemWindow windowsIn: self<br>
- satisfying: [:w | w makeMeVisible. false].<br>
- <br>
- !<br>
<br>
Item was added:<br>
+ ----- Method: SystemProgressMorph class>>fullRepaintNeeded (in category 'class initialization') -----<br>
+ fullRepaintNeeded<br>
+ <br>
+ UniqueInstance ifNotNil: [UniqueInstance recenter].!<br>
<br>
Item was changed:<br>
+ ----- Method: SystemWindow>>makeMeVisible (in category 'updating') -----<br>
+ makeMeVisible<br>
+ "Assure that the receiver is visible within the current world bounds."<br>
- ----- Method: SystemWindow>>makeMeVisible (in category 'drawing') -----<br>
- makeMeVisible <br>
<br>
+ self world extent > (0 @ 0) ifFalse: [^ self].<br>
- self world extent > (0@0) ifFalse: [^ self].<br>
<br>
+ ((self world bounds insetBy: (0 @ 0 corner: self labelHeight asPoint))<br>
- ((self world bounds insetBy: (0@0 corner: self labelHeight asPoint))<br>
containsPoint: self position) ifTrue: [^ self "OK -- at least my top left is visible"].<br>
<br>
"window not on screen (probably due to reframe) -- move it now"<br>
+ self position: (self isCollapsed<br>
+ ifTrue: [RealEstateAgent assignCollapsePointFor: self]<br>
+ ifFalse: [(RealEstateAgent initialFrameFor: self initialExtent: self extent world: self world) topLeft]).!<br>
- self isCollapsed<br>
- ifTrue: [self position: (RealEstateAgent assignCollapsePointFor: self)]<br>
- ifFalse: [self position: (RealEstateAgent initialFrameFor: self initialExtent: self extent world: self world) topLeft].<br>
- <br>
- !<br>
<br>
<br>
</div>
</blockquote>
</div>
</div>
</body>
</html>