summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorPhilipp Lohmann [pl] <Philipp.Lohmann@Oracle.COM>2011-03-15 17:37:20 +0100
committerPhilipp Lohmann [pl] <Philipp.Lohmann@Oracle.COM>2011-03-15 17:37:20 +0100
commit53483b25451545ced391cd0f3cf86e8d4b7e31c7 (patch)
tree370c6b4c59f003c566487ada1710c1ff39da3150 /vcl
parent7363d8a165443b6e8da150d193949e738daa9f05 (diff)
vcl121: #i117390# fix the fix for issue 80730
Diffstat (limited to 'vcl')
-rw-r--r--vcl/inc/vcl/cursor.hxx2
-rw-r--r--vcl/source/window/cursor.cxx17
-rw-r--r--vcl/source/window/window.cxx8
-rw-r--r--vcl/source/window/winproc.cxx4
4 files changed, 16 insertions, 15 deletions
diff --git a/vcl/inc/vcl/cursor.hxx b/vcl/inc/vcl/cursor.hxx
index c143e49002fa..11f00145c466 100644
--- a/vcl/inc/vcl/cursor.hxx
+++ b/vcl/inc/vcl/cursor.hxx
@@ -69,7 +69,7 @@ public:
SAL_DLLPRIVATE void ImplRestore();
DECL_DLLPRIVATE_LINK( ImplTimerHdl, AutoTimer* );
SAL_DLLPRIVATE void ImplShow( bool bDrawDirect = true, bool bRestore = false );
- SAL_DLLPRIVATE bool ImplHide();
+ SAL_DLLPRIVATE bool ImplHide( bool bStopTimer );
SAL_DLLPRIVATE void ImplNew();
public:
diff --git a/vcl/source/window/cursor.cxx b/vcl/source/window/cursor.cxx
index c59978077412..883010c3e8d7 100644
--- a/vcl/source/window/cursor.cxx
+++ b/vcl/source/window/cursor.cxx
@@ -216,7 +216,7 @@ void Cursor::ImplShow( bool bDrawDirect, bool bRestore )
// -----------------------------------------------------------------------
-bool Cursor::ImplHide()
+bool Cursor::ImplHide( bool i_bStopTimer )
{
bool bWasCurVisible = false;
if ( mpData && mpData->mpWindow )
@@ -225,6 +225,13 @@ bool Cursor::ImplHide()
if ( mpData->mbCurVisible )
ImplRestore();
}
+
+ if( mpData && i_bStopTimer )
+ {
+ mpData->maTimer.Stop();
+ mpData->mpWindow = NULL;
+ }
+
return bWasCurVisible;
}
@@ -328,13 +335,7 @@ void Cursor::Hide()
if ( mbVisible )
{
mbVisible = sal_False;
- ImplHide();
-
- if( mpData )
- {
- mpData->maTimer.Stop();
- mpData->mpWindow = NULL;
- }
+ ImplHide( true );
}
}
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index 96e787928772..792228d40459 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -2407,7 +2407,7 @@ void Window::ImplCallPaint( const Region* pRegion, sal_uInt16 nPaintFlags )
{
bool bRestoreCursor = false;
if ( mpWindowImpl->mpCursor )
- bRestoreCursor = mpWindowImpl->mpCursor->ImplHide();
+ bRestoreCursor = mpWindowImpl->mpCursor->ImplHide( false );
mbInitClipRegion = sal_True;
mpWindowImpl->mbInPaint = sal_True;
@@ -2896,7 +2896,7 @@ void Window::ImplScroll( const Rectangle& rRect,
ImplInvalidateAllOverlapBackgrounds();
if ( mpWindowImpl->mpCursor )
- mpWindowImpl->mpCursor->ImplHide();
+ mpWindowImpl->mpCursor->ImplHide( false );
sal_uInt16 nOrgFlags = nFlags;
if ( !(nFlags & (SCROLL_CHILDREN | SCROLL_NOCHILDREN)) )
@@ -4073,7 +4073,7 @@ void Window::ImplGrabFocus( sal_uInt16 nFlags )
{
// Cursor hiden
if ( pOldFocusWindow->mpWindowImpl->mpCursor )
- pOldFocusWindow->mpWindowImpl->mpCursor->ImplHide();
+ pOldFocusWindow->mpWindowImpl->mpCursor->ImplHide( true );
}
// !!!!! Wegen altem SV-Office Activate/Deavtivate Handling
@@ -8054,7 +8054,7 @@ void Window::SetCursor( Cursor* pCursor )
if ( mpWindowImpl->mpCursor != pCursor )
{
if ( mpWindowImpl->mpCursor )
- mpWindowImpl->mpCursor->ImplHide();
+ mpWindowImpl->mpCursor->ImplHide( true );
mpWindowImpl->mpCursor = pCursor;
if ( pCursor )
pCursor->ImplShow();
diff --git a/vcl/source/window/winproc.cxx b/vcl/source/window/winproc.cxx
index 9cb38756e770..171c1f3ff74d 100644
--- a/vcl/source/window/winproc.cxx
+++ b/vcl/source/window/winproc.cxx
@@ -1793,7 +1793,7 @@ IMPL_LINK( Window, ImplAsyncFocusHdl, void*, EMPTYARG )
pSVData->maWinData.mpFocusWin = NULL;
if ( pFocusWin->ImplGetWindowImpl()->mpCursor )
- pFocusWin->ImplGetWindowImpl()->mpCursor->ImplHide();
+ pFocusWin->ImplGetWindowImpl()->mpCursor->ImplHide( true );
// Deaktivate rufen
Window* pOldFocusWindow = pFocusWin;
@@ -1900,7 +1900,7 @@ static void ImplHandleLoseFocus( Window* pWindow )
Window* pFocusWin = pWindow->ImplGetWindowImpl()->mpFrameData->mpFocusWin;
if ( pFocusWin && pFocusWin->ImplGetWindowImpl()->mpCursor )
- pFocusWin->ImplGetWindowImpl()->mpCursor->ImplHide();
+ pFocusWin->ImplGetWindowImpl()->mpCursor->ImplHide( true );
if( bCallDirect )
pWindow->ImplAsyncFocusHdl( NULL );
}