summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorIvo Hinkelmann <ihi@openoffice.org>2011-03-29 13:32:39 +0200
committerIvo Hinkelmann <ihi@openoffice.org>2011-03-29 13:32:39 +0200
commit4c2b65f2c0966fa8528dcf0eac25168ced65b633 (patch)
tree26441677570017b1fb7bc5c5d9210cfdc0bad616 /vcl
parent9d5e820097199b5ab5ebd17460a5bb068471e52e (diff)
parent9d21dcfb439830e1d8e7f128593f57b7e978e2ec (diff)
CWS-TOOLING: integrate CWS vcl121
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 795bea17a3b9..b29f81f84e8e 100644
--- a/vcl/source/window/winproc.cxx
+++ b/vcl/source/window/winproc.cxx
@@ -1799,7 +1799,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;
@@ -1906,7 +1906,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 );
}