<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; ">Thanks for your help Tom.  I am making progress, but I'm not there yet.<DIV><BR class="khtml-block-placeholder"></DIV><DIV>Brad: I'm not talking about the Halo operations, which work fine.  What I want to do is make the circles behave on redButtonPressed just as if I were using the "move" halo button.  This is the default behavior when the circle is in the World.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>The key phrase was: "If handlesMouseDown: answers false, that means that your object</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">doesn't handle mouse down events, _so somebody else has to decide how</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">to handle them_".  So by setting handlesMouseDown to false, I was making the morph react to mouse down, which is a bit counter-intuitive.  The way to make it _not_ respond to mouse down is to have handlesMouseDown: answer true, but to have a mouseDown: evt method that does nothing.  Or maybe it should do </DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">                        </SPAN>evt wasHandled: true.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>OK, so the converse is true.  if I want my circles to handle Mouse Down, then they need to answer true to handlesMouseDown: (that's easy), and then there needs to be a mouseDown: evt method that does the "right thing".  However, the right thing is very complicated!  I tried the following, based on Tom's code:</DIV><DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>mouseDown: evt </DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN>evt redButtonPressed</DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">                </SPAN>ifTrue: ["pick it up"</DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">                        </SPAN>evt wasHandled: true.</DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">                        </SPAN>self removeHalo.</DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">                        </SPAN>^ evt hand grabMorph: self from: owner]</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>but this glues the morph to the hand, and I have to click again (rather than releasing the red button) to drop it.  Once dropped, the circle is no longer embedded in its (former) owner.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>I could probably find all of the bits of code that I need, to handle mouse move and so on, taking care of the offset between mouse click event and the origin of the Morph that I'm moving — most of the code must be in HaloMorph.  But this was the Default Behavior of the circle before I embedded it in the rectangle — surely there must be an easier way to get that default behavior back, other than duplicating the code from whereever it is hidden!</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN>Andrew</DIV><BR><DIV> <SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><DIV>Andrew P. Black</DIV><DIV>Department of Computer Science</DIV><DIV>Portland State University</DIV><DIV>+1 503 725 2411</DIV><DIV><BR class="khtml-block-placeholder"></DIV><BR class="Apple-interchange-newline"></SPAN> </DIV><BR></DIV></BODY></HTML>