diff options
Diffstat (limited to 'vcl/source/control/ctrl.cxx')
-rw-r--r-- | vcl/source/control/ctrl.cxx | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/vcl/source/control/ctrl.cxx b/vcl/source/control/ctrl.cxx index 26ef9b076d8c..dd887276ca5b 100644 --- a/vcl/source/control/ctrl.cxx +++ b/vcl/source/control/ctrl.cxx @@ -50,7 +50,7 @@ using namespace vcl; void Control::ImplInitControlData() { - mbHasFocus = sal_False; + mbHasControlFocus = sal_False; mpControlData = new ImplControlData; } @@ -304,9 +304,10 @@ long Control::Notify( NotifyEvent& rNEvt ) { if ( rNEvt.GetType() == EVENT_GETFOCUS ) { - if ( !mbHasFocus ) + if ( !mbHasControlFocus ) { - mbHasFocus = sal_True; + mbHasControlFocus = sal_True; + StateChanged( STATE_CHANGE_CONTROL_FOCUS ); if ( ImplCallEventListenersAndHandler( VCLEVENT_CONTROL_GETFOCUS, maGetFocusHdl, this ) ) // been destroyed within the handler return sal_True; @@ -319,7 +320,8 @@ long Control::Notify( NotifyEvent& rNEvt ) Window* pFocusWin = Application::GetFocusWindow(); if ( !pFocusWin || !ImplIsWindowOrChild( pFocusWin ) ) { - mbHasFocus = sal_False; + mbHasControlFocus = sal_False; + StateChanged( STATE_CHANGE_CONTROL_FOCUS ); if ( ImplCallEventListenersAndHandler( VCLEVENT_CONTROL_LOSEFOCUS, maLoseFocusHdl, this ) ) // been destroyed within the handler return sal_True; |