From 6ebbf01f47d6cc686c119cdd7818794b42cd39f7 Mon Sep 17 00:00:00 2001 From: David Elliott Date: Sun, 19 Aug 2007 04:01:13 +0000 Subject: [PATCH] Make SetCursor work. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48171 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/cocoa/window.mm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/cocoa/window.mm b/src/cocoa/window.mm index 5b881d3c0f..390d250a93 100644 --- a/src/cocoa/window.mm +++ b/src/cocoa/window.mm @@ -839,7 +839,15 @@ bool wxWindowCocoa::SetCursor(const wxCursor &cursor) { if(!wxWindowBase::SetCursor(cursor)) return false; + + // Set up the cursor rect so that invalidateCursorRectsForView: will destroy it. + // If we don't do this then Cocoa thinks (rightly) that we don't have any cursor + // rects and thus won't ever call resetCursorRects. + [GetNSView() addCursorRect: [GetNSView() visibleRect] cursor: m_cursor.GetNSCursor()]; + // Invalidate the cursor rects so the cursor will change + // Note that it is not enough to remove the old one (if any) and add the new one. + // For the rects to work properly, Cocoa itself must call resetCursorRects. [[GetNSView() window] invalidateCursorRectsForView:GetNSView()]; return true; } -- 2.47.2