<div dir="ltr">Hi Karl,<div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jun 23, 2014 at 10:15 AM, karl ramberg <span dir="ltr">&lt;<a href="mailto:karlramberg@gmail.com" target="_blank">karlramberg@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Before this change, moving the mouse out of a text or list pane meant it lost keyboard focus.<div>Even if the <span style="color:rgb(80,0,80)">Preferences mouseOverForKeyboardFocus was false.</span></div>
<div>
<span style="color:rgb(80,0,80)">With this change you have to click the pane you want tho have keyboard focus.</span></div><div class="gmail_extra"><br></div><div class="gmail_extra">I find working with this change is less aggravating since I very often bump the mouse out of small text boxes and panes. </div>
</div></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">
<div class="gmail_extra"><br></div><div class="gmail_extra">It also means the preference does what it say it will do.</div></div></blockquote><div><br></div><div>This sounds like manna from heaven.  I vote for including this in trunk.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra">Karl<br></div><div class="gmail_extra"><br><div class="gmail_quote">
On Mon, Jun 23, 2014 at 5:18 PM, Chris Muller <span dir="ltr">&lt;<a href="mailto:asqueaker@gmail.com" target="_blank">asqueaker@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Can you explain what effect this has for regular interaction with an<br>


image?  It&#39;s not obvious to me.<br>
<div><div><br>
On Sun, Jun 22, 2014 at 10:04 AM,  &lt;<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>&gt; wrote:<br>
&gt; A new version of Morphic was added to project The Inbox:<br>
&gt; <a href="http://source.squeak.org/inbox/Morphic-kfr.722.mcz" target="_blank">http://source.squeak.org/inbox/Morphic-kfr.722.mcz</a><br>
&gt;<br>
&gt; ==================== Summary ====================<br>
&gt;<br>
&gt; Name: Morphic-kfr.722<br>
&gt; Author: kfr<br>
&gt; Time: 22 June 2014, 4:59:39.758 pm<br>
&gt; UUID: fffb2b9e-3b71-f341-9042-4e35e7cc19fa<br>
&gt; Ancestors: Morphic-cmm.721<br>
&gt;<br>
&gt; Make keyboard focus respect Preferences mouseOverForKeyboardFocus. With this change one has to click for keyboard fokus.<br>
&gt;<br>
&gt; =============== Diff against Morphic-cmm.721 ===============<br>
&gt;<br>
&gt; Item was changed:<br>
&gt;   ----- Method: PluggableListMorph&gt;&gt;mouseUp: (in category &#39;events&#39;) -----<br>
&gt;   mouseUp: event<br>
&gt;         &quot;The mouse came up within the list; take appropriate action&quot;<br>
&gt;         | row |<br>
&gt;         row := self rowAtLocation: event position.<br>
&gt;         &quot;aMorph ifNotNil: [aMorph highlightForMouseDown: false].&quot;<br>
&gt;         model okToChange<br>
&gt;                 ifFalse: [^ self].<br>
&gt;         &quot;No change if model is locked&quot;<br>
&gt;         row = self selectionIndex<br>
&gt;                 ifTrue: [(autoDeselect ifNil: [true]) ifTrue:[row = 0 ifFalse: [self changeModelSelection: 0] ]]<br>
&gt;                 ifFalse: [self changeModelSelection: (self modelIndexFor: row)].<br>
&gt; +       event hand newKeyboardFocus: self.<br>
&gt; +       hasFocus := true.<br>
&gt;         Cursor normal show!<br>
&gt;<br>
&gt; Item was changed:<br>
&gt;   ----- Method: ScrollPane&gt;&gt;handlesMouseOver: (in category &#39;event handling&#39;) -----<br>
&gt;   handlesMouseOver: evt<br>
&gt;         &quot;Could just ^ true, but this ensures that scroll bars won&#39;t flop out<br>
&gt;         if you mouse-over appendages such as connecting pins.&quot;<br>
&gt;         self flag: #arNote. &quot;I have no idea how the code below could&#39;ve ever worked. If the receiver does not handle mouse over events then it should not receive any #mouseLeave if the mouse leaves the receiver for real. This is because &#39;evt cursorPoint&#39; describes the *end* point of the movement and considering that the code would return false if the move ends outside the receiver the scroll bars should never pop back in again. Which is exactly what happens with the new event logic if you don&#39;t just ^true. I&#39;m leaving the code in for reference - perhaps somebody can make sense from it; I sure cannot.&quot;<br>


&gt; +  ^Preferences mouseOverForKeyboardFocus<br>
&gt; -       ^true<br>
&gt;   &quot;<br>
&gt;         | cp |<br>
&gt;         cp := evt cursorPoint.<br>
&gt;         (bounds containsPoint: cp)<br>
&gt;                 ifTrue: [^ true]<br>
&gt;                 ifFalse: [self submorphsDo:<br>
&gt;                                         [:m | (m containsPoint: cp) ifTrue:<br>
&gt;                                                         [m == scrollBar<br>
&gt;                                                                 ifTrue: [^ true]<br>
&gt;                                                                 ifFalse: [^ false]]].<br>
&gt;                                 ^ false]<br>
&gt;   &quot;!<br>
&gt;<br>
&gt;<br>
<br>
</div></div></blockquote></div><br></div></div>
<br><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>best,<div>Eliot</div>
</div></div>