diff options
Diffstat (limited to 'indra/llwindow/llwindowmacosx.cpp')
| -rw-r--r-- | indra/llwindow/llwindowmacosx.cpp | 29 | 
1 files changed, 20 insertions, 9 deletions
diff --git a/indra/llwindow/llwindowmacosx.cpp b/indra/llwindow/llwindowmacosx.cpp index 3aca4660f3..3ed935c0f2 100644 --- a/indra/llwindow/llwindowmacosx.cpp +++ b/indra/llwindow/llwindowmacosx.cpp @@ -986,7 +986,7 @@ bool LLWindowMacOSX::getPosition(LLCoordScreen *position)      }      else if(mWindow)      { -        const CGPoint & pos = getContentViewBoundsPosition(mWindow); +        CGPoint pos = getContentViewRect(mWindow).origin;          position->mX = pos.x;          position->mY = pos.y; @@ -1013,7 +1013,7 @@ bool LLWindowMacOSX::getSize(LLCoordScreen *size)      }      else if(mWindow)      { -        const CGSize & sz = gHiDPISupport ? getDeviceContentViewSize(mWindow, mGLView) : getContentViewBoundsSize(mWindow); +        CGSize sz = getBackingViewRect(mWindow, mGLView).size;          size->mX = sz.width;          size->mY = sz.height; @@ -1039,7 +1039,7 @@ bool LLWindowMacOSX::getSize(LLCoordWindow *size)      }      else if(mWindow)      { -        const CGSize & sz = gHiDPISupport ? getDeviceContentViewSize(mWindow, mGLView) : getContentViewBoundsSize(mWindow); +        CGSize sz = getBackingViewRect(mWindow, mGLView).size;          size->mX = sz.width;          size->mY = sz.height; @@ -1225,6 +1225,12 @@ void LLWindowMacOSX::setMouseClipping( bool b )      adjustCursorDecouple();  } +#if LL_DARWIN +// For CGSetLocalEventsSuppressionInterval there is no replacement in modern API +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +#endif +  bool LLWindowMacOSX::setCursorPosition(const LLCoordWindow position)  {      bool result = false; @@ -1262,6 +1268,10 @@ bool LLWindowMacOSX::setCursorPosition(const LLCoordWindow position)      return result;  } +#if LL_DARWIN +#pragma clang diagnostic pop +#endif +  bool LLWindowMacOSX::getCursorPosition(LLCoordWindow *position)  {      float cursor_point[2]; @@ -1486,8 +1496,9 @@ bool LLWindowMacOSX::convertCoords(LLCoordScreen from, LLCoordWindow* to)          convertScreenToWindow(mWindow, mouse_point); -        to->mX = mouse_point[0]; -        to->mY = mouse_point[1]; +        float scale_factor = getSystemUISize(); +        to->mX = mouse_point[0] * scale_factor; +        to->mY = mouse_point[1] * scale_factor;          return true;      } @@ -1499,9 +1510,9 @@ bool LLWindowMacOSX::convertCoords(LLCoordWindow from, LLCoordScreen *to)      if(mWindow)      {          float mouse_point[2]; - -        mouse_point[0] = from.mX; -        mouse_point[1] = from.mY; +        float scale_factor = getSystemUISize(); +        mouse_point[0] = from.mX / scale_factor; +        mouse_point[1] = from.mY / scale_factor;          convertWindowToScreen(mWindow, mouse_point); @@ -2638,7 +2649,7 @@ MASK LLWindowMacOSX::modifiersToMask(S16 modifiers)  F32 LLWindowMacOSX::getSystemUISize()  { -    return gHiDPISupport ? ::getDeviceUnitSize(mGLView) : LLWindow::getSystemUISize(); +    return ::getDeviceUnitSize(mGLView);  }  #if LL_OS_DRAGDROP_ENABLED  | 
