diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-11-15 10:18:43 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-11-15 12:13:42 +0100 |
commit | 5b74eb68113d3721e1a3f9fa40024bf9b2a15f0c (patch) | |
tree | 1c959ccc7769fd8530a16cc904b5424d04faa208 /vcl/source/window/mouse.cxx | |
parent | b4aa631867638b993fda98b1c4fcfc47e5c6a1aa (diff) |
loplugin:flatten in vcl
Change-Id: I3527477277a9ae96eaf9fd068232f672da7c28c3
Reviewed-on: https://gerrit.libreoffice.org/44753
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'vcl/source/window/mouse.cxx')
-rw-r--r-- | vcl/source/window/mouse.cxx | 185 |
1 files changed, 93 insertions, 92 deletions
diff --git a/vcl/source/window/mouse.cxx b/vcl/source/window/mouse.cxx index 311018a52366..44b520dfe931 100644 --- a/vcl/source/window/mouse.cxx +++ b/vcl/source/window/mouse.cxx @@ -275,118 +275,119 @@ void Window::ImplGrabFocus( GetFocusFlags nFlags ) pParent = pParent->mpWindowImpl->mpParent; } - if ( ( pSVData->maWinData.mpFocusWin.get() != this && - !mpWindowImpl->mbInDispose ) || - ( bAsyncFocusWaiting && !bHasFocus && !bMustNotGrabFocus ) ) - { - // EndExtTextInput if it is not the same window - if ( pSVData->maWinData.mpExtTextInputWin && - (pSVData->maWinData.mpExtTextInputWin.get() != this) ) - pSVData->maWinData.mpExtTextInputWin->EndExtTextInput(); + if ( !(( pSVData->maWinData.mpFocusWin.get() != this && + !mpWindowImpl->mbInDispose ) || + ( bAsyncFocusWaiting && !bHasFocus && !bMustNotGrabFocus )) ) + return; + + // EndExtTextInput if it is not the same window + if ( pSVData->maWinData.mpExtTextInputWin && + (pSVData->maWinData.mpExtTextInputWin.get() != this) ) + pSVData->maWinData.mpExtTextInputWin->EndExtTextInput(); - // mark this windows as the last FocusWindow - vcl::Window* pOverlapWindow = ImplGetFirstOverlapWindow(); - pOverlapWindow->mpWindowImpl->mpLastFocusWindow = this; - mpWindowImpl->mpFrameData->mpFocusWin = this; + // mark this windows as the last FocusWindow + vcl::Window* pOverlapWindow = ImplGetFirstOverlapWindow(); + pOverlapWindow->mpWindowImpl->mpLastFocusWindow = this; + mpWindowImpl->mpFrameData->mpFocusWin = this; - if( !bHasFocus ) + if( !bHasFocus ) + { + // menu windows never get the system focus + // the application will keep the focus + if( bMustNotGrabFocus ) + return; + else { - // menu windows never get the system focus - // the application will keep the focus - if( bMustNotGrabFocus ) - return; - else - { - // here we already switch focus as ToTop() - // should not give focus to another window - mpWindowImpl->mpFrame->ToTop( SalFrameToTop::GrabFocus | SalFrameToTop::GrabFocusOnly ); - return; - } + // here we already switch focus as ToTop() + // should not give focus to another window + mpWindowImpl->mpFrame->ToTop( SalFrameToTop::GrabFocus | SalFrameToTop::GrabFocusOnly ); + return; } + } - VclPtr<vcl::Window> pOldFocusWindow = pSVData->maWinData.mpFocusWin; + VclPtr<vcl::Window> pOldFocusWindow = pSVData->maWinData.mpFocusWin; - pSVData->maWinData.mpFocusWin = this; + pSVData->maWinData.mpFocusWin = this; - if ( pOldFocusWindow ) - { - // Cursor hidden - if ( pOldFocusWindow->mpWindowImpl->mpCursor ) - pOldFocusWindow->mpWindowImpl->mpCursor->ImplHide(); - } + if ( pOldFocusWindow ) + { + // Cursor hidden + if ( pOldFocusWindow->mpWindowImpl->mpCursor ) + pOldFocusWindow->mpWindowImpl->mpCursor->ImplHide(); + } - // !!!!! due to old SV-Office Activate/Deactivate handling - // !!!!! first as before - if ( pOldFocusWindow ) - { - // remember Focus - vcl::Window* pOldOverlapWindow = pOldFocusWindow->ImplGetFirstOverlapWindow(); - vcl::Window* pNewOverlapWindow = ImplGetFirstOverlapWindow(); - if ( pOldOverlapWindow != pNewOverlapWindow ) - ImplCallFocusChangeActivate( pNewOverlapWindow, pOldOverlapWindow ); - } - else + // !!!!! due to old SV-Office Activate/Deactivate handling + // !!!!! first as before + if ( pOldFocusWindow ) + { + // remember Focus + vcl::Window* pOldOverlapWindow = pOldFocusWindow->ImplGetFirstOverlapWindow(); + vcl::Window* pNewOverlapWindow = ImplGetFirstOverlapWindow(); + if ( pOldOverlapWindow != pNewOverlapWindow ) + ImplCallFocusChangeActivate( pNewOverlapWindow, pOldOverlapWindow ); + } + else + { + vcl::Window* pNewOverlapWindow = ImplGetFirstOverlapWindow(); + vcl::Window* pNewRealWindow = pNewOverlapWindow->ImplGetWindow(); + pNewOverlapWindow->mpWindowImpl->mbActive = true; + pNewOverlapWindow->Activate(); + if ( pNewRealWindow != pNewOverlapWindow ) { - vcl::Window* pNewOverlapWindow = ImplGetFirstOverlapWindow(); - vcl::Window* pNewRealWindow = pNewOverlapWindow->ImplGetWindow(); - pNewOverlapWindow->mpWindowImpl->mbActive = true; - pNewOverlapWindow->Activate(); - if ( pNewRealWindow != pNewOverlapWindow ) - { - pNewRealWindow->mpWindowImpl->mbActive = true; - pNewRealWindow->Activate(); - } + pNewRealWindow->mpWindowImpl->mbActive = true; + pNewRealWindow->Activate(); } + } + + // call Get- and LoseFocus + if ( pOldFocusWindow && ! pOldFocusWindow->IsDisposed() ) + { + if ( pOldFocusWindow->IsTracking() && + (pSVData->maWinData.mnTrackFlags & StartTrackingFlags::FocusCancel) ) + pOldFocusWindow->EndTracking( TrackingEventFlags::Cancel | TrackingEventFlags::Focus ); + NotifyEvent aNEvt( MouseNotifyEvent::LOSEFOCUS, pOldFocusWindow ); + if ( !ImplCallPreNotify( aNEvt ) ) + pOldFocusWindow->CompatLoseFocus(); + pOldFocusWindow->ImplCallDeactivateListeners( this ); + } - // call Get- and LoseFocus - if ( pOldFocusWindow && ! pOldFocusWindow->IsDisposed() ) + if ( pSVData->maWinData.mpFocusWin.get() == this ) + { + if ( mpWindowImpl->mpSysObj ) { - if ( pOldFocusWindow->IsTracking() && - (pSVData->maWinData.mnTrackFlags & StartTrackingFlags::FocusCancel) ) - pOldFocusWindow->EndTracking( TrackingEventFlags::Cancel | TrackingEventFlags::Focus ); - NotifyEvent aNEvt( MouseNotifyEvent::LOSEFOCUS, pOldFocusWindow ); - if ( !ImplCallPreNotify( aNEvt ) ) - pOldFocusWindow->CompatLoseFocus(); - pOldFocusWindow->ImplCallDeactivateListeners( this ); + mpWindowImpl->mpFrameData->mpFocusWin = this; + if ( !mpWindowImpl->mpFrameData->mbInSysObjFocusHdl ) + mpWindowImpl->mpSysObj->GrabFocus(); } if ( pSVData->maWinData.mpFocusWin.get() == this ) { - if ( mpWindowImpl->mpSysObj ) + if ( mpWindowImpl->mpCursor ) + mpWindowImpl->mpCursor->ImplShow(); + mpWindowImpl->mbInFocusHdl = true; + mpWindowImpl->mnGetFocusFlags = nFlags; + // if we're changing focus due to closing a popup floating window + // notify the new focus window so it can restore the inner focus + // eg, toolboxes can select their recent active item + if( pOldFocusWindow && + ! pOldFocusWindow->IsDisposed() && + ( pOldFocusWindow->GetDialogControlFlags() & DialogControlFlags::FloatWinPopupModeEndCancel ) ) + mpWindowImpl->mnGetFocusFlags |= GetFocusFlags::FloatWinPopupModeEndCancel; + NotifyEvent aNEvt( MouseNotifyEvent::GETFOCUS, this ); + if ( !ImplCallPreNotify( aNEvt ) && !xWindow->IsDisposed() ) + CompatGetFocus(); + if( !xWindow->IsDisposed() ) + ImplCallActivateListeners( (pOldFocusWindow && ! pOldFocusWindow->IsDisposed()) ? pOldFocusWindow : nullptr ); + if( !xWindow->IsDisposed() ) { - mpWindowImpl->mpFrameData->mpFocusWin = this; - if ( !mpWindowImpl->mpFrameData->mbInSysObjFocusHdl ) - mpWindowImpl->mpSysObj->GrabFocus(); - } - - if ( pSVData->maWinData.mpFocusWin.get() == this ) - { - if ( mpWindowImpl->mpCursor ) - mpWindowImpl->mpCursor->ImplShow(); - mpWindowImpl->mbInFocusHdl = true; - mpWindowImpl->mnGetFocusFlags = nFlags; - // if we're changing focus due to closing a popup floating window - // notify the new focus window so it can restore the inner focus - // eg, toolboxes can select their recent active item - if( pOldFocusWindow && - ! pOldFocusWindow->IsDisposed() && - ( pOldFocusWindow->GetDialogControlFlags() & DialogControlFlags::FloatWinPopupModeEndCancel ) ) - mpWindowImpl->mnGetFocusFlags |= GetFocusFlags::FloatWinPopupModeEndCancel; - NotifyEvent aNEvt( MouseNotifyEvent::GETFOCUS, this ); - if ( !ImplCallPreNotify( aNEvt ) && !xWindow->IsDisposed() ) - CompatGetFocus(); - if( !xWindow->IsDisposed() ) - ImplCallActivateListeners( (pOldFocusWindow && ! pOldFocusWindow->IsDisposed()) ? pOldFocusWindow : nullptr ); - if( !xWindow->IsDisposed() ) - { - mpWindowImpl->mnGetFocusFlags = GetFocusFlags::NONE; - mpWindowImpl->mbInFocusHdl = false; - } + mpWindowImpl->mnGetFocusFlags = GetFocusFlags::NONE; + mpWindowImpl->mbInFocusHdl = false; } } - - ImplNewInputContext(); } + + ImplNewInputContext(); + } void Window::ImplGrabFocusToDocument( GetFocusFlags nFlags ) |