|
From: John M M. <jo...@us...> - 2004-09-03 00:19:28
|
Update of /cvsroot/squeak/squeak/platforms/Mac OS/vm In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32388/squeak/platforms/Mac OS/vm Modified Files: sqMacUIEvents.c Log Message: 3.7.5b1 Swallow bring to front clicks for os-x and os-9 Index: sqMacUIEvents.c =================================================================== RCS file: /cvsroot/squeak/squeak/platforms/Mac OS/vm/sqMacUIEvents.c,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** sqMacUIEvents.c 3 Aug 2004 02:42:18 -0000 1.23 --- sqMacUIEvents.c 3 Sep 2004 00:19:18 -0000 1.24 *************** *** 25,30 **** * 3.7.1b3 Jan 29th, 2004 JMM return unicode for classic version versus virtual keyboard code * 3.7.3b2 Apr 10th, 2004 JMM Tetsuya HAYASHI <te...@st...> alteration to unicode key capture ! notes: see incontent, I think it's a bug, click to bring to foreground signls mousedown. bad... ! IsUserCancelEventRef *****************************************************************************/ --- 25,29 ---- * 3.7.1b3 Jan 29th, 2004 JMM return unicode for classic version versus virtual keyboard code * 3.7.3b2 Apr 10th, 2004 JMM Tetsuya HAYASHI <te...@st...> alteration to unicode key capture ! notes: IsUserCancelEventRef *****************************************************************************/ *************** *** 165,173 **** void HandleMouseDown(EventRecord *theEvent); int ioProcessEvents(void) { - #ifndef BROWSERPLUGIN /* This is a noop when running as a plugin; the browser handles events. */ static unsigned long nextPollTick = 0, nextPowerCheck=0, disableIdleTickLimit=0; unsigned long clockTime; clockTime = ioLowResMSecs(); if (abs(nextPollTick - clockTime) >= 16) { --- 164,172 ---- void HandleMouseDown(EventRecord *theEvent); int ioProcessEvents(void) { /* This is a noop when running as a plugin; the browser handles events. */ static unsigned long nextPollTick = 0, nextPowerCheck=0, disableIdleTickLimit=0; unsigned long clockTime; + #ifndef BROWSERPLUGIN clockTime = ioLowResMSecs(); if (abs(nextPollTick - clockTime) >= 16) { *************** *** 356,377 **** #ifndef IHAVENOHEAD case inDrag: - if (getFullScreenFlag()) break; GetRegionBounds(GetGrayRgn(), &dragBounds); ! if (theWindow == getSTWindow()) { ! DragWindow(getSTWindow(), theEvent->where, &dragBounds); ! } break; case inGrow: ! if (theWindow == getSTWindow()) { ! if (getFullScreenFlag()) ! break; ! newSize = GrowWindow(getSTWindow(), theEvent->where, &growLimits); if (newSize != 0) { ! SizeWindow(getSTWindow(), LoWord(newSize), HiWord(newSize), true); ! } } break; --- 355,372 ---- #ifndef IHAVENOHEAD case inDrag: if (getFullScreenFlag()) break; GetRegionBounds(GetGrayRgn(), &dragBounds); ! DragWindow( theWindow, theEvent->where, &dragBounds); break; case inGrow: ! if (getFullScreenFlag()) ! break; ! ! newSize = GrowWindow(theWindow, theEvent->where, &growLimits); if (newSize != 0) { ! SizeWindow( theWindow, LoWord(newSize), HiWord(newSize), true); } break; *************** *** 379,388 **** case inZoomIn: case inZoomOut: ! if (theWindow == getSTWindow()) { ! if (getFullScreenFlag()) ! break; ! DoZoomWindow(theEvent,getSTWindow(), windowCode,10000, 10000); ! } ! break; --- 374,381 ---- case inZoomIn: case inZoomOut: ! if (getFullScreenFlag()) ! break; ! ! DoZoomWindow(theEvent, theWindow, windowCode,10000, 10000); break; *************** *** 390,396 **** gButtonIsDown = true; if (theWindow == getSTWindow()) { - if (theWindow != FrontWindow()) { - SelectWindow(getSTWindow()); - } if(inputSemaphoreIndex) { recordMouseEvent(theEvent,MouseModifierState(theEvent)); --- 383,386 ---- *************** *** 398,409 **** } recordMouseDown(theEvent); } break; case inGoAway: - if ((theWindow == getSTWindow()) && - (TrackGoAway(getSTWindow(), theEvent->where))) { - /* HideWindow(stWindow); noop for now */ - } break; #endif --- 388,397 ---- } recordMouseDown(theEvent); + } else { + SelectWindow(theWindow); } break; case inGoAway: break; #endif *************** *** 1214,1222 **** { kEventClassWindow, kEventWindowDeactivated}}; ! EventTypeSpec windEventMouseList[] = {{ kEventClassMouse, kEventMouseMoved}, { kEventClassMouse, kEventMouseWheelMoved}, { kEventClassMouse, kEventMouseDragged}, { kEventClassMouse, kEventMouseUp}, ! { kEventClassMouse, kEventMouseDown}}; EventTypeSpec windEventKBList[] = {{ kEventClassKeyboard, kEventRawKeyDown}, --- 1202,1212 ---- { kEventClassWindow, kEventWindowDeactivated}}; ! EventTypeSpec windEventMouseList[] = { ! { kEventClassMouse, kEventMouseMoved}, { kEventClassMouse, kEventMouseWheelMoved}, { kEventClassMouse, kEventMouseDragged}, { kEventClassMouse, kEventMouseUp}, ! { kEventClassMouse, kEventMouseDown} ! }; EventTypeSpec windEventKBList[] = {{ kEventClassKeyboard, kEventRawKeyDown}, *************** *** 1456,1464 **** OSStatus result = eventNotHandledErr; /* report failure by default */ static RgnHandle ioWinRgn=null; extern Boolean gSqueakWindowIsFloating,gSqueakFloatingWindowGetsFocus; ! if (!windowActive) ! return result; if (ioWinRgn == null) ioWinRgn = NewRgn(); --- 1446,1462 ---- OSStatus result = eventNotHandledErr; /* report failure by default */ static RgnHandle ioWinRgn=null; + static Boolean mouseDownActivate=false; extern Boolean gSqueakWindowIsFloating,gSqueakFloatingWindowGetsFocus; ! whatHappened = GetEventKind(event); ! + //fprintf(stderr,"\nMouseEvent %i-%i ",whatHappened,windowActive); + + if (!windowActive) { + if (whatHappened == kEventMouseDown) + mouseDownActivate = true; + return result; + } if (ioWinRgn == null) ioWinRgn = NewRgn(); *************** *** 1468,1471 **** --- 1466,1471 ---- if (!PtInRgn(mouseLocation,ioWinRgn)) { + if (mouseDownActivate && whatHappened == kEventMouseUp) + mouseDownActivate = false; return result; } *************** *** 1479,1483 **** return result; ! whatHappened = GetEventKind(event); switch (whatHappened) { --- 1479,1483 ---- return result; ! switch (whatHappened) { *************** *** 1485,1488 **** --- 1485,1490 ---- case kEventMouseDragged: case kEventMouseWheelMoved: + if (mouseDownActivate) + return result; recordMouseEventCarbon(event,whatHappened); result = noErr; *************** *** 1492,1495 **** --- 1494,1499 ---- if (PtInRgn(mouseLocation,ioWinRgn)) return result; + if (mouseDownActivate) + return result; if (gSqueakFloatingWindowGetsFocus && gSqueakWindowIsFloating) { SetUserFocusWindow(kUserFocusAuto); *************** *** 1501,1504 **** --- 1505,1512 ---- break; case kEventMouseUp: + if (mouseDownActivate) { + mouseDownActivate = false; + return result; + } gButtonIsDown = false; recordMouseEventCarbon(event,whatHappened); *************** *** 1512,1515 **** --- 1520,1524 ---- if (postMessageHook) doPostMessageHook(event); + //fprintf(stderr,"handled %i",result); return result; } *************** *** 1518,1522 **** EventRef event, void* userData) { ! UInt32 whatHappened,keyCode,key; OSStatus result = eventNotHandledErr; /* report failure by default */ --- 1527,1532 ---- EventRef event, void* userData) { ! UInt32 whatHappened,keyCode; ! SInt32 key; OSStatus result = eventNotHandledErr; /* report failure by default */ *************** *** 1544,1548 **** //fprintf(stdout,"\nrawkey up %i",ioMSecs()); key = findInKeyMap(keyCode); ! if (key) { enterKeystroke ( EventTypeKeyboard,key, EventKeyUp, ModifierStateCarbon(event,0)); } --- 1554,1558 ---- //fprintf(stdout,"\nrawkey up %i",ioMSecs()); key = findInKeyMap(keyCode); ! if (key != -1) { enterKeystroke ( EventTypeKeyboard,key, EventKeyUp, ModifierStateCarbon(event,0)); } *************** *** 1579,1582 **** --- 1589,1593 ---- if (!windowActive) return result; + if(messageHook && ((result = doPreMessageHook(event)) != eventNotHandledErr)) return result; *************** *** 2045,2049 **** { int idx= indexInKeyMap(keyCode); ! return (idx >= 0) ? keyMap[idx].keyChar : -1; } --- 2056,2060 ---- { int idx= indexInKeyMap(keyCode); ! return (idx != -1) ? keyMap[idx].keyChar : -1; } *************** *** 2051,2055 **** { int idx= indexInKeyMap(keyCode); ! return (idx >= 0) ? keyMap[idx].keyRepeated : 0; } --- 2062,2066 ---- { int idx= indexInKeyMap(keyCode); ! return (idx != -1) ? keyMap[idx].keyRepeated : 0; } *************** *** 2057,2061 **** { int idx= indexInKeyMap(keyCode); ! if (idx >= 0) keyMap[idx].keyRepeated = 1; } --- 2068,2072 ---- { int idx= indexInKeyMap(keyCode); ! if (idx != -1) keyMap[idx].keyRepeated = 1; } *************** *** 2065,2069 **** int keyChar= -1; //fprintf(stdout, "\nremoveFromKeyMap T %i c %i i %i",ioMSecs(),keyCode,keyMapSize-1); ! if (idx < 0) { fprintf(stderr, "keymap underflow\n"); return -1; } keyChar= keyMap[idx].keyChar; for (; idx < keyMapSize - 1; ++idx) --- 2076,2080 ---- int keyChar= -1; //fprintf(stdout, "\nremoveFromKeyMap T %i c %i i %i",ioMSecs(),keyCode,keyMapSize-1); ! if (idx == -1) { fprintf(stderr, "keymap underflow\n"); return -1; } keyChar= keyMap[idx].keyChar; for (; idx < keyMapSize - 1; ++idx) |