From bd5f895aa6831a842170b459e9c01ac1d7b747fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20A=C3=9Fmus?= Date: Wed, 11 Jan 2006 22:28:19 +0000 Subject: [PATCH] * made hiding and unhiding the cursor actually work git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15918 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/servers/app/drawing/HWInterface.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/servers/app/drawing/HWInterface.cpp b/src/servers/app/drawing/HWInterface.cpp index 411efb3d8c..80b7c56391 100644 --- a/src/servers/app/drawing/HWInterface.cpp +++ b/src/servers/app/drawing/HWInterface.cpp @@ -100,8 +100,22 @@ HWInterface::SetCursorVisible(bool visible) { if (WriteLock()) { if (fCursorVisible != visible) { - fCursorVisible = visible; - Invalidate(_CursorFrame()); + // NOTE: _CursorFrame() will + // return an invalid rect if + // fCursorVisible == false! + if (visible) { + fCursorVisible = visible; + BRect r = _CursorFrame(); + + _DrawCursor(r); + Invalidate(r); + } else { + BRect r = _CursorFrame(); + fCursorVisible = visible; + + _RestoreCursorArea(); + Invalidate(r); + } } WriteUnlock(); }