diff options
Diffstat (limited to 'indra/llwindow/llwindowmacosx.cpp')
-rwxr-xr-x | indra/llwindow/llwindowmacosx.cpp | 66 |
1 files changed, 39 insertions, 27 deletions
diff --git a/indra/llwindow/llwindowmacosx.cpp b/indra/llwindow/llwindowmacosx.cpp index 18d5152015..b2f1d618ef 100755 --- a/indra/llwindow/llwindowmacosx.cpp +++ b/indra/llwindow/llwindowmacosx.cpp @@ -44,15 +44,9 @@ extern BOOL gDebugWindowProc; -// culled from winuser.h -//const S32 WHEEL_DELTA = 120; /* Value for rolling one detent */ -// On the Mac, the scroll wheel reports a delta of 1 for each detent. -// There's also acceleration for faster scrolling, based on a slider in the system preferences. -const S32 WHEEL_DELTA = 1; /* Value for rolling one detent */ const S32 BITS_PER_PIXEL = 32; const S32 MAX_NUM_RESOLUTIONS = 32; - // // LLWindowMacOSX // @@ -230,7 +224,10 @@ void callFocus() void callFocusLost() { - gWindowImplementation->getCallbacks()->handleFocusLost(gWindowImplementation); + if (gWindowImplementation) + { + gWindowImplementation->getCallbacks()->handleFocusLost(gWindowImplementation); + } } void callRightMouseDown(float *pos, MASK mask) @@ -241,8 +238,8 @@ void callRightMouseDown(float *pos, MASK mask) } LLCoordGL outCoords; - outCoords.mX = llround(pos[0]); - outCoords.mY = llround(pos[1]); + outCoords.mX = ll_round(pos[0]); + outCoords.mY = ll_round(pos[1]); gWindowImplementation->getCallbacks()->handleRightMouseDown(gWindowImplementation, outCoords, gKeyboard->currentMask(TRUE)); } @@ -254,8 +251,8 @@ void callRightMouseUp(float *pos, MASK mask) } LLCoordGL outCoords; - outCoords.mX = llround(pos[0]); - outCoords.mY = llround(pos[1]); + outCoords.mX = ll_round(pos[0]); + outCoords.mY = ll_round(pos[1]); gWindowImplementation->getCallbacks()->handleRightMouseUp(gWindowImplementation, outCoords, gKeyboard->currentMask(TRUE)); } @@ -267,8 +264,8 @@ void callLeftMouseDown(float *pos, MASK mask) } LLCoordGL outCoords; - outCoords.mX = llround(pos[0]); - outCoords.mY = llround(pos[1]); + outCoords.mX = ll_round(pos[0]); + outCoords.mY = ll_round(pos[1]); gWindowImplementation->getCallbacks()->handleMouseDown(gWindowImplementation, outCoords, gKeyboard->currentMask(TRUE)); } @@ -280,8 +277,8 @@ void callLeftMouseUp(float *pos, MASK mask) } LLCoordGL outCoords; - outCoords.mX = llround(pos[0]); - outCoords.mY = llround(pos[1]); + outCoords.mX = ll_round(pos[0]); + outCoords.mY = ll_round(pos[1]); gWindowImplementation->getCallbacks()->handleMouseUp(gWindowImplementation, outCoords, gKeyboard->currentMask(TRUE)); } @@ -294,8 +291,8 @@ void callDoubleClick(float *pos, MASK mask) } LLCoordGL outCoords; - outCoords.mX = llround(pos[0]); - outCoords.mY = llround(pos[1]); + outCoords.mX = ll_round(pos[0]); + outCoords.mY = ll_round(pos[1]); gWindowImplementation->getCallbacks()->handleDoubleClick(gWindowImplementation, outCoords, gKeyboard->currentMask(TRUE)); } @@ -310,8 +307,8 @@ void callResize(unsigned int width, unsigned int height) void callMouseMoved(float *pos, MASK mask) { LLCoordGL outCoords; - outCoords.mX = llround(pos[0]); - outCoords.mY = llround(pos[1]); + outCoords.mX = ll_round(pos[0]); + outCoords.mY = ll_round(pos[1]); float deltas[2]; gWindowImplementation->getMouseDeltas(deltas); outCoords.mX += deltas[0]; @@ -349,6 +346,22 @@ void callWindowUnfocus() gWindowImplementation->getCallbacks()->handleFocusLost(gWindowImplementation); } +void callWindowHide() +{ + if ( gWindowImplementation && gWindowImplementation->getCallbacks() ) + { + gWindowImplementation->getCallbacks()->handleActivate(gWindowImplementation, false); + } +} + +void callWindowUnhide() +{ + if ( gWindowImplementation && gWindowImplementation->getCallbacks() ) + { + gWindowImplementation->getCallbacks()->handleActivate(gWindowImplementation, true); + } +} + void callDeltaUpdate(float *delta, MASK mask) { gWindowImplementation->updateMouseDeltas(delta); @@ -357,8 +370,8 @@ void callDeltaUpdate(float *delta, MASK mask) void callMiddleMouseDown(float *pos, MASK mask) { LLCoordGL outCoords; - outCoords.mX = llround(pos[0]); - outCoords.mY = llround(pos[1]); + outCoords.mX = ll_round(pos[0]); + outCoords.mY = ll_round(pos[1]); float deltas[2]; gWindowImplementation->getMouseDeltas(deltas); outCoords.mX += deltas[0]; @@ -369,8 +382,8 @@ void callMiddleMouseDown(float *pos, MASK mask) void callMiddleMouseUp(float *pos, MASK mask) { LLCoordGL outCoords; - outCoords.mX = llround(pos[0]); - outCoords.mY = llround(pos[1]); + outCoords.mX = ll_round(pos[0]); + outCoords.mY = ll_round(pos[1]); float deltas[2]; gWindowImplementation->getMouseDeltas(deltas); outCoords.mX += deltas[0]; @@ -506,8 +519,8 @@ void LLWindowMacOSX::updateMouseDeltas(float* deltas) { if (mCursorDecoupled) { - mCursorLastEventDeltaX = llround(deltas[0]); - mCursorLastEventDeltaY = llround(-deltas[1]); + mCursorLastEventDeltaX = ll_round(deltas[0]); + mCursorLastEventDeltaY = ll_round(-deltas[1]); if (mCursorIgnoreNextDelta) { @@ -1805,8 +1818,6 @@ static long getDictLong (CFDictionaryRef refDict, CFStringRef key) void LLWindowMacOSX::allowLanguageTextInput(LLPreeditor *preeditor, BOOL b) { - allowDirectMarkedTextInput(b, mGLView); - if (preeditor != mPreeditor && !b) { // This condition may occur by a call to @@ -1836,6 +1847,7 @@ void LLWindowMacOSX::allowLanguageTextInput(LLPreeditor *preeditor, BOOL b) return; } mLanguageTextInputAllowed = b; + allowDirectMarkedTextInput(b, mGLView); // mLanguageTextInputAllowed and mMarkedTextAllowed should be updated at once (by Pell Smit } void LLWindowMacOSX::interruptLanguageTextInput() |