summaryrefslogtreecommitdiff
path: root/indra/llui
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llui')
-rw-r--r--indra/llui/llui.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/indra/llui/llui.cpp b/indra/llui/llui.cpp
index a1b31fd5cc..52190a1473 100644
--- a/indra/llui/llui.cpp
+++ b/indra/llui/llui.cpp
@@ -236,10 +236,14 @@ void LLUI::dirtyRect(LLRect rect)
//static
void LLUI::setMousePositionScreen(S32 x, S32 y)
{
- S32 screen_x, screen_y;
- screen_x = ll_round((F32)x * getScaleFactor().mV[VX]);
- screen_y = ll_round((F32)y * getScaleFactor().mV[VY]);
-
+#if defined(LL_DARWIN)
+ S32 screen_x = ll_round(((F32)x * getScaleFactor().mV[VX]) / LLView::getWindow()->getSystemUISize());
+ S32 screen_y = ll_round(((F32)y * getScaleFactor().mV[VY]) / LLView::getWindow()->getSystemUISize());
+#else
+ S32 screen_x = ll_round((F32)x * getScaleFactor().mV[VX]);
+ S32 screen_y = ll_round((F32)y * getScaleFactor().mV[VY]);
+#endif
+
LLView::getWindow()->setCursorPosition(LLCoordGL(screen_x, screen_y).convert());
}