diff options
Diffstat (limited to 'vcl/source/window')
-rw-r--r-- | vcl/source/window/brdwin.cxx | 2 | ||||
-rw-r--r-- | vcl/source/window/cursor.cxx | 3 | ||||
-rw-r--r-- | vcl/source/window/dialog.cxx | 88 | ||||
-rw-r--r-- | vcl/source/window/event.cxx | 16 | ||||
-rw-r--r-- | vcl/source/window/floatwin.cxx | 24 | ||||
-rw-r--r-- | vcl/source/window/menu.cxx | 7 | ||||
-rw-r--r-- | vcl/source/window/menubarwindow.cxx | 12 | ||||
-rw-r--r-- | vcl/source/window/menufloatingwindow.cxx | 2 | ||||
-rw-r--r-- | vcl/source/window/mouse.cxx | 42 | ||||
-rw-r--r-- | vcl/source/window/msgbox.cxx | 10 | ||||
-rw-r--r-- | vcl/source/window/scrwnd.cxx | 6 | ||||
-rw-r--r-- | vcl/source/window/stacking.cxx | 2 | ||||
-rw-r--r-- | vcl/source/window/syswin.cxx | 4 | ||||
-rw-r--r-- | vcl/source/window/taskpanelist.cxx | 44 | ||||
-rw-r--r-- | vcl/source/window/toolbox.cxx | 4 | ||||
-rw-r--r-- | vcl/source/window/window.cxx | 85 | ||||
-rw-r--r-- | vcl/source/window/window2.cxx | 60 | ||||
-rw-r--r-- | vcl/source/window/winproc.cxx | 180 | ||||
-rw-r--r-- | vcl/source/window/wrkwin.cxx | 11 |
19 files changed, 306 insertions, 296 deletions
diff --git a/vcl/source/window/brdwin.cxx b/vcl/source/window/brdwin.cxx index 08121d571ac5..9248f65c1955 100644 --- a/vcl/source/window/brdwin.cxx +++ b/vcl/source/window/brdwin.cxx @@ -1708,7 +1708,7 @@ void ImplBorderWindow::Deactivate() { // remove active windows from the ruler, also ignore the Deactivate // if a menu becomes active - if ( GetActivateMode() != ActivateModeFlags::NONE && !ImplGetSVData()->maWinData.mbNoDeactivate ) + if (GetActivateMode() != ActivateModeFlags::NONE && !ImplGetSVData()->mpWinData->mbNoDeactivate) SetDisplayActive( false ); Window::Deactivate(); } diff --git a/vcl/source/window/cursor.cxx b/vcl/source/window/cursor.cxx index 3504f86b3924..f4cb6f52e13f 100644 --- a/vcl/source/window/cursor.cxx +++ b/vcl/source/window/cursor.cxx @@ -47,6 +47,9 @@ struct ImplCursorData static void ImplCursorInvert( ImplCursorData const * pData ) { vcl::Window* pWindow = pData->mpWindow; + if (!pWindow || pWindow->IsDisposed()) + return; + std::unique_ptr<PaintBufferGuard> pGuard; const bool bDoubleBuffering = pWindow->SupportsDoubleBuffering(); if (bDoubleBuffering) diff --git a/vcl/source/window/dialog.cxx b/vcl/source/window/dialog.cxx index d3710414385b..79e2cd95300d 100644 --- a/vcl/source/window/dialog.cxx +++ b/vcl/source/window/dialog.cxx @@ -403,14 +403,14 @@ vcl::Window* Dialog::GetDefaultParent(WinBits nStyle) { vcl::Window* pParent = Application::GetDefDialogParent(); if (!pParent && !(nStyle & WB_SYSTEMWINDOW)) - pParent = ImplGetSVData()->maWinData.mpAppWin; + pParent = ImplGetSVData()->maFrameData.mpAppWin; // If Parent is disabled, then we search for a modal dialog // in this frame if (pParent && (!pParent->IsInputEnabled() || pParent->IsInModalMode())) { ImplSVData* pSVData = ImplGetSVData(); - auto& rExecuteDialogs = pSVData->maWinData.mpExecuteDialogs; + auto& rExecuteDialogs = pSVData->mpWinData->mpExecuteDialogs; auto it = std::find_if(rExecuteDialogs.rbegin(), rExecuteDialogs.rend(), [&pParent](VclPtr<Dialog>& rDialogPtr) { return pParent->ImplGetFirstOverlapWindow()->IsWindowOrChild(rDialogPtr, true) && @@ -912,8 +912,8 @@ bool Dialog::ImplStartExecute() if (bModal && GetLOKNotifier()) { // check if there's already some dialog being ::Execute()d - const bool bDialogExecuting = std::any_of(pSVData->maWinData.mpExecuteDialogs.begin(), - pSVData->maWinData.mpExecuteDialogs.end(), + const bool bDialogExecuting = std::any_of(pSVData->mpWinData->mpExecuteDialogs.begin(), + pSVData->mpWinData->mpExecuteDialogs.end(), [](const Dialog* pDialog) { return pDialog->IsInSyncExecute(); }); @@ -923,15 +923,15 @@ bool Dialog::ImplStartExecute() SAL_WARN("lok.dialog", "Dialog \"" << ImplGetDialogText(this) << "\" is being synchronously executed over an existing synchronously executing dialog."); } - SAL_INFO( - "vcl", - "Dialog \"" << ImplGetDialogText(this) - << "\"cancelled in silent mode"); - return false; - default: // default cannot happen - case Application::DialogCancelMode::Fatal: - std::abort(); - } + SAL_INFO( + "vcl", + "Dialog \"" << ImplGetDialogText(this) + << "\"cancelled in silent mode"); + return false; + default: // default cannot happen + case Application::DialogCancelMode::Fatal: + std::abort(); + } if (bKitActive) { @@ -947,29 +947,29 @@ bool Dialog::ImplStartExecute() } #ifdef DBG_UTIL - vcl::Window* pParent = GetParent(); - if ( pParent ) - { - pParent = pParent->ImplGetFirstOverlapWindow(); - SAL_WARN_IF( !pParent->IsReallyVisible(), "vcl", - "Dialog::StartExecuteModal() - Parent not visible" ); - SAL_WARN_IF( !pParent->IsInputEnabled(), "vcl", - "Dialog::StartExecuteModal() - Parent input disabled, use another parent to ensure modality!" ); - SAL_WARN_IF( pParent->IsInModalMode(), "vcl", - "Dialog::StartExecuteModal() - Parent already modally disabled, use another parent to ensure modality!" ); + vcl::Window* pParent = GetParent(); + if ( pParent ) + { + pParent = pParent->ImplGetFirstOverlapWindow(); + SAL_WARN_IF( !pParent->IsReallyVisible(), "vcl", + "Dialog::StartExecuteModal() - Parent not visible" ); + SAL_WARN_IF( !pParent->IsInputEnabled(), "vcl", + "Dialog::StartExecuteModal() - Parent input disabled, use another parent to ensure modality!" ); + SAL_WARN_IF( pParent->IsInModalMode(), "vcl", + "Dialog::StartExecuteModal() - Parent already modally disabled, use another parent to ensure modality!" ); - } + } #endif - // link all dialogs which are being executed - pSVData->maWinData.mpExecuteDialogs.push_back(this); + // link all dialogs which are being executed + pSVData->mpWinData->mpExecuteDialogs.push_back(this); - // stop capturing, in order to have control over the dialog - if ( pSVData->maWinData.mpTrackWin ) - pSVData->maWinData.mpTrackWin->EndTracking( TrackingEventFlags::Cancel ); - if ( pSVData->maWinData.mpCaptureWin ) - pSVData->maWinData.mpCaptureWin->ReleaseMouse(); - EnableInput(); + // stop capturing, in order to have control over the dialog + if (pSVData->mpWinData->mpTrackWin) + pSVData->mpWinData->mpTrackWin->EndTracking(TrackingEventFlags::Cancel); + if (pSVData->mpWinData->mpCaptureWin) + pSVData->mpWinData->mpCaptureWin->ReleaseMouse(); + EnableInput(); if ( GetParent() ) { @@ -1117,6 +1117,7 @@ short Dialog::Execute() #else return RET_OK; + #endif } @@ -1140,7 +1141,7 @@ bool Dialog::StartExecuteAsync( VclAbstractDialog::AsyncContext &rCtx ) void Dialog::RemoveFromDlgList() { ImplSVData* pSVData = ImplGetSVData(); - auto& rExecuteDialogs = pSVData->maWinData.mpExecuteDialogs; + auto& rExecuteDialogs = pSVData->mpWinData->mpExecuteDialogs; // remove dialog from the list of dialogs which are being executed rExecuteDialogs.erase(std::remove_if(rExecuteDialogs.begin(), rExecuteDialogs.end(), [this](VclPtr<Dialog>& dialog){ return dialog.get() == this; }), rExecuteDialogs.end()); @@ -1159,14 +1160,14 @@ void Dialog::EndDialog( long nResult ) { SetModalInputMode(false); - RemoveFromDlgList(); + RemoveFromDlgList(); - // set focus to previous modal dialogue if it is modal for - // the same frame parent (or NULL) - ImplSVData* pSVData = ImplGetSVData(); - if (!pSVData->maWinData.mpExecuteDialogs.empty()) - { - VclPtr<Dialog> pPrevious = pSVData->maWinData.mpExecuteDialogs.back(); + // set focus to previous modal dialogue if it is modal for + // the same frame parent (or NULL) + ImplSVData* pSVData = ImplGetSVData(); + if (!pSVData->mpWinData->mpExecuteDialogs.empty()) + { + VclPtr<Dialog> pPrevious = pSVData->mpWinData->mpExecuteDialogs.back(); vcl::Window* pFrameParent = ImplGetFrameWindow()->ImplGetParent(); vcl::Window* pPrevFrameParent = pPrevious->ImplGetFrameWindow()? pPrevious->ImplGetFrameWindow()->ImplGetParent(): nullptr; @@ -1201,7 +1202,6 @@ void Dialog::EndDialog( long nResult ) mpDialogImpl->mbStartedModal = false; mpDialogImpl->mnResult = -1; } - mbInExecute = false; if ( mpDialogImpl ) @@ -1216,7 +1216,7 @@ void Dialog::EndDialog( long nResult ) void Dialog::EndAllDialogs( vcl::Window const * pParent ) { ImplSVData* pSVData = ImplGetSVData(); - auto& rExecuteDialogs = pSVData->maWinData.mpExecuteDialogs; + auto& rExecuteDialogs = pSVData->mpWinData->mpExecuteDialogs; for (auto it = rExecuteDialogs.rbegin(); it != rExecuteDialogs.rend(); ++it) { @@ -1231,7 +1231,7 @@ void Dialog::EndAllDialogs( vcl::Window const * pParent ) VclPtr<Dialog> Dialog::GetMostRecentExecutingDialog() { ImplSVData* pSVData = ImplGetSVData(); - auto& rExecuteDialogs = pSVData->maWinData.mpExecuteDialogs; + auto& rExecuteDialogs = pSVData->mpWinData->mpExecuteDialogs; if (!rExecuteDialogs.empty()) return rExecuteDialogs.back(); return nullptr; @@ -1254,7 +1254,7 @@ void Dialog::ImplSetModalInputMode( bool bModal ) // previously Execute()'d dialog - the one below the top-most one VclPtr<Dialog> pPrevious; ImplSVData* pSVData = ImplGetSVData(); - auto& rExecuteDialogs = pSVData->maWinData.mpExecuteDialogs; + auto& rExecuteDialogs = pSVData->mpWinData->mpExecuteDialogs; if (rExecuteDialogs.size() > 1) pPrevious = rExecuteDialogs[rExecuteDialogs.size() - 2]; diff --git a/vcl/source/window/event.cxx b/vcl/source/window/event.cxx index 399dddd3abaa..797d40a79912 100644 --- a/vcl/source/window/event.cxx +++ b/vcl/source/window/event.cxx @@ -584,29 +584,29 @@ void Window::ImplCallFocusChangeActivate( vcl::Window* pNewOverlapWindow, if ( (pNewRealWindow->GetType() == WindowType::FLOATINGWINDOW) && pNewRealWindow->GetActivateMode() == ActivateModeFlags::NONE) { - pSVData->maWinData.mpLastDeacWin = pOldOverlapWindow; + pSVData->mpWinData->mpLastDeacWin = pOldOverlapWindow; bCallDeactivate = false; } } else if ( (pNewRealWindow->GetType() != WindowType::FLOATINGWINDOW) || pNewRealWindow->GetActivateMode() != ActivateModeFlags::NONE ) { - if ( pSVData->maWinData.mpLastDeacWin ) + if (pSVData->mpWinData->mpLastDeacWin) { - if ( pSVData->maWinData.mpLastDeacWin.get() == pNewOverlapWindow ) + if (pSVData->mpWinData->mpLastDeacWin.get() == pNewOverlapWindow) bCallActivate = false; else { - vcl::Window* pLastRealWindow = pSVData->maWinData.mpLastDeacWin->ImplGetWindow(); - pSVData->maWinData.mpLastDeacWin->mpWindowImpl->mbActive = false; - pSVData->maWinData.mpLastDeacWin->Deactivate(); - if ( pLastRealWindow != pSVData->maWinData.mpLastDeacWin.get() ) + vcl::Window* pLastRealWindow = pSVData->mpWinData->mpLastDeacWin->ImplGetWindow(); + pSVData->mpWinData->mpLastDeacWin->mpWindowImpl->mbActive = false; + pSVData->mpWinData->mpLastDeacWin->Deactivate(); + if (pLastRealWindow != pSVData->mpWinData->mpLastDeacWin.get()) { pLastRealWindow->mpWindowImpl->mbActive = true; pLastRealWindow->Activate(); } } - pSVData->maWinData.mpLastDeacWin = nullptr; + pSVData->mpWinData->mpLastDeacWin = nullptr; } } diff --git a/vcl/source/window/floatwin.cxx b/vcl/source/window/floatwin.cxx index 8257aeea7d7d..bef5dfc13069 100644 --- a/vcl/source/window/floatwin.cxx +++ b/vcl/source/window/floatwin.cxx @@ -65,7 +65,7 @@ void FloatingWindow::ImplInit( vcl::Window* pParent, WinBits nStyle ) SAL_WARN_IF(!pParent, "vcl", "FloatWindow::FloatingWindow(): - pParent == NULL!"); if (!pParent) - pParent = ImplGetSVData()->maWinData.mpAppWin; + pParent = ImplGetSVData()->maFrameData.mpAppWin; SAL_WARN_IF(!pParent, "vcl", "FloatWindow::FloatingWindow(): - pParent == NULL and no AppWindow exists"); @@ -391,7 +391,7 @@ Point FloatingWindow::ImplCalcPos(vcl::Window* pWindow, default: break; } - // no further adjustment for LibreOfficeKit + // no further adjustement for LibreOfficeKit if (bLOKActive) break; @@ -768,8 +768,8 @@ void FloatingWindow::StartPopupMode( const tools::Rectangle& rRect, FloatWinPopu // add FloatingWindow to list of windows that are in popup mode ImplSVData* pSVData = ImplGetSVData(); - mpNextFloat = pSVData->maWinData.mpFirstFloat; - pSVData->maWinData.mpFirstFloat = this; + mpNextFloat = pSVData->mpWinData->mpFirstFloat; + pSVData->mpWinData->mpFirstFloat = this; if (nFlags & FloatWinPopupFlags::GrabFocus) { // force key input even without focus (useful for menus) @@ -826,11 +826,11 @@ void FloatingWindow::ImplEndPopupMode( FloatWinPopupEndFlags nFlags, const VclPt mbInCleanUp = true; // prevent killing this window due to focus change while working with it // stop the PopupMode also for all following PopupMode windows - while ( pSVData->maWinData.mpFirstFloat && pSVData->maWinData.mpFirstFloat.get() != this ) - pSVData->maWinData.mpFirstFloat->EndPopupMode( FloatWinPopupEndFlags::Cancel ); + while (pSVData->mpWinData->mpFirstFloat && pSVData->mpWinData->mpFirstFloat.get() != this) + pSVData->mpWinData->mpFirstFloat->EndPopupMode(FloatWinPopupEndFlags::Cancel); // delete window from the list - pSVData->maWinData.mpFirstFloat = mpNextFloat; + pSVData->mpWinData->mpFirstFloat = mpNextFloat; mpNextFloat = nullptr; FloatWinPopupFlags nPopupModeFlags = mnPopupModeFlags; @@ -846,11 +846,11 @@ void FloatingWindow::ImplEndPopupMode( FloatWinPopupEndFlags nFlags, const VclPt // restore focus to previous focus window if we still have the focus Window::EndSaveFocus(xFocusId); } - else if ( pSVData->maWinData.mpFocusWin && pSVData->maWinData.mpFirstFloat && - ImplIsWindowOrChild( pSVData->maWinData.mpFocusWin ) ) + else if ( pSVData->mpWinData->mpFocusWin && pSVData->mpWinData->mpFirstFloat && + ImplIsWindowOrChild( pSVData->mpWinData->mpFocusWin ) ) { // maybe pass focus on to a suitable FloatingWindow - pSVData->maWinData.mpFirstFloat->GrabFocus(); + pSVData->mpWinData->mpFirstFloat->GrabFocus(); } mbPopupModeCanceled = bool(nFlags & FloatWinPopupEndFlags::Cancel); @@ -878,9 +878,9 @@ void FloatingWindow::ImplEndPopupMode( FloatWinPopupEndFlags nFlags, const VclPt { if ( !(nPopupModeFlags & FloatWinPopupFlags::NewLevel) ) { - if ( pSVData->maWinData.mpFirstFloat ) + if (pSVData->mpWinData->mpFirstFloat) { - FloatingWindow* pLastLevelFloat = pSVData->maWinData.mpFirstFloat->ImplFindLastLevelFloat(); + FloatingWindow* pLastLevelFloat = pSVData->mpWinData->mpFirstFloat->ImplFindLastLevelFloat(); pLastLevelFloat->EndPopupMode( FloatWinPopupEndFlags::Cancel | FloatWinPopupEndFlags::CloseAll ); } } diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx index 2385f432c666..28a11d25c17e 100644 --- a/vcl/source/window/menu.cxx +++ b/vcl/source/window/menu.cxx @@ -2850,15 +2850,16 @@ sal_uInt16 PopupMenu::ImplExecute( const VclPtr<vcl::Window>& pW, const tools::R bool bRealExecute = false; if ( !pStartedFrom ) { - pSVData->maWinData.mbNoDeactivate = true; + pSVData->mpWinData->mbNoDeactivate = true; xFocusId = Window::SaveFocus(); bRealExecute = true; } else { // assure that only one menu is open at a time - if (pStartedFrom->IsMenuBar() && pSVData->maWinData.mpFirstFloat) - pSVData->maWinData.mpFirstFloat->EndPopupMode( FloatWinPopupEndFlags::Cancel | FloatWinPopupEndFlags::CloseAll ); + if (pStartedFrom->IsMenuBar() && pSVData->mpWinData->mpFirstFloat) + pSVData->mpWinData->mpFirstFloat->EndPopupMode(FloatWinPopupEndFlags::Cancel + | FloatWinPopupEndFlags::CloseAll); } SAL_WARN_IF( ImplGetWindow(), "vcl", "Win?!" ); diff --git a/vcl/source/window/menubarwindow.cxx b/vcl/source/window/menubarwindow.cxx index 1873570b693f..4eebd3652bbd 100644 --- a/vcl/source/window/menubarwindow.cxx +++ b/vcl/source/window/menubarwindow.cxx @@ -481,13 +481,13 @@ void MenuBarWindow::ChangeHighlightItem( sal_uInt16 n, bool bSelectEntry, bool b bool bJustActivated = false; if ( ( nHighlightedItem == ITEMPOS_INVALID ) && ( n != ITEMPOS_INVALID ) ) { - ImplGetSVData()->maWinData.mbNoDeactivate = true; + ImplGetSVData()->mpWinData->mbNoDeactivate = true; // #105406# avoid saving the focus when we already have the focus - bool bNoSaveFocus = (this == ImplGetSVData()->maWinData.mpFocusWin.get() ); + bool bNoSaveFocus = (this == ImplGetSVData()->mpWinData->mpFocusWin.get()); if( xSaveFocusId != nullptr ) { - if( !ImplGetSVData()->maWinData.mbNoSaveFocus ) + if (!ImplGetSVData()->mpWinData->mbNoSaveFocus) { xSaveFocusId = nullptr; if( !bNoSaveFocus ) @@ -512,8 +512,8 @@ void MenuBarWindow::ChangeHighlightItem( sal_uInt16 n, bool bSelectEntry, bool b pMenu->bInCallback = true; pMenu->Deactivate(); pMenu->bInCallback = false; - ImplGetSVData()->maWinData.mbNoDeactivate = false; - if( !ImplGetSVData()->maWinData.mbNoSaveFocus ) + ImplGetSVData()->mpWinData->mbNoDeactivate = false; + if (!ImplGetSVData()->mpWinData->mbNoSaveFocus) { VclPtr<vcl::Window> xTempFocusId; if (xSaveFocusId && !xSaveFocusId->isDisposed()) @@ -526,7 +526,7 @@ void MenuBarWindow::ChangeHighlightItem( sal_uInt16 n, bool bSelectEntry, bool b // focus window, so we could avoid sending superfluous activate events // to top window listeners. if (xTempFocusId || bDefaultToDocument) - ImplGetSVData()->maWinData.mpFocusWin = this; + ImplGetSVData()->mpWinData->mpFocusWin = this; // #105406# restore focus to document if we could not save focus before if (!xTempFocusId && bDefaultToDocument) diff --git a/vcl/source/window/menufloatingwindow.cxx b/vcl/source/window/menufloatingwindow.cxx index 9a6728766672..8db82d51477a 100644 --- a/vcl/source/window/menufloatingwindow.cxx +++ b/vcl/source/window/menufloatingwindow.cxx @@ -442,7 +442,7 @@ void MenuFloatingWindow::End() xSaveFocusId = nullptr; if (xFocusId != nullptr && MenuInHierarchyHasFocus()) { - ImplGetSVData()->maWinData.mbNoDeactivate = false; + ImplGetSVData()->mpWinData->mbNoDeactivate = false; Window::EndSaveFocus(xFocusId); } diff --git a/vcl/source/window/mouse.cxx b/vcl/source/window/mouse.cxx index 98cb27322aee..01adba1a2b80 100644 --- a/vcl/source/window/mouse.cxx +++ b/vcl/source/window/mouse.cxx @@ -147,7 +147,7 @@ void Window::ImplCallMouseMove( sal_uInt16 nMouseCode, bool bModChanged ) bLeave = ((nX < 0) || (nY < 0) || (nX >= mpWindowImpl->mpFrameWindow->mnOutWidth) || (nY >= mpWindowImpl->mpFrameWindow->mnOutHeight)) && - !ImplGetSVData()->maWinData.mpCaptureWin; + !ImplGetSVData()->mpWinData->mpCaptureWin; nMode |= MouseEventModifiers::SYNTHETIC; if ( bModChanged ) nMode |= MouseEventModifiers::MODIFIERCHANGED; @@ -165,7 +165,7 @@ void Window::ImplGenerateMouseMove() IMPL_LINK_NOARG(Window, ImplGenerateMouseMoveHdl, void*, void) { mpWindowImpl->mpFrameData->mnMouseMoveId = nullptr; - vcl::Window* pCaptureWin = ImplGetSVData()->maWinData.mpCaptureWin; + vcl::Window* pCaptureWin = ImplGetSVData()->mpWinData->mpCaptureWin; if( ! pCaptureWin || (pCaptureWin->mpWindowImpl && pCaptureWin->mpWindowImpl->mpFrame == mpWindowImpl->mpFrame) ) @@ -252,7 +252,7 @@ void Window::ImplGrabFocus( GetFocusFlags nFlags ) ImplSVData* pSVData = ImplGetSVData(); bool bAsyncFocusWaiting = false; - vcl::Window *pFrame = pSVData->maWinData.mpFirstFrame; + vcl::Window *pFrame = pSVData->maFrameData.mpFirstFrame; while( pFrame ) { if( pFrame != mpWindowImpl->mpFrameWindow.get() && pFrame->mpWindowImpl->mpFrameData->mnFocusId ) @@ -279,15 +279,15 @@ void Window::ImplGrabFocus( GetFocusFlags nFlags ) pParent = pParent->mpWindowImpl->mpParent; } - if ( !(( pSVData->maWinData.mpFocusWin.get() != this && + if ( !(( pSVData->mpWinData->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(); + if (pSVData->mpWinData->mpExtTextInputWin + && (pSVData->mpWinData->mpExtTextInputWin.get() != this)) + pSVData->mpWinData->mpExtTextInputWin->EndExtTextInput(); // mark this windows as the last FocusWindow vcl::Window* pOverlapWindow = ImplGetFirstOverlapWindow(); @@ -309,9 +309,9 @@ void Window::ImplGrabFocus( GetFocusFlags nFlags ) } } - VclPtr<vcl::Window> pOldFocusWindow = pSVData->maWinData.mpFocusWin; + VclPtr<vcl::Window> pOldFocusWindow = pSVData->mpWinData->mpFocusWin; - pSVData->maWinData.mpFocusWin = this; + pSVData->mpWinData->mpFocusWin = this; if ( pOldFocusWindow ) { @@ -346,16 +346,16 @@ void Window::ImplGrabFocus( GetFocusFlags nFlags ) // call Get- and LoseFocus if ( pOldFocusWindow && ! pOldFocusWindow->IsDisposed() ) { - if ( pOldFocusWindow->IsTracking() && - (pSVData->maWinData.mnTrackFlags & StartTrackingFlags::FocusCancel) ) - pOldFocusWindow->EndTracking( TrackingEventFlags::Cancel | TrackingEventFlags::Focus ); + if (pOldFocusWindow->IsTracking() + && (pSVData->mpWinData->mnTrackFlags & StartTrackingFlags::FocusCancel)) + pOldFocusWindow->EndTracking(TrackingEventFlags::Cancel | TrackingEventFlags::Focus); NotifyEvent aNEvt( MouseNotifyEvent::LOSEFOCUS, pOldFocusWindow ); if ( !ImplCallPreNotify( aNEvt ) ) pOldFocusWindow->CompatLoseFocus(); pOldFocusWindow->ImplCallDeactivateListeners( this ); } - if ( pSVData->maWinData.mpFocusWin.get() == this ) + if (pSVData->mpWinData->mpFocusWin.get() == this) { if ( mpWindowImpl->mpSysObj ) { @@ -364,7 +364,7 @@ void Window::ImplGrabFocus( GetFocusFlags nFlags ) mpWindowImpl->mpSysObj->GrabFocus(); } - if ( pSVData->maWinData.mpFocusWin.get() == this ) + if (pSVData->mpWinData->mpFocusWin.get() == this) { if ( mpWindowImpl->mpCursor ) mpWindowImpl->mpCursor->ImplShow(); @@ -446,15 +446,15 @@ void Window::CaptureMouse() ImplSVData* pSVData = ImplGetSVData(); // possibly stop tracking - if ( pSVData->maWinData.mpTrackWin.get() != this ) + if (pSVData->mpWinData->mpTrackWin.get() != this) { - if ( pSVData->maWinData.mpTrackWin ) - pSVData->maWinData.mpTrackWin->EndTracking( TrackingEventFlags::Cancel ); + if (pSVData->mpWinData->mpTrackWin) + pSVData->mpWinData->mpTrackWin->EndTracking(TrackingEventFlags::Cancel); } - if ( pSVData->maWinData.mpCaptureWin.get() != this ) + if (pSVData->mpWinData->mpCaptureWin.get() != this) { - pSVData->maWinData.mpCaptureWin = this; + pSVData->mpWinData->mpCaptureWin = this; mpWindowImpl->mpFrame->CaptureMouse( true ); } } @@ -464,7 +464,7 @@ void Window::ReleaseMouse() if (IsMouseCaptured()) { ImplSVData* pSVData = ImplGetSVData(); - pSVData->maWinData.mpCaptureWin = nullptr; + pSVData->mpWinData->mpCaptureWin = nullptr; mpWindowImpl->mpFrame->CaptureMouse( false ); ImplGenerateMouseMove(); } @@ -472,7 +472,7 @@ void Window::ReleaseMouse() bool Window::IsMouseCaptured() const { - return (this == ImplGetSVData()->maWinData.mpCaptureWin); + return (this == ImplGetSVData()->mpWinData->mpCaptureWin); } void Window::SetPointer( const Pointer& rPointer ) diff --git a/vcl/source/window/msgbox.cxx b/vcl/source/window/msgbox.cxx index 23f7ca2f5e73..cc0e69582dcc 100644 --- a/vcl/source/window/msgbox.cxx +++ b/vcl/source/window/msgbox.cxx @@ -37,7 +37,7 @@ static void ImplInitMsgBoxImageList() { ImplSVData* pSVData = ImplGetSVData(); - std::vector<Image> &rImages = pSVData->maWinData.maMsgBoxImgList; + std::vector<Image> &rImages = pSVData->mpWinData->maMsgBoxImgList; if (rImages.empty()) { rImages.emplace_back(Image(StockImage::Yes, SV_RESID_BITMAP_ERRORBOX)); @@ -50,7 +50,7 @@ static void ImplInitMsgBoxImageList() Image const & GetStandardInfoBoxImage() { ImplInitMsgBoxImageList(); - return ImplGetSVData()->maWinData.maMsgBoxImgList[3]; + return ImplGetSVData()->mpWinData->maMsgBoxImgList[3]; } OUString GetStandardInfoBoxText() @@ -61,7 +61,7 @@ OUString GetStandardInfoBoxText() Image const & GetStandardWarningBoxImage() { ImplInitMsgBoxImageList(); - return ImplGetSVData()->maWinData.maMsgBoxImgList[2]; + return ImplGetSVData()->mpWinData->maMsgBoxImgList[2]; } OUString GetStandardWarningBoxText() @@ -72,7 +72,7 @@ OUString GetStandardWarningBoxText() Image const & GetStandardErrorBoxImage() { ImplInitMsgBoxImageList(); - return ImplGetSVData()->maWinData.maMsgBoxImgList[0]; + return ImplGetSVData()->mpWinData->maMsgBoxImgList[0]; } OUString GetStandardErrorBoxText() @@ -83,7 +83,7 @@ OUString GetStandardErrorBoxText() Image const & GetStandardQueryBoxImage() { ImplInitMsgBoxImageList(); - return ImplGetSVData()->maWinData.maMsgBoxImgList[1]; + return ImplGetSVData()->mpWinData->maMsgBoxImgList[1]; } OUString GetStandardQueryBoxText() diff --git a/vcl/source/window/scrwnd.cxx b/vcl/source/window/scrwnd.cxx index b5aec1cfb009..cf5bbb6ff546 100644 --- a/vcl/source/window/scrwnd.cxx +++ b/vcl/source/window/scrwnd.cxx @@ -51,7 +51,7 @@ ImplWheelWindow::ImplWheelWindow( vcl::Window* pParent ) : SAL_WARN_IF( !pParent, "vcl", "ImplWheelWindow::ImplWheelWindow(): Parent not set!" ); const Size aSize( pParent->GetOutputSizePixel() ); - const StartAutoScrollFlags nFlags = ImplGetSVData()->maWinData.mnAutoScrollFlags; + const StartAutoScrollFlags nFlags = ImplGetSVData()->mpWinData->mnAutoScrollFlags; const bool bHorz( nFlags & StartAutoScrollFlags::Horz ); const bool bVert( nFlags & StartAutoScrollFlags::Vert ); @@ -235,7 +235,7 @@ void ImplWheelWindow::ImplRecalcScrollValues() PointerStyle ImplWheelWindow::ImplGetMousePointer( long nDistX, long nDistY ) { PointerStyle eStyle; - const StartAutoScrollFlags nFlags = ImplGetSVData()->maWinData.mnAutoScrollFlags; + const StartAutoScrollFlags nFlags = ImplGetSVData()->mpWinData->mnAutoScrollFlags; const bool bHorz( nFlags & StartAutoScrollFlags::Horz ); const bool bVert( nFlags & StartAutoScrollFlags::Vert ); @@ -314,7 +314,7 @@ void ImplWheelWindow::MouseMove( const MouseEvent& rMEvt ) mnActDist = static_cast<sal_uLong>(hypot( static_cast<double>(nDistX), nDistY )); const PointerStyle eActStyle = ImplGetMousePointer( nDistX, nDistY ); - const StartAutoScrollFlags nFlags = ImplGetSVData()->maWinData.mnAutoScrollFlags; + const StartAutoScrollFlags nFlags = ImplGetSVData()->mpWinData->mnAutoScrollFlags; const bool bHorz( nFlags & StartAutoScrollFlags::Horz ); const bool bVert( nFlags & StartAutoScrollFlags::Vert ); const bool bOuter = mnActDist > WHEEL_RADIUS; diff --git a/vcl/source/window/stacking.cxx b/vcl/source/window/stacking.cxx index d00ad9f9b5ef..fed866d72cc8 100644 --- a/vcl/source/window/stacking.cxx +++ b/vcl/source/window/stacking.cxx @@ -1138,7 +1138,7 @@ bool Window::IsWindowOrChild( const vcl::Window* pWindow, bool bSystemWindow ) c void Window::ImplSetFrameParent( const vcl::Window* pParent ) { - vcl::Window* pFrameWindow = ImplGetSVData()->maWinData.mpFirstFrame; + vcl::Window* pFrameWindow = ImplGetSVData()->maFrameData.mpFirstFrame; while( pFrameWindow ) { // search all frames that are children of this window diff --git a/vcl/source/window/syswin.cxx b/vcl/source/window/syswin.cxx index 72f2eb5bf46d..6576bae07ed6 100644 --- a/vcl/source/window/syswin.cxx +++ b/vcl/source/window/syswin.cxx @@ -697,7 +697,7 @@ void SystemWindow::SetWindowStateData( const WindowStateData& rData ) { tools::Rectangle aDesktop = GetDesktopRectPixel(); ImplSVData *pSVData = ImplGetSVData(); - vcl::Window *pWin = pSVData->maWinData.mpFirstFrame; + vcl::Window *pWin = pSVData->maFrameData.mpFirstFrame; bool bWrapped = false; while( pWin ) { @@ -727,7 +727,7 @@ void SystemWindow::SetWindowStateData( const WindowStateData& rData ) aState.mnX += displacement; aState.mnY += displacement; } - pWin = pSVData->maWinData.mpFirstFrame; // check new pos again + pWin = pSVData->maFrameData.mpFirstFrame; // check new pos again } } pWin = pWin->mpWindowImpl->mpFrameData->mpNextFrame; diff --git a/vcl/source/window/taskpanelist.cxx b/vcl/source/window/taskpanelist.cxx index 1f382b824907..ba8a5175f2c0 100644 --- a/vcl/source/window/taskpanelist.cxx +++ b/vcl/source/window/taskpanelist.cxx @@ -180,30 +180,30 @@ bool TaskPaneList::HandleKeyEvent(const KeyEvent& rKeyEvent) return true; } - // activate next task pane - vcl::Window *pNextWin = nullptr; + // activate next task pane + vcl::Window *pNextWin = nullptr; - if( bSplitterOnly ) - pNextWin = FindNextSplitter( *p ); - else - pNextWin = FindNextFloat( *p, bForward ); - - if( pNextWin != pWin ) - { - ImplGetSVData()->maWinData.mbNoSaveFocus = true; - ImplTaskPaneListGrabFocus( pNextWin, bForward ); - ImplGetSVData()->maWinData.mbNoSaveFocus = false; - } - else - { - // forward key if no splitter found if( bSplitterOnly ) - return false; - - // we did not find another taskpane, so - // put focus back into document - pWin->ImplGrabFocusToDocument( GetFocusFlags::F6 | (bForward ? GetFocusFlags::Forward : GetFocusFlags::Backward)); - } + pNextWin = FindNextSplitter( *p ); + else + pNextWin = FindNextFloat( *p, bForward ); + + if( pNextWin != pWin ) + { + ImplGetSVData()->mpWinData->mbNoSaveFocus = true; + ImplTaskPaneListGrabFocus( pNextWin, bForward ); + ImplGetSVData()->mpWinData->mbNoSaveFocus = false; + } + else + { + // forward key if no splitter found + if( bSplitterOnly ) + return false; + + // we did not find another taskpane, so + // put focus back into document + pWin->ImplGrabFocusToDocument( GetFocusFlags::F6 | (bForward ? GetFocusFlags::Forward : GetFocusFlags::Backward)); + } return true; } diff --git a/vcl/source/window/toolbox.cxx b/vcl/source/window/toolbox.cxx index 9fce6175fead..ef8641986555 100644 --- a/vcl/source/window/toolbox.cxx +++ b/vcl/source/window/toolbox.cxx @@ -4470,9 +4470,9 @@ static bool ImplCloseLastPopup( vcl::Window const *pParent ) // close last popup toolbox (see also: // ImplHandleMouseFloatMode(...) in winproc.cxx ) - if( ImplGetSVData()->maWinData.mpFirstFloat ) + if (ImplGetSVData()->mpWinData->mpFirstFloat) { - FloatingWindow* pLastLevelFloat = ImplGetSVData()->maWinData.mpFirstFloat->ImplFindLastLevelFloat(); + FloatingWindow* pLastLevelFloat = ImplGetSVData()->mpWinData->mpFirstFloat->ImplFindLastLevelFloat(); // only close the floater if it is not our direct parent, which would kill ourself if( pLastLevelFloat && pLastLevelFloat != pParent ) { diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx index 6d5a73fc8f62..a0e49fbfcfa0 100644 --- a/vcl/source/window/window.cxx +++ b/vcl/source/window/window.cxx @@ -242,13 +242,13 @@ void Window::dispose() if ( ImplGetSVHelpData().mpHelpWin && (ImplGetSVHelpData().mpHelpWin->GetParent() == this) ) ImplDestroyHelpWindow( true ); - SAL_WARN_IF( pSVData->maWinData.mpTrackWin.get() == this, "vcl.window", - "Window::~Window(): Window is in TrackingMode" ); + SAL_WARN_IF(pSVData->mpWinData->mpTrackWin.get() == this, "vcl.window", + "Window::~Window(): Window is in TrackingMode"); SAL_WARN_IF(IsMouseCaptured(), "vcl.window", "Window::~Window(): Window has the mouse captured"); // due to old compatibility - if ( pSVData->maWinData.mpTrackWin == this ) + if (pSVData->mpWinData->mpTrackWin == this) EndTracking(); if (IsMouseCaptured()) ReleaseMouse(); @@ -302,7 +302,7 @@ void Window::dispose() } bError = false; - pTempWin = pSVData->maWinData.mpFirstFrame; + pTempWin = pSVData->maFrameData.mpFirstFrame; while ( pTempWin ) { if ( ImplIsRealParentPath( pTempWin ) ) @@ -402,16 +402,16 @@ void Window::dispose() } // EndExtTextInputMode - if ( pSVData->maWinData.mpExtTextInputWin == this ) + if (pSVData->mpWinData->mpExtTextInputWin == this) { EndExtTextInput(); - if ( pSVData->maWinData.mpExtTextInputWin == this ) - pSVData->maWinData.mpExtTextInputWin = nullptr; + if (pSVData->mpWinData->mpExtTextInputWin == this) + pSVData->mpWinData->mpExtTextInputWin = nullptr; } // check if the focus window is our child bool bHasFocussedChild = false; - if( pSVData->maWinData.mpFocusWin && ImplIsRealParentPath( pSVData->maWinData.mpFocusWin ) ) + if (pSVData->mpWinData->mpFocusWin && ImplIsRealParentPath(pSVData->mpWinData->mpFocusWin)) { // #122232#, this must not happen and is an application bug ! but we try some cleanup to hopefully avoid crashes, see below bHasFocussedChild = true; @@ -425,12 +425,12 @@ void Window::dispose() // if we get focus pass focus to another window vcl::Window* pOverlapWindow = ImplGetFirstOverlapWindow(); - if ( pSVData->maWinData.mpFocusWin == this - || bHasFocussedChild ) // #122232#, see above, try some cleanup + if (pSVData->mpWinData->mpFocusWin == this + || bHasFocussedChild) // #122232#, see above, try some cleanup { if ( mpWindowImpl->mbFrame ) { - pSVData->maWinData.mpFocusWin = nullptr; + pSVData->mpWinData->mpFocusWin = nullptr; pOverlapWindow->mpWindowImpl->mpLastFocusWindow = nullptr; } else @@ -453,9 +453,9 @@ void Window::dispose() mpWindowImpl->mpFrameWindow->GrabFocus(); // If the focus was set back to 'this' set it to nothing - if ( pSVData->maWinData.mpFocusWin == this ) + if (pSVData->mpWinData->mpFocusWin == this) { - pSVData->maWinData.mpFocusWin = nullptr; + pSVData->mpWinData->mpFocusWin = nullptr; pOverlapWindow->mpWindowImpl->mpLastFocusWindow = nullptr; } } @@ -466,12 +466,12 @@ void Window::dispose() pOverlapWindow->mpWindowImpl->mpLastFocusWindow = nullptr; // reset hint for DefModalDialogParent - if( pSVData->maWinData.mpActiveApplicationFrame == this ) - pSVData->maWinData.mpActiveApplicationFrame = nullptr; + if( pSVData->maFrameData.mpActiveApplicationFrame == this ) + pSVData->maFrameData.mpActiveApplicationFrame = nullptr; // reset hint of what was the last wheeled window - if( pSVData->maWinData.mpLastWheelWindow == this ) - pSVData->maWinData.mpLastWheelWindow = nullptr; + if (pSVData->mpWinData->mpLastWheelWindow == this) + pSVData->mpWinData->mpLastWheelWindow = nullptr; // reset marked windows if ( mpWindowImpl->mpFrameData != nullptr ) @@ -485,8 +485,8 @@ void Window::dispose() } // reset Deactivate-Window - if ( pSVData->maWinData.mpLastDeacWin == this ) - pSVData->maWinData.mpLastDeacWin = nullptr; + if (pSVData->mpWinData->mpLastDeacWin == this) + pSVData->mpWinData->mpLastDeacWin = nullptr; if ( mpWindowImpl->mbFrame && mpWindowImpl->mpFrameData ) { @@ -508,7 +508,8 @@ void Window::dispose() // de-register as "top window child" at our parent, if necessary if ( mpWindowImpl->mbFrame ) { - bool bIsTopWindow = mpWindowImpl->mpWinData && ( mpWindowImpl->mpWinData->mnIsTopWindow == 1 ); + bool bIsTopWindow + = mpWindowImpl->mpWinData && (mpWindowImpl->mpWinData->mnIsTopWindow == 1); if ( mpWindowImpl->mpRealParent && bIsTopWindow ) { ImplWinData* pParentWinData = mpWindowImpl->mpRealParent->ImplGetWinData(); @@ -528,12 +529,12 @@ void Window::dispose() mpWindowImpl->mpBorderWindow.disposeAndClear(); if ( mpWindowImpl->mbFrame ) { - if ( pSVData->maWinData.mpFirstFrame == this ) - pSVData->maWinData.mpFirstFrame = mpWindowImpl->mpFrameData->mpNextFrame; + if ( pSVData->maFrameData.mpFirstFrame == this ) + pSVData->maFrameData.mpFirstFrame = mpWindowImpl->mpFrameData->mpNextFrame; else { sal_Int32 nWindows = 0; - vcl::Window* pSysWin = pSVData->maWinData.mpFirstFrame; + vcl::Window* pSysWin = pSVData->maFrameData.mpFirstFrame; while ( pSysWin && pSysWin->mpWindowImpl->mpFrameData->mpNextFrame.get() != this ) { pSysWin = pSysWin->mpWindowImpl->mpFrameData->mpNextFrame; @@ -766,9 +767,9 @@ ImplWinData::~ImplWinData() ImplFrameData::ImplFrameData( vcl::Window *pWindow ) { ImplSVData* pSVData = ImplGetSVData(); - assert (pSVData->maWinData.mpFirstFrame.get() != pWindow); - mpNextFrame = pSVData->maWinData.mpFirstFrame; - pSVData->maWinData.mpFirstFrame = pWindow; + assert (pSVData->maFrameData.mpFirstFrame.get() != pWindow); + mpNextFrame = pSVData->maFrameData.mpFirstFrame; + pSVData->maFrameData.mpFirstFrame = pWindow; mpFirstOverlap = nullptr; mpFocusWin = nullptr; mpMouseMoveWin = nullptr; @@ -1216,7 +1217,7 @@ void Window::ImplInitAppFontData( vcl::Window const * pWindow ) ImplWinData* Window::ImplGetWinData() const { - if ( !mpWindowImpl->mpWinData ) + if (!mpWindowImpl->mpWinData) { static const char* pNoNWF = getenv( "SAL_NO_NWF" ); @@ -1717,7 +1718,7 @@ void Window::ImplPosSizeWindow( long nX, long nY, void Window::ImplNewInputContext() { ImplSVData* pSVData = ImplGetSVData(); - vcl::Window* pFocusWin = pSVData->maWinData.mpFocusWin; + vcl::Window* pFocusWin = pSVData->mpWinData->mpFocusWin; if ( !pFocusWin ) return; @@ -2220,7 +2221,7 @@ void Window::Show(bool bVisible, ShowFlags nFlags) if ( !mpWindowImpl->mbFrame ) { - if( mpWindowImpl->mpWinData && mpWindowImpl->mpWinData->mbEnableNativeWidget ) + if (mpWindowImpl->mpWinData && mpWindowImpl->mpWinData->mbEnableNativeWidget) { /* * #i48371# native theming: some themes draw outside the control @@ -2436,11 +2437,9 @@ void Window::Enable( bool bEnable, bool bChild ) // #i56102# restore app focus win in case the // window was disabled when the frame focus changed ImplSVData* pSVData = ImplGetSVData(); - if( bEnable && - pSVData->maWinData.mpFocusWin == nullptr && - mpWindowImpl->mpFrameData->mbHasFocus && - mpWindowImpl->mpFrameData->mpFocusWin == this ) - pSVData->maWinData.mpFocusWin = this; + if (bEnable && pSVData->mpWinData->mpFocusWin == nullptr + && mpWindowImpl->mpFrameData->mbHasFocus && mpWindowImpl->mpFrameData->mpFocusWin == this) + pSVData->mpWinData->mpFocusWin = this; if ( mpWindowImpl->mbDisabled != !bEnable ) { @@ -2521,11 +2520,9 @@ void Window::EnableInput( bool bEnable, bool bChild ) // #i56102# restore app focus win in case the // window was disabled when the frame focus changed ImplSVData* pSVData = ImplGetSVData(); - if( bEnable && - pSVData->maWinData.mpFocusWin == nullptr && - mpWindowImpl->mpFrameData->mbHasFocus && - mpWindowImpl->mpFrameData->mpFocusWin == this ) - pSVData->maWinData.mpFocusWin = this; + if (bEnable && pSVData->mpWinData->mpFocusWin == nullptr + && mpWindowImpl->mpFrameData->mbHasFocus && mpWindowImpl->mpFrameData->mpFocusWin == this) + pSVData->mpWinData->mpFocusWin = this; if ( bChild ) { @@ -2574,7 +2571,7 @@ void Window::EnableInput( bool bEnable, const vcl::Window* pExcludeWindow ) } // enable/disable floating system windows as well - vcl::Window* pFrameWin = ImplGetSVData()->maWinData.mpFirstFrame; + vcl::Window* pFrameWin = ImplGetSVData()->maFrameData.mpFirstFrame; while ( pFrameWin ) { if( pFrameWin->ImplIsFloatingWindow() ) @@ -3000,7 +2997,7 @@ void Window::GrabFocus() bool Window::HasFocus() const { - return (this == ImplGetSVData()->maWinData.mpFocusWin); + return (this == ImplGetSVData()->mpWinData->mpFocusWin); } void Window::GrabFocusToDocument() @@ -3024,7 +3021,7 @@ void Window::SetFakeFocus( bool bFocus ) bool Window::HasChildPathFocus( bool bSystemWindow ) const { - vcl::Window* pFocusWin = ImplGetSVData()->maWinData.mpFocusWin; + vcl::Window* pFocusWin = ImplGetSVData()->mpWinData->mpFocusWin; if ( pFocusWin ) return ImplIsWindowOrChild( pFocusWin, bSystemWindow ); return false; @@ -3413,7 +3410,7 @@ void Window::ImplCallActivateListeners( vcl::Window *pOld ) else if( (mpWindowImpl->mnStyle & WB_INTROWIN) == 0 ) { // top level frame reached: store hint for DefModalDialogParent - ImplGetSVData()->maWinData.mpActiveApplicationFrame = mpWindowImpl->mpFrameWindow; + ImplGetSVData()->maFrameData.mpActiveApplicationFrame = mpWindowImpl->mpFrameWindow; } } } @@ -3681,7 +3678,7 @@ void Window::ImplNotifyIconifiedState( bool bIconified ) bool Window::HasActiveChildFrame() { bool bRet = false; - vcl::Window *pFrameWin = ImplGetSVData()->maWinData.mpFirstFrame; + vcl::Window *pFrameWin = ImplGetSVData()->maFrameData.mpFirstFrame; while( pFrameWin ) { if( pFrameWin != mpWindowImpl->mpFrameWindow ) diff --git a/vcl/source/window/window2.cxx b/vcl/source/window/window2.cxx index 3e05a54f0b20..dcf5af8a7eed 100644 --- a/vcl/source/window/window2.cxx +++ b/vcl/source/window/window2.cxx @@ -227,7 +227,7 @@ IMPL_LINK( Window, ImplTrackTimerHdl, Timer*, pTimer, void ) ImplSVData* pSVData = ImplGetSVData(); // if Button-Repeat we have to change the timeout - if ( pSVData->maWinData.mnTrackFlags & StartTrackingFlags::ButtonRepeat ) + if ( pSVData->mpWinData->mnTrackFlags & StartTrackingFlags::ButtonRepeat ) pTimer->SetTimeout( GetSettings().GetMouseSettings().GetButtonRepeat() ); // create Tracking-Event @@ -250,27 +250,27 @@ void Window::StartTracking( StartTrackingFlags nFlags ) { ImplSVData* pSVData = ImplGetSVData(); - if ( pSVData->maWinData.mpTrackWin.get() != this ) + if ( pSVData->mpWinData->mpTrackWin.get() != this ) { - if ( pSVData->maWinData.mpTrackWin ) - pSVData->maWinData.mpTrackWin->EndTracking( TrackingEventFlags::Cancel ); + if ( pSVData->mpWinData->mpTrackWin ) + pSVData->mpWinData->mpTrackWin->EndTracking( TrackingEventFlags::Cancel ); } if ( nFlags & (StartTrackingFlags::ScrollRepeat | StartTrackingFlags::ButtonRepeat) ) { - pSVData->maWinData.mpTrackTimer = new AutoTimer; + pSVData->mpWinData->mpTrackTimer = new AutoTimer; if ( nFlags & StartTrackingFlags::ScrollRepeat ) - pSVData->maWinData.mpTrackTimer->SetTimeout( MouseSettings::GetScrollRepeat() ); + pSVData->mpWinData->mpTrackTimer->SetTimeout( MouseSettings::GetScrollRepeat() ); else - pSVData->maWinData.mpTrackTimer->SetTimeout( MouseSettings::GetButtonStartRepeat() ); - pSVData->maWinData.mpTrackTimer->SetInvokeHandler( LINK( this, Window, ImplTrackTimerHdl ) ); - pSVData->maWinData.mpTrackTimer->SetDebugName( "vcl::Window pSVData->maWinData.mpTrackTimer" ); - pSVData->maWinData.mpTrackTimer->Start(); + pSVData->mpWinData->mpTrackTimer->SetTimeout( MouseSettings::GetButtonStartRepeat() ); + pSVData->mpWinData->mpTrackTimer->SetInvokeHandler( LINK( this, Window, ImplTrackTimerHdl ) ); + pSVData->mpWinData->mpTrackTimer->SetDebugName( "vcl::Window pSVData->mpWinData->mpTrackTimer" ); + pSVData->mpWinData->mpTrackTimer->Start(); } - pSVData->maWinData.mpTrackWin = this; - pSVData->maWinData.mnTrackFlags = nFlags; + pSVData->mpWinData->mpTrackWin = this; + pSVData->mpWinData->mnTrackFlags = nFlags; CaptureMouse(); } @@ -278,20 +278,20 @@ void Window::EndTracking( TrackingEventFlags nFlags ) { ImplSVData* pSVData = ImplGetSVData(); - if ( pSVData->maWinData.mpTrackWin.get() == this ) + if ( pSVData->mpWinData->mpTrackWin.get() == this ) { // due to DbgChkThis in brackets, as the window could be destroyed // in the handler { - if ( pSVData->maWinData.mpTrackTimer ) + if ( pSVData->mpWinData->mpTrackTimer ) { - delete pSVData->maWinData.mpTrackTimer; - pSVData->maWinData.mpTrackTimer = nullptr; + delete pSVData->mpWinData->mpTrackTimer; + pSVData->mpWinData->mpTrackTimer = nullptr; } - pSVData->maWinData.mpTrackWin = nullptr; - pSVData->maWinData.mnTrackFlags = StartTrackingFlags::NONE; + pSVData->mpWinData->mpTrackWin = nullptr; + pSVData->mpWinData->mnTrackFlags = StartTrackingFlags::NONE; ReleaseMouse(); } @@ -322,21 +322,21 @@ void Window::EndTracking( TrackingEventFlags nFlags ) bool Window::IsTracking() const { - return (ImplGetSVData()->maWinData.mpTrackWin == this); + return (ImplGetSVData()->mpWinData->mpTrackWin == this); } void Window::StartAutoScroll( StartAutoScrollFlags nFlags ) { ImplSVData* pSVData = ImplGetSVData(); - if ( pSVData->maWinData.mpAutoScrollWin.get() != this ) + if ( pSVData->mpWinData->mpAutoScrollWin.get() != this ) { - if ( pSVData->maWinData.mpAutoScrollWin ) - pSVData->maWinData.mpAutoScrollWin->EndAutoScroll(); + if ( pSVData->mpWinData->mpAutoScrollWin ) + pSVData->mpWinData->mpAutoScrollWin->EndAutoScroll(); } - pSVData->maWinData.mpAutoScrollWin = this; - pSVData->maWinData.mnAutoScrollFlags = nFlags; + pSVData->mpWinData->mpAutoScrollWin = this; + pSVData->mpWinData->mnAutoScrollFlags = nFlags; pSVData->maAppData.mpWheelWindow = VclPtr<ImplWheelWindow>::Create( this ); } @@ -344,10 +344,10 @@ void Window::EndAutoScroll() { ImplSVData* pSVData = ImplGetSVData(); - if ( pSVData->maWinData.mpAutoScrollWin.get() == this ) + if ( pSVData->mpWinData->mpAutoScrollWin.get() == this ) { - pSVData->maWinData.mpAutoScrollWin = nullptr; - pSVData->maWinData.mnAutoScrollFlags = StartAutoScrollFlags::NONE; + pSVData->mpWinData->mpAutoScrollWin = nullptr; + pSVData->mpWinData->mnAutoScrollFlags = StartAutoScrollFlags::NONE; pSVData->maAppData.mpWheelWindow->ImplStop(); pSVData->maAppData.mpWheelWindow->SetParentToDefaultWindow(); pSVData->maAppData.mpWheelWindow.disposeAndClear(); @@ -357,9 +357,9 @@ void Window::EndAutoScroll() VclPtr<vcl::Window> Window::SaveFocus() { ImplSVData* pSVData = ImplGetSVData(); - if ( pSVData->maWinData.mpFocusWin ) + if ( pSVData->mpWinData->mpFocusWin ) { - return pSVData->maWinData.mpFocusWin; + return pSVData->mpWinData->mpFocusWin; } else return nullptr; @@ -822,7 +822,7 @@ void Window::EnableDocking( bool bEnable ) ImplGetDockingManager()->RemoveWindow( this ); } -// retrieves the list of owner draw decorated windows for this window hierarchy +// retrieves the list of owner draw decorated windows for this window hiearchy ::std::vector<VclPtr<vcl::Window> >& Window::ImplGetOwnerDrawList() { return ImplGetTopmostFrameWindow()->mpWindowImpl->mpFrameData->maOwnerDrawList; diff --git a/vcl/source/window/winproc.cxx b/vcl/source/window/winproc.cxx index 6b5f48d68444..b3ea4f5bf97e 100644 --- a/vcl/source/window/winproc.cxx +++ b/vcl/source/window/winproc.cxx @@ -69,15 +69,15 @@ static bool ImplHandleMouseFloatMode( vcl::Window* pChild, const Point& rMousePo { ImplSVData* pSVData = ImplGetSVData(); - if ( pSVData->maWinData.mpFirstFloat && !pSVData->maWinData.mpCaptureWin && - !pSVData->maWinData.mpFirstFloat->ImplIsFloatPopupModeWindow( pChild ) ) + if (pSVData->mpWinData->mpFirstFloat && !pSVData->mpWinData->mpCaptureWin + && !pSVData->mpWinData->mpFirstFloat->ImplIsFloatPopupModeWindow(pChild)) { /* * #93895# since floats are system windows, coordinates have * to be converted to float relative for the hittest */ HitTest nHitTest = HITTEST_OUTSIDE; - FloatingWindow* pFloat = pSVData->maWinData.mpFirstFloat->ImplFloatHitTest( pChild, rMousePos, nHitTest ); + FloatingWindow* pFloat = pSVData->mpWinData->mpFirstFloat->ImplFloatHitTest( pChild, rMousePos, nHitTest ); FloatingWindow* pLastLevelFloat; FloatWinPopupFlags nPopupFlags; if ( nSVEvent == MouseNotifyEvent::MOUSEMOVE ) @@ -101,7 +101,7 @@ static bool ImplHandleMouseFloatMode( vcl::Window* pChild, const Point& rMousePo { if ( !pFloat ) { - pLastLevelFloat = pSVData->maWinData.mpFirstFloat->ImplFindLastLevelFloat(); + pLastLevelFloat = pSVData->mpWinData->mpFirstFloat->ImplFindLastLevelFloat(); pLastLevelFloat->EndPopupMode( FloatWinPopupEndFlags::Cancel | FloatWinPopupEndFlags::CloseAll ); return true; } @@ -124,7 +124,7 @@ static bool ImplHandleMouseFloatMode( vcl::Window* pChild, const Point& rMousePo } else { - pLastLevelFloat = pSVData->maWinData.mpFirstFloat->ImplFindLastLevelFloat(); + pLastLevelFloat = pSVData->mpWinData->mpFirstFloat->ImplFindLastLevelFloat(); nPopupFlags = pLastLevelFloat->GetPopupModeFlags(); if ( !(nPopupFlags & FloatWinPopupFlags::NoMouseUpClose) ) { @@ -138,7 +138,7 @@ static bool ImplHandleMouseFloatMode( vcl::Window* pChild, const Point& rMousePo { if ( !pFloat ) { - pLastLevelFloat = pSVData->maWinData.mpFirstFloat->ImplFindLastLevelFloat(); + pLastLevelFloat = pSVData->mpWinData->mpFirstFloat->ImplFindLastLevelFloat(); nPopupFlags = pLastLevelFloat->GetPopupModeFlags(); if ( nPopupFlags & FloatWinPopupFlags::AllMouseButtonClose ) { @@ -327,21 +327,21 @@ bool ImplHandleMouseEvent( const VclPtr<vcl::Window>& xWindow, MouseNotifyEvent else pWinFrameData->mbMouseIn = true; - DBG_ASSERT( !pSVData->maWinData.mpTrackWin || - (pSVData->maWinData.mpTrackWin == pSVData->maWinData.mpCaptureWin), - "ImplHandleMouseEvent: TrackWin != CaptureWin" ); + DBG_ASSERT(!pSVData->mpWinData->mpTrackWin + || (pSVData->mpWinData->mpTrackWin == pSVData->mpWinData->mpCaptureWin), + "ImplHandleMouseEvent: TrackWin != CaptureWin"); // AutoScrollMode - if ( pSVData->maWinData.mpAutoScrollWin && (nSVEvent == MouseNotifyEvent::MOUSEBUTTONDOWN) ) + if (pSVData->mpWinData->mpAutoScrollWin && (nSVEvent == MouseNotifyEvent::MOUSEBUTTONDOWN)) { - pSVData->maWinData.mpAutoScrollWin->EndAutoScroll(); + pSVData->mpWinData->mpAutoScrollWin->EndAutoScroll(); return true; } // find mouse window - if ( pSVData->maWinData.mpCaptureWin ) + if (pSVData->mpWinData->mpCaptureWin) { - pChild = pSVData->maWinData.mpCaptureWin; + pChild = pSVData->mpWinData->mpCaptureWin; SAL_WARN_IF( xWindow != pChild->ImplGetFrameWindow(), "vcl", "ImplHandleMouseEvent: mouse event is not sent to capture window" ); @@ -378,7 +378,8 @@ bool ImplHandleMouseEvent( const VclPtr<vcl::Window>& xWindow, MouseNotifyEvent // no mouse messages to disabled windows // #106845# if the window was disabled during capturing we have to pass the mouse events to release capturing - if ( pSVData->maWinData.mpCaptureWin.get() != pChild && (!pChild->IsEnabled() || !pChild->IsInputEnabled() || pChild->IsInModalMode() ) ) + if (pSVData->mpWinData->mpCaptureWin.get() != pChild + && (!pChild->IsEnabled() || !pChild->IsInputEnabled() || pChild->IsInModalMode())) { ImplHandleMouseFloatMode( pChild, aMousePos, nCode, nSVEvent, bMouseLeave ); if ( nSVEvent == MouseNotifyEvent::MOUSEMOVE ) @@ -412,10 +413,10 @@ bool ImplHandleMouseEvent( const VclPtr<vcl::Window>& xWindow, MouseNotifyEvent } // End ExtTextInput-Mode, if the user click in the same TopLevel Window - if ( pSVData->maWinData.mpExtTextInputWin && - ((nSVEvent == MouseNotifyEvent::MOUSEBUTTONDOWN) || - (nSVEvent == MouseNotifyEvent::MOUSEBUTTONUP)) ) - pSVData->maWinData.mpExtTextInputWin->EndExtTextInput(); + if (pSVData->mpWinData->mpExtTextInputWin + && ((nSVEvent == MouseNotifyEvent::MOUSEBUTTONDOWN) + || (nSVEvent == MouseNotifyEvent::MOUSEBUTTONUP))) + pSVData->mpWinData->mpExtTextInputWin->EndExtTextInput(); } // determine mouse event data @@ -615,11 +616,11 @@ bool ImplHandleMouseEvent( const VclPtr<vcl::Window>& xWindow, MouseNotifyEvent // tracking window gets the mouse events - if ( pSVData->maWinData.mpTrackWin ) - pChild = pSVData->maWinData.mpTrackWin; + if (pSVData->mpWinData->mpTrackWin) + pChild = pSVData->mpWinData->mpTrackWin; // handle FloatingMode - if ( !pSVData->maWinData.mpTrackWin && pSVData->maWinData.mpFirstFloat ) + if (!pSVData->mpWinData->mpTrackWin && pSVData->mpWinData->mpFirstFloat) { if ( ImplHandleMouseFloatMode( pChild, aMousePos, nCode, nSVEvent, bMouseLeave ) ) { @@ -645,8 +646,10 @@ bool ImplHandleMouseEvent( const VclPtr<vcl::Window>& xWindow, MouseNotifyEvent // bring window into foreground on mouseclick if ( nSVEvent == MouseNotifyEvent::MOUSEBUTTONDOWN ) { - if( !pSVData->maWinData.mpFirstFloat && // totop for floating windows in popup would change the focus and would close them immediately - !(pChild->ImplGetFrameWindow()->GetStyle() & WB_OWNERDRAWDECORATION) ) // ownerdrawdecorated windows must never grab focus + if (!pSVData->mpWinData->mpFirstFloat + && // totop for floating windows in popup would change the focus and would close them immediately + !(pChild->ImplGetFrameWindow()->GetStyle() + & WB_OWNERDRAWDECORATION)) // ownerdrawdecorated windows must never grab focus pChild->ToTop(); if ( pChild->IsDisposed() ) return true; @@ -659,16 +662,16 @@ bool ImplHandleMouseEvent( const VclPtr<vcl::Window>& xWindow, MouseNotifyEvent bRet = false; if ( nSVEvent == MouseNotifyEvent::MOUSEMOVE ) { - if ( pSVData->maWinData.mpTrackWin ) + if (pSVData->mpWinData->mpTrackWin) { TrackingEvent aTEvt( aMEvt ); pChild->Tracking( aTEvt ); if ( !pChild->IsDisposed() ) { // When ScrollRepeat, we restart the timer - if ( pSVData->maWinData.mpTrackTimer && - (pSVData->maWinData.mnTrackFlags & StartTrackingFlags::ScrollRepeat) ) - pSVData->maWinData.mpTrackTimer->Start(); + if (pSVData->mpWinData->mpTrackTimer + && (pSVData->mpWinData->mnTrackFlags & StartTrackingFlags::ScrollRepeat)) + pSVData->mpWinData->mpTrackTimer->Start(); } bCallHelpRequest = false; bRet = true; @@ -676,8 +679,9 @@ bool ImplHandleMouseEvent( const VclPtr<vcl::Window>& xWindow, MouseNotifyEvent else { // Auto-ToTop - if ( !pSVData->maWinData.mpCaptureWin && - (pChild->GetSettings().GetMouseSettings().GetOptions() & MouseSettingsOptions::AutoFocus) ) + if (!pSVData->mpWinData->mpCaptureWin + && (pChild->GetSettings().GetMouseSettings().GetOptions() + & MouseSettingsOptions::AutoFocus)) pChild->ToTop( ToTopFlags::NoGrabFocus ); if( pChild->IsDisposed() ) @@ -695,8 +699,8 @@ bool ImplHandleMouseEvent( const VclPtr<vcl::Window>& xWindow, MouseNotifyEvent } else if ( nSVEvent == MouseNotifyEvent::MOUSEBUTTONDOWN ) { - if ( pSVData->maWinData.mpTrackWin && - !(pSVData->maWinData.mnTrackFlags & StartTrackingFlags::MouseButtonDown) ) + if (pSVData->mpWinData->mpTrackWin + && !(pSVData->mpWinData->mnTrackFlags & StartTrackingFlags::MouseButtonDown)) bRet = true; else { @@ -706,7 +710,7 @@ bool ImplHandleMouseEvent( const VclPtr<vcl::Window>& xWindow, MouseNotifyEvent } else { - if ( pSVData->maWinData.mpTrackWin ) + if (pSVData->mpWinData->mpTrackWin) { pChild->EndTracking(); bRet = true; @@ -817,7 +821,7 @@ static vcl::Window* ImplGetKeyInputWindow( vcl::Window* pWindow ) // focus or the last time the focus. // the first floating window always has the focus, try it, or any parent floating windows, first - vcl::Window* pChild = pSVData->maWinData.mpFirstFloat; + vcl::Window* pChild = pSVData->mpWinData->mpFirstFloat; while (pChild) { if (pChild->ImplGetWindowImpl()->mbFloatWin) @@ -848,8 +852,8 @@ static vcl::Window* ImplGetKeyInputWindow( vcl::Window* pWindow ) // system this is often the case when a Lookup Choice Window has // the focus - because this windows send the KeyInput directly to // the window without resetting the focus - SAL_WARN_IF( pChild != pSVData->maWinData.mpFocusWin, "vcl", - "ImplHandleKey: Keyboard-Input is sent to a frame without focus" ); + SAL_WARN_IF(pChild != pSVData->mpWinData->mpFocusWin, "vcl", + "ImplHandleKey: Keyboard-Input is sent to a frame without focus"); // no keyinput to disabled windows if ( !pChild->IsEnabled() || !pChild->IsInputEnabled() || pChild->IsInModalMode() ) @@ -916,23 +920,24 @@ static bool ImplHandleKey( vcl::Window* pWindow, MouseNotifyEvent nSVEvent, ImplDestroyHelpWindow( false ); // AutoScrollMode - if ( pSVData->maWinData.mpAutoScrollWin ) + if (pSVData->mpWinData->mpAutoScrollWin) { - pSVData->maWinData.mpAutoScrollWin->EndAutoScroll(); + pSVData->mpWinData->mpAutoScrollWin->EndAutoScroll(); if ( nEvCode == KEY_ESCAPE ) return true; } - if ( pSVData->maWinData.mpTrackWin ) + if (pSVData->mpWinData->mpTrackWin) { sal_uInt16 nOrigCode = aKeyCode.GetCode(); - if ( (nOrigCode == KEY_ESCAPE) && !(pSVData->maWinData.mnTrackFlags & StartTrackingFlags::NoKeyCancel) ) + if ((nOrigCode == KEY_ESCAPE) + && !(pSVData->mpWinData->mnTrackFlags & StartTrackingFlags::NoKeyCancel)) { - pSVData->maWinData.mpTrackWin->EndTracking( TrackingEventFlags::Cancel | TrackingEventFlags::Key ); - if ( pSVData->maWinData.mpFirstFloat ) + pSVData->mpWinData->mpTrackWin->EndTracking( TrackingEventFlags::Cancel | TrackingEventFlags::Key ); + if (pSVData->mpWinData->mpFirstFloat) { - FloatingWindow* pLastLevelFloat = pSVData->maWinData.mpFirstFloat->ImplFindLastLevelFloat(); + FloatingWindow* pLastLevelFloat = pSVData->mpWinData->mpFirstFloat->ImplFindLastLevelFloat(); if ( !(pLastLevelFloat->GetPopupModeFlags() & FloatWinPopupFlags::NoKeyClose) ) { sal_uInt16 nEscCode = aKeyCode.GetCode(); @@ -945,17 +950,17 @@ static bool ImplHandleKey( vcl::Window* pWindow, MouseNotifyEvent nSVEvent, } else if ( nOrigCode == KEY_RETURN ) { - pSVData->maWinData.mpTrackWin->EndTracking( TrackingEventFlags::Key ); + pSVData->mpWinData->mpTrackWin->EndTracking( TrackingEventFlags::Key ); return true; } - else if ( !(pSVData->maWinData.mnTrackFlags & StartTrackingFlags::KeyInput) ) + else if (!(pSVData->mpWinData->mnTrackFlags & StartTrackingFlags::KeyInput)) return true; } // handle FloatingMode - if ( pSVData->maWinData.mpFirstFloat ) + if (pSVData->mpWinData->mpFirstFloat) { - FloatingWindow* pLastLevelFloat = pSVData->maWinData.mpFirstFloat->ImplFindLastLevelFloat(); + FloatingWindow* pLastLevelFloat = pSVData->mpWinData->mpFirstFloat->ImplFindLastLevelFloat(); if ( !(pLastLevelFloat->GetPopupModeFlags() & FloatWinPopupFlags::NoKeyClose) ) { sal_uInt16 nCode = aKeyCode.GetCode(); @@ -1135,7 +1140,7 @@ static bool ImplHandleExtTextInput( vcl::Window* pWindow, int nTries = 200; while( nTries-- ) { - pChild = pSVData->maWinData.mpExtTextInputWin; + pChild = pSVData->mpWinData->mpExtTextInputWin; if ( !pChild ) { pChild = ImplGetKeyInputWindow( pWindow ); @@ -1161,7 +1166,7 @@ static bool ImplHandleExtTextInput( vcl::Window* pWindow, pChild->ImplGetWindowImpl()->mbExtTextInput = true; pWinData->mpExtOldText = OUString(); pWinData->mpExtOldAttrAry.reset(); - pSVData->maWinData.mpExtTextInputWin = pChild; + pSVData->mpWinData->mpExtTextInputWin = pChild; ImplCallCommand( pChild, CommandEventId::StartExtTextInput ); } @@ -1218,13 +1223,13 @@ static bool ImplHandleExtTextInput( vcl::Window* pWindow, static bool ImplHandleEndExtTextInput() { ImplSVData* pSVData = ImplGetSVData(); - vcl::Window* pChild = pSVData->maWinData.mpExtTextInputWin; - bool bRet = false; + vcl::Window* pChild = pSVData->mpWinData->mpExtTextInputWin; + bool bRet = false; if ( pChild ) { pChild->ImplGetWindowImpl()->mbExtTextInput = false; - pSVData->maWinData.mpExtTextInputWin = nullptr; + pSVData->mpWinData->mpExtTextInputWin = nullptr; ImplWinData* pWinData = pChild->ImplGetWinData(); pWinData->mpExtOldText.reset(); pWinData->mpExtOldAttrAry.reset(); @@ -1239,7 +1244,7 @@ static void ImplHandleExtTextInputPos( vcl::Window* pWindow, bool * pVertical ) { ImplSVData* pSVData = ImplGetSVData(); - vcl::Window* pChild = pSVData->maWinData.mpExtTextInputWin; + vcl::Window* pChild = pSVData->mpWinData->mpExtTextInputWin; if ( !pChild ) pChild = ImplGetKeyInputWindow( pWindow ); @@ -1348,8 +1353,8 @@ public: bool HandleGestureEventBase::Setup() { - if (m_pSVData->maWinData.mpAutoScrollWin) - m_pSVData->maWinData.mpAutoScrollWin->EndAutoScroll(); + if (m_pSVData->mpWinData->mpAutoScrollWin) + m_pSVData->mpWinData->mpAutoScrollWin->EndAutoScroll(); if (ImplGetSVHelpData().mpHelpWin) ImplDestroyHelpWindow( true ); return !m_pWindow->IsDisposed(); @@ -1360,13 +1365,13 @@ vcl::Window* HandleGestureEventBase::FindTarget() // first check any floating window ( eg. drop down listboxes) vcl::Window *pMouseWindow = nullptr; - if (m_pSVData->maWinData.mpFirstFloat && !m_pSVData->maWinData.mpCaptureWin && - !m_pSVData->maWinData.mpFirstFloat->ImplIsFloatPopupModeWindow( m_pWindow ) ) + if (m_pSVData->mpWinData->mpFirstFloat && !m_pSVData->mpWinData->mpCaptureWin && + !m_pSVData->mpWinData->mpFirstFloat->ImplIsFloatPopupModeWindow( m_pWindow ) ) { HitTest nHitTest = HITTEST_OUTSIDE; - pMouseWindow = m_pSVData->maWinData.mpFirstFloat->ImplFloatHitTest( m_pWindow, m_aMousePos, nHitTest ); + pMouseWindow = m_pSVData->mpWinData->mpFirstFloat->ImplFloatHitTest( m_pWindow, m_aMousePos, nHitTest ); if (!pMouseWindow) - pMouseWindow = m_pSVData->maWinData.mpFirstFloat; + pMouseWindow = m_pSVData->mpWinData->mpFirstFloat; } // then try the window directly beneath the mouse if( !pMouseWindow ) @@ -1415,7 +1420,7 @@ vcl::Window *HandleGestureEventBase::Dispatch(vcl::Window* pMouseWindow) { vcl::Window* pFocusWindow = m_pWindow->ImplGetWindowImpl()->mpFrameData->mpFocusWin; if ( pFocusWindow && (pFocusWindow != pMouseWindow) && - (pFocusWindow == m_pSVData->maWinData.mpFocusWin) ) + (pFocusWindow == m_pSVData->mpWinData->mpFocusWin) ) { // no wheel-messages to disabled windows if ( pFocusWindow->IsEnabled() && pFocusWindow->IsInputEnabled() && ! pFocusWindow->IsInModalMode() ) @@ -1480,17 +1485,17 @@ bool HandleWheelEvent::HandleEvent(const SalWheelMouseEvent& rEvt) // avoid the problem that scrolling via wheel to this point brings a widget // under the mouse that also accepts wheel commands, so stick with the old // widget if the time gap is very small - if (shouldReusePreviousMouseWindow(pSVData->maWinData.maLastWheelEvent, rEvt) && - acceptableWheelScrollTarget(pSVData->maWinData.mpLastWheelWindow)) + if (shouldReusePreviousMouseWindow(pSVData->mpWinData->maLastWheelEvent, rEvt) && + acceptableWheelScrollTarget(pSVData->mpWinData->mpLastWheelWindow)) { - xMouseWindow = pSVData->maWinData.mpLastWheelWindow; + xMouseWindow = pSVData->mpWinData->mpLastWheelWindow; } - pSVData->maWinData.maLastWheelEvent = rEvt; + pSVData->mpWinData->maLastWheelEvent = rEvt; - pSVData->maWinData.mpLastWheelWindow = Dispatch(xMouseWindow); + pSVData->mpWinData->mpLastWheelWindow = Dispatch(xMouseWindow); - return pSVData->maWinData.mpLastWheelWindow.get(); + return pSVData->mpWinData->mpLastWheelWindow.get(); } class HandleGestureEvent : public HandleGestureEventBase @@ -1610,11 +1615,13 @@ static void KillOwnPopups( vcl::Window const * pWindow ) { ImplSVData* pSVData = ImplGetSVData(); vcl::Window *pParent = pWindow->ImplGetWindowImpl()->mpFrameWindow; - vcl::Window *pChild = pSVData->maWinData.mpFirstFloat; + vcl::Window *pChild = pSVData->mpWinData->mpFirstFloat; if ( pChild && pParent->ImplIsWindowOrChild( pChild, true ) ) { - if ( !(pSVData->maWinData.mpFirstFloat->GetPopupModeFlags() & FloatWinPopupFlags::NoAppFocusClose) ) - pSVData->maWinData.mpFirstFloat->EndPopupMode( FloatWinPopupEndFlags::Cancel | FloatWinPopupEndFlags::CloseAll ); + if (!(pSVData->mpWinData->mpFirstFloat->GetPopupModeFlags() + & FloatWinPopupFlags::NoAppFocusClose)) + pSVData->mpWinData->mpFirstFloat->EndPopupMode(FloatWinPopupEndFlags::Cancel + | FloatWinPopupEndFlags::CloseAll); } } @@ -1780,8 +1787,9 @@ IMPL_LINK_NOARG(vcl::Window, ImplAsyncFocusHdl, void*, void) ImplSVData* pSVData = ImplGetSVData(); vcl::Window* pTopLevelWindow = ImplGetWindowImpl()->mpFrameData->mpFocusWin->ImplGetFirstOverlapWindow(); - if ((!pTopLevelWindow->IsInputEnabled() || pTopLevelWindow->IsInModalMode()) && !pSVData->maWinData.mpExecuteDialogs.empty()) - pSVData->maWinData.mpExecuteDialogs.back()->ToTop(ToTopFlags::RestoreWhenMin | ToTopFlags::GrabFocusOnly); + if ((!pTopLevelWindow->IsInputEnabled() || pTopLevelWindow->IsInModalMode()) + && !pSVData->mpWinData->mpExecuteDialogs.empty()) + pSVData->mpWinData->mpExecuteDialogs.back()->ToTop(ToTopFlags::RestoreWhenMin | ToTopFlags::GrabFocusOnly); else pTopLevelWindow->GrabFocus(); } @@ -1796,12 +1804,12 @@ IMPL_LINK_NOARG(vcl::Window, ImplAsyncFocusHdl, void*, void) { ImplSVData* pSVData = ImplGetSVData(); - if ( pSVData->maWinData.mpFocusWin == pFocusWin ) + if (pSVData->mpWinData->mpFocusWin == pFocusWin) { // transfer the FocusWindow vcl::Window* pOverlapWindow = pFocusWin->ImplGetFirstOverlapWindow(); pOverlapWindow->ImplGetWindowImpl()->mpLastFocusWindow = pFocusWin; - pSVData->maWinData.mpFocusWin = nullptr; + pSVData->mpWinData->mpFocusWin = nullptr; if ( pFocusWin->ImplGetWindowImpl()->mpCursor ) pFocusWin->ImplGetWindowImpl()->mpCursor->ImplHide(); @@ -1858,14 +1866,14 @@ static void ImplHandleLoseFocus( vcl::Window* pWindow ) ImplSVData* pSVData = ImplGetSVData(); // Abort the autoscroll if the frame loses focus - if ( pSVData->maWinData.mpAutoScrollWin ) - pSVData->maWinData.mpAutoScrollWin->EndAutoScroll(); + if (pSVData->mpWinData->mpAutoScrollWin) + pSVData->mpWinData->mpAutoScrollWin->EndAutoScroll(); // Abort tracking if the frame loses focus - if ( pSVData->maWinData.mpTrackWin ) + if (pSVData->mpWinData->mpTrackWin) { - if ( pSVData->maWinData.mpTrackWin->ImplGetWindowImpl()->mpFrameWindow == pWindow ) - pSVData->maWinData.mpTrackWin->EndTracking( TrackingEventFlags::Cancel ); + if (pSVData->mpWinData->mpTrackWin->ImplGetWindowImpl()->mpFrameWindow == pWindow) + pSVData->mpWinData->mpTrackWin->EndTracking(TrackingEventFlags::Cancel); } pWindow->ImplGetWindowImpl()->mpFrameData->mbHasFocus = false; @@ -1883,7 +1891,7 @@ static void ImplHandleLoseFocus( vcl::Window* pWindow ) pFocusWin->ImplGetWindowImpl()->mpCursor->ImplHide(); // Make sure that no menu is visible when a toplevel window loses focus. - VclPtr<FloatingWindow> pFirstFloat = pSVData->maWinData.mpFirstFloat; + VclPtr<FloatingWindow> pFirstFloat = pSVData->mpWinData->mpFirstFloat; if (pFirstFloat && !pWindow->GetParent()) pFirstFloat->EndPopupMode(FloatWinPopupEndFlags::Cancel | FloatWinPopupEndFlags::CloseAll); } @@ -1920,10 +1928,10 @@ static void ImplHandleClose( vcl::Window* pWindow ) } // on Close stop all floating modes and end popups - if ( pSVData->maWinData.mpFirstFloat ) + if (pSVData->mpWinData->mpFirstFloat) { FloatingWindow* pLastLevelFloat; - pLastLevelFloat = pSVData->maWinData.mpFirstFloat->ImplFindLastLevelFloat(); + pLastLevelFloat = pSVData->mpWinData->mpFirstFloat->ImplFindLastLevelFloat(); pLastLevelFloat->EndPopupMode( FloatWinPopupEndFlags::Cancel | FloatWinPopupEndFlags::CloseAll ); } if ( ImplGetSVHelpData().mbExtHelpMode ) @@ -1931,11 +1939,11 @@ static void ImplHandleClose( vcl::Window* pWindow ) if ( ImplGetSVHelpData().mpHelpWin ) ImplDestroyHelpWindow( false ); // AutoScrollMode - if ( pSVData->maWinData.mpAutoScrollWin ) - pSVData->maWinData.mpAutoScrollWin->EndAutoScroll(); + if (pSVData->mpWinData->mpAutoScrollWin) + pSVData->mpWinData->mpAutoScrollWin->EndAutoScroll(); - if ( pSVData->maWinData.mpTrackWin ) - pSVData->maWinData.mpTrackWin->EndTracking( TrackingEventFlags::Cancel | TrackingEventFlags::Key ); + if (pSVData->mpWinData->mpTrackWin) + pSVData->mpWinData->mpTrackWin->EndTracking( TrackingEventFlags::Cancel | TrackingEventFlags::Key ); if (bWasPopup) return; @@ -2091,7 +2099,7 @@ static bool ImplHandleMenuEvent( vcl::Window const * pWindow, SalMenuEvent* pEve static void ImplHandleSalKeyMod( vcl::Window* pWindow, SalKeyModEvent const * pEvent ) { ImplSVData* pSVData = ImplGetSVData(); - vcl::Window* pTrackWin = pSVData->maWinData.mpTrackWin; + vcl::Window* pTrackWin = pSVData->mpWinData->mpTrackWin; if ( pTrackWin ) pWindow = pTrackWin; #ifdef MACOSX @@ -2285,7 +2293,7 @@ static void ImplHandleSalQueryCharPosition( vcl::Window *pWindow, pEvt->mnCursorBoundHeight = 0; ImplSVData* pSVData = ImplGetSVData(); - vcl::Window* pChild = pSVData->maWinData.mpExtTextInputWin; + vcl::Window* pChild = pSVData->mpWinData->mpExtTextInputWin; if ( !pChild ) pChild = ImplGetKeyInputWindow( pWindow ); diff --git a/vcl/source/window/wrkwin.cxx b/vcl/source/window/wrkwin.cxx index 1133a9f383ad..d4ae1e7898a8 100644 --- a/vcl/source/window/wrkwin.cxx +++ b/vcl/source/window/wrkwin.cxx @@ -61,8 +61,9 @@ void WorkWindow::ImplInit( vcl::Window* pParent, WinBits nStyle, SystemParentDat if ( nStyle & WB_APP ) { ImplSVData* pSVData = ImplGetSVData(); - SAL_WARN_IF( pSVData->maWinData.mpAppWin, "vcl", "WorkWindow::WorkWindow(): More than one window with style WB_APP" ); - pSVData->maWinData.mpAppWin = this; + SAL_WARN_IF(pSVData->maFrameData.mpAppWin, "vcl", + "WorkWindow::WorkWindow(): More than one window with style WB_APP"); + pSVData->maFrameData.mpAppWin = this; } SetActivateMode( ActivateModeFlags::GrabFocus ); @@ -120,9 +121,9 @@ WorkWindow::~WorkWindow() void WorkWindow::dispose() { ImplSVData* pSVData = ImplGetSVData(); - if ( pSVData->maWinData.mpAppWin == this ) + if (pSVData->maFrameData.mpAppWin == this) { - pSVData->maWinData.mpAppWin = nullptr; + pSVData->maFrameData.mpAppWin = nullptr; Application::Quit(); } SystemWindow::dispose(); @@ -253,7 +254,7 @@ bool WorkWindow::Close() bool bCanClose = SystemWindow::Close(); // if it's the application window then close the application - if ( bCanClose && ( ImplGetSVData()->maWinData.mpAppWin == this ) ) + if (bCanClose && (ImplGetSVData()->maFrameData.mpAppWin == this)) Application::Quit(); return bCanClose; |