diff --git a/src/servers/app/Desktop.cpp b/src/servers/app/Desktop.cpp index 66346bd8cd..76df51e5d1 100644 --- a/src/servers/app/Desktop.cpp +++ b/src/servers/app/Desktop.cpp @@ -475,10 +475,6 @@ Desktop::SetCursor(ServerCursor* newCursor) if (newCursor == NULL) newCursor = fCursorManager.GetCursor(B_CURSOR_DEFAULT); - ServerCursorReference oldCursor = Cursor(); - if (newCursor == oldCursor.Cursor()) - return; - HWInterface()->SetCursor(newCursor); } diff --git a/src/servers/app/ServerCursor.h b/src/servers/app/ServerCursor.h index e6d7b2a2b3..30c87d75b9 100644 --- a/src/servers/app/ServerCursor.h +++ b/src/servers/app/ServerCursor.h @@ -65,66 +65,7 @@ private: }; -class ServerCursorReference { -public: - ServerCursorReference() - : - fCursor(NULL) - { - } - - ServerCursorReference(ServerCursor* cursor) - : - fCursor(cursor) - { - if (fCursor) - fCursor->AcquireReference(); - } - - ServerCursorReference(const ServerCursorReference& other) - : - fCursor(other.fCursor) - { - if (fCursor) - fCursor->AcquireReference(); - } - - virtual ~ServerCursorReference() - { - if (fCursor) - fCursor->ReleaseReference(); - } - - ServerCursorReference& operator=(const ServerCursorReference& other) - { - SetCursor(other.fCursor); - return *this; - } - - void SetCursor(ServerCursor* cursor) - { - if (fCursor == cursor) - return; - - if (cursor) - cursor->AcquireReference(); - - ServerCursor* oldCursor = fCursor; - - fCursor = cursor; - - if (oldCursor) - oldCursor->ReleaseReference(); - } - - ServerCursor* Cursor() const - { - return fCursor; - } - -private: - ServerCursor* fCursor; -}; +typedef BReference ServerCursorReference; #endif // SERVER_CURSOR_H diff --git a/src/servers/app/drawing/DrawingEngine.cpp b/src/servers/app/drawing/DrawingEngine.cpp index 91cd4de7c7..1dc46ab635 100644 --- a/src/servers/app/drawing/DrawingEngine.cpp +++ b/src/servers/app/drawing/DrawingEngine.cpp @@ -1380,7 +1380,7 @@ DrawingEngine::ReadBitmap(ServerBitmap* bitmap, bool drawCursor, BRect bounds) if (drawCursor) { ServerCursorReference cursorRef = fGraphicsCard->Cursor(); - ServerCursor* cursor = cursorRef.Cursor(); + ServerCursor* cursor = cursorRef.Get(); if (!cursor) return result; int32 cursorWidth = cursor->Width(); diff --git a/src/servers/app/drawing/remote/RemoteHWInterface.cpp b/src/servers/app/drawing/remote/RemoteHWInterface.cpp index 18fe8327f0..5d1623f50f 100644 --- a/src/servers/app/drawing/remote/RemoteHWInterface.cpp +++ b/src/servers/app/drawing/remote/RemoteHWInterface.cpp @@ -488,7 +488,7 @@ RemoteHWInterface::SetCursor(ServerCursor* cursor) HWInterface::SetCursor(cursor); RemoteMessage message(NULL, fSendBuffer); message.Start(RP_SET_CURSOR); - message.AddCursor(Cursor().Cursor()); + message.AddCursor(Cursor().Get()); } @@ -520,7 +520,7 @@ RemoteHWInterface::SetDragBitmap(const ServerBitmap* bitmap, HWInterface::SetDragBitmap(bitmap, offsetFromCursor); RemoteMessage message(NULL, fSendBuffer); message.Start(RP_SET_CURSOR); - message.AddCursor(CursorAndDragBitmap().Cursor()); + message.AddCursor(CursorAndDragBitmap().Get()); }