<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>Hi Chris,</div><div><br>On Jul 7, 2014, at 5:42 PM, Chris Muller &lt;<a href="mailto:asqueaker@gmail.com">asqueaker@gmail.com</a>&gt; wrote:<br><br></div><blockquote type="cite"><div><div dir="ltr"><div><br></div><div>I think forcing a double-blink for every possible use-case for #flash won't work. &nbsp;Plus, an arbitrary 50ms delay will not let anyone be happy because some want absolutely no blockage while others wanted more than 50ms..<br>
</div><div><br></div><div>#flashStyle or #flashIntensity preference would be one way to address those differences.</div></div></div></blockquote><div><br></div><div><br></div>It's a hack. &nbsp;It complicates without adding anything. &nbsp;Perceptually, a flash needs to last something like a 1/10th if a second to be easily visible. &nbsp;Clearly a simple reverse won't work. &nbsp;Bert has explained that using alarms, rather than delays, can implement flash without blocking. &nbsp;Surely we can do the right thing here and implement flash having a consistent duration and not blocking?<div><br></div><div><br><blockquote type="cite"><div><div class="gmail_extra"><div class="gmail_quote">On Thu, Jul 3, 2014 at 7:29 AM,  <span dir="ltr">&lt;<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">A new version of Morphic was added to project The Inbox:<br>
<a href="http://source.squeak.org/inbox/Morphic-kfr.731.mcz" target="_blank">http://source.squeak.org/inbox/Morphic-kfr.731.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: Morphic-kfr.731<br>
Author: kfr<br>
Time: 3 July 2014, 2:28:57.179 pm<br>
UUID: 05ec5d84-8101-f94b-847f-d4e467ddeead<br>
Ancestors: Morphic-kfr.730<br>
<br>
Small fix for keyboard focus.<br>
Double flash for morph implementation<br>
<br>
=============== Diff against Morphic-cmm.729 ===============<br>
<br>
Item was changed:<br>
&nbsp; ----- Method: AlternatePluggableListMorphOfMany&gt;&gt;mouseUp: (in category 'event handling') -----<br>
&nbsp; mouseUp: event<br>
+<br>
+ &nbsp; &nbsp; &nbsp; event hand newKeyboardFocus: self.<br>
+ &nbsp; &nbsp; &nbsp; hasFocus := true.<br>
+ &nbsp; &nbsp; &nbsp; ^self!<br>
- &nbsp; &nbsp; &nbsp; "Not needed. &nbsp;Overridden to do nothing."!<br>
<br>
Item was changed:<br>
&nbsp; ----- Method: Morph&gt;&gt;flash (in category 'macpal') -----<br>
&nbsp; flash<br>
+ &nbsp; &nbsp; &nbsp; "Flash me"<br>
&nbsp; &nbsp; &nbsp; &nbsp; | originalColor |<br>
&nbsp; &nbsp; &nbsp; &nbsp; originalColor := self color.<br>
+ &nbsp; &nbsp; &nbsp; 1<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; to: 2<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; do: [:i | [self<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; color: (originalColor<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ifNil: [Color black]<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ifNotNil: [((originalColor alpha: 1)<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; adjustSaturation: 0.8<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; brightness: 0) negated])]<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ensure: [self world<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ifNotNil: [:w | w displayWorldSafely].<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (Delay forMilliseconds: 50) wait.<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [self color: originalColor]<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ensure: [self world<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ifNotNil: [:w | w displayWorldSafely].<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (Delay forMilliseconds: 50) wait]]]!<br>
- &nbsp; &nbsp; &nbsp; [ self color:<br>
- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (originalColor<br>
- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ifNil: [ Color black ]<br>
- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ifNotNil: [( (originalColor alpha: 1) adjustSaturation: 0.8 brightness: 0) negated ]) ]<br>
- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ensure:<br>
- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [ self world ifNotNil: [ : w | w displayWorldSafely ].<br>
- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; self color: originalColor ]!<br>
<br>
Item was changed:<br>
&nbsp; ----- Method: TextMorphForEditView&gt;&gt;mouseDown: (in category 'event handling') -----<br>
&nbsp; mouseDown: event<br>
<br>
&nbsp; &nbsp; &nbsp; &nbsp; event yellowButtonPressed ifTrue: [<br>
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (self editor yellowButtonDown: event) ifTrue:[^self].<br>
- &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (editor yellowButtonDown: event) ifTrue:[^self].<br>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ^ editView yellowButtonActivity: event shiftPressed].<br>
&nbsp; &nbsp; &nbsp; &nbsp; ^ super mouseDown: event<br>
&nbsp; !<br>
<br>
<br>
</blockquote></div><br></div>
</div></blockquote><blockquote type="cite"><div><span></span><br></div></blockquote></div></body></html>