From: Richard K. <ric...@us...> - 2005-07-18 01:43:58
|
Update of /cvsroot/actionstep/actionstep/src/org/actionstep In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7356 Modified Files: NSWindow.as NSPanel.as Log Message: added behavior to event handling including dispatching key events, correct left button down/up and refactored method to be reused by NSPanel (creating private method __sendEventBecomesKeyOnlyIfNeeded) Index: NSWindow.as =================================================================== RCS file: /cvsroot/actionstep/actionstep/src/org/actionstep/NSWindow.as,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** NSWindow.as 16 Jul 2005 22:23:41 -0000 1.23 --- NSWindow.as 18 Jul 2005 01:43:43 -0000 1.24 *************** *** 106,109 **** --- 106,111 ---- private var m_canHide:Boolean + private var m_lastEventView:NSView; + private var m_level:Number; *************** *** 446,458 **** public function sendEvent(event:NSEvent) { switch(event.type) { case NSEvent.NSLeftMouseDown: ! if (event.view.acceptsFirstResponder()) { makeFirstResponder(event.view); } ! event.view.mouseDown(event); break; case NSEvent.NSLeftMouseUp: ! event.view.mouseUp(event); break; case NSEvent.NSMouseExited: --- 448,474 ---- public function sendEvent(event:NSEvent) { + __sendEventBecomesKeyOnlyIfNeeded(event, false); + } + + private function __sendEventBecomesKeyOnlyIfNeeded(event:NSEvent, becomesKeyOnlyIfNeeded:Boolean) { + var wasKey:Boolean = m_isKey; switch(event.type) { case NSEvent.NSLeftMouseDown: ! if (!wasKey && m_level != NSDesktopWindowLevel) { ! if (!becomesKeyOnlyIfNeeded || event.view.needsPanelToBecomeKey()) { ! makeKeyAndOrderFront(); ! } ! } ! if (m_firstResponder != event.view) { makeFirstResponder(event.view); } ! if (wasKey || event.view.acceptsFirstMouse(event)) { ! m_lastEventView = event.view; ! event.view.mouseDown(event); ! } break; case NSEvent.NSLeftMouseUp: ! // send mouse up to the view that got mouse down ! m_lastEventView.mouseUp(event); break; case NSEvent.NSMouseExited: *************** *** 462,465 **** --- 478,487 ---- event.view.mouseEntered(event); break; + case NSEvent.NSKeyDown: + m_firstResponder.keyDown(event); + break; + case NSEvent.NSKeyUp: + m_firstResponder.keyUp(event); + break; } } Index: NSPanel.as =================================================================== RCS file: /cvsroot/actionstep/actionstep/src/org/actionstep/NSPanel.as,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** NSPanel.as 15 Jul 2005 12:22:58 -0000 1.3 --- NSPanel.as 18 Jul 2005 01:43:43 -0000 1.4 *************** *** 30,34 **** import org.actionstep.NSWindow; ! //import org.actionstep.NSEvent; import org.actionstep.NSRect; --- 30,34 ---- import org.actionstep.NSWindow; ! import org.actionstep.NSEvent; import org.actionstep.NSRect; *************** *** 130,138 **** m_becomesKeyOnlyIfNeeded = flag; } ! /* ! public function sendEvent (theEvent:NSEvent):Void { ! _sendEventBecomesKeyOnlyIfNeeded ! (theEvent, _becomesKeyOnlyIfNeeded); ! }*/ public function description():String { --- 130,137 ---- m_becomesKeyOnlyIfNeeded = flag; } ! ! public function sendEvent(theEvent:NSEvent):Void { ! __sendEventBecomesKeyOnlyIfNeeded(theEvent, m_becomesKeyOnlyIfNeeded); ! } public function description():String { |