From 0acd7fb5ce87eafa34a3bcaf7736e8074cde202e Mon Sep 17 00:00:00 2001
From: Rye Mutt <rye@alchemyviewer.org>
Date: Fri, 9 Dec 2022 00:20:28 -0500
Subject: [PATCH] Fix mac build again

---
 indra/llwindow/llwindowmacosx-objc.h  | 1 +
 indra/llwindow/llwindowmacosx-objc.mm | 5 +++++
 indra/llwindow/llwindowmacosx.cpp     | 5 +++++
 3 files changed, 11 insertions(+)

diff --git a/indra/llwindow/llwindowmacosx-objc.h b/indra/llwindow/llwindowmacosx-objc.h
index d8cacb76d3b..f8d40cd3ae5 100644
--- a/indra/llwindow/llwindowmacosx-objc.h
+++ b/indra/llwindow/llwindowmacosx-objc.h
@@ -96,6 +96,7 @@ void setCrossCursor();
 void setNotAllowedCursor();
 void hideNSCursor();
 void showNSCursor();
+bool isCGCursorVisible();
 void hideNSCursorTillMove(bool hide);
 void requestUserAttention();
 long showAlert(std::string title, std::string text, int type);
diff --git a/indra/llwindow/llwindowmacosx-objc.mm b/indra/llwindow/llwindowmacosx-objc.mm
index 19442500dc5..3fe898f5ae6 100644
--- a/indra/llwindow/llwindowmacosx-objc.mm
+++ b/indra/llwindow/llwindowmacosx-objc.mm
@@ -163,6 +163,11 @@ void showNSCursor()
 	[NSCursor unhide];
 }
 
+bool isCGCursorVisible()
+{
+    return CGCursorIsVisible();
+}
+
 void hideNSCursorTillMove(bool hide)
 {
 	[NSCursor setHiddenUntilMouseMoves:hide];
diff --git a/indra/llwindow/llwindowmacosx.cpp b/indra/llwindow/llwindowmacosx.cpp
index 61dd48d2cb9..6c94e110d09 100644
--- a/indra/llwindow/llwindowmacosx.cpp
+++ b/indra/llwindow/llwindowmacosx.cpp
@@ -1485,6 +1485,11 @@ void LLWindowMacOSX::updateCursor()
 	
     if(mCurrentCursor == mNextCursor)
     {
+        if(mCursorHidden && mHideCursorPermanent && isCGCursorVisible())
+        {
+            hideNSCursor();            
+            adjustCursorDecouple();
+        }
         return;
     }
 
-- 
GitLab