summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorAshod Nakashian <ashod.nakashian@collabora.co.uk>2019-05-29 23:33:25 -0400
committerAshod Nakashian <ashnakash@gmail.com>2019-12-11 20:52:12 +0100
commitcde58f1726f8da36968eb8faba76aee83a9d3448 (patch)
treeaf37f180de247154d5471ef9f6d0cb997e5600eb /vcl
parent85f3f8de19e63f41e9c304427e9f7a840480f21c (diff)
vcl: sfx2: LOK: Support per-view popup windows
While we do support multiple views, there is only one state for popup/floating windows, that also includes the dialogs open and related windows/data. This adds support to allow each view to have its own popups and state, thus allowing multiple users to interact with the dialogs independently of one another. (cherry picked from commit b50c341a53911f1d725947a4d8d3d2f782c94079) Change-Id: I3786a561ca6ca113ad12425bdb491e5a30bd1a28 Reviewed-on: https://gerrit.libreoffice.org/82440 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Diffstat (limited to 'vcl')
-rw-r--r--vcl/inc/svdata.hxx26
-rw-r--r--vcl/source/app/help.cxx8
-rw-r--r--vcl/source/app/salvtables.cxx2
-rw-r--r--vcl/source/app/svapp.cxx44
-rw-r--r--vcl/source/app/svdata.cxx62
-rw-r--r--vcl/source/app/svmain.cxx26
-rw-r--r--vcl/source/outdev/font.cxx4
-rw-r--r--vcl/source/outdev/map.cxx4
-rw-r--r--vcl/source/uitest/logger.cxx6
-rw-r--r--vcl/source/uitest/uitest.cxx6
-rw-r--r--vcl/source/window/brdwin.cxx2
-rw-r--r--vcl/source/window/cursor.cxx3
-rw-r--r--vcl/source/window/dialog.cxx88
-rw-r--r--vcl/source/window/event.cxx16
-rw-r--r--vcl/source/window/floatwin.cxx24
-rw-r--r--vcl/source/window/menu.cxx7
-rw-r--r--vcl/source/window/menubarwindow.cxx12
-rw-r--r--vcl/source/window/menufloatingwindow.cxx2
-rw-r--r--vcl/source/window/mouse.cxx42
-rw-r--r--vcl/source/window/msgbox.cxx10
-rw-r--r--vcl/source/window/scrwnd.cxx6
-rw-r--r--vcl/source/window/stacking.cxx2
-rw-r--r--vcl/source/window/syswin.cxx4
-rw-r--r--vcl/source/window/taskpanelist.cxx44
-rw-r--r--vcl/source/window/toolbox.cxx4
-rw-r--r--vcl/source/window/window.cxx85
-rw-r--r--vcl/source/window/window2.cxx60
-rw-r--r--vcl/source/window/winproc.cxx180
-rw-r--r--vcl/source/window/wrkwin.cxx11
-rw-r--r--vcl/unx/generic/window/salframe.cxx16
-rw-r--r--vcl/unx/gtk/gtksalframe.cxx8
-rw-r--r--vcl/unx/gtk3/gtk3gtkframe.cxx6
32 files changed, 444 insertions, 376 deletions
diff --git a/vcl/inc/svdata.hxx b/vcl/inc/svdata.hxx
index 56912ae5bf5d..1fae7681f8e7 100644
--- a/vcl/inc/svdata.hxx
+++ b/vcl/inc/svdata.hxx
@@ -208,13 +208,20 @@ struct ImplSVGDIData
o3tl::lru_map<OUString, gfx::DrawRoot> maThemeDrawCommandsCache = o3tl::lru_map<OUString, gfx::DrawRoot>(50);
};
-struct ImplSVWinData
+struct ImplSVFrameData
{
- ~ImplSVWinData();
+ ~ImplSVFrameData();
VclPtr<vcl::Window> mpFirstFrame; // First FrameWindow
+ VclPtr<vcl::Window> mpActiveApplicationFrame; // the last active application frame, can be used as DefModalDialogParent if no focuswin set
VclPtr<WorkWindow> mpAppWin; // Application-Window
+
+ std::unique_ptr<UITestLogger> m_pUITestLogger;
+};
+
+struct ImplSVWinData
+{
+ ~ImplSVWinData();
VclPtr<vcl::Window> mpFocusWin; // window, that has the focus
- VclPtr<vcl::Window> mpActiveApplicationFrame; // the last active application frame, can be used as DefModalDialogParent if no focuswin set
VclPtr<vcl::Window> mpCaptureWin; // window, that has the mouse capture
VclPtr<vcl::Window> mpLastDeacWin; // Window, that need a deactivate (FloatingWindow-Handling)
VclPtr<FloatingWindow> mpFirstFloat; // First FloatingWindow in PopupMode
@@ -231,8 +238,6 @@ struct ImplSVWinData
StartAutoScrollFlags mnAutoScrollFlags = StartAutoScrollFlags::NONE; // auto scroll flags
bool mbNoDeactivate = false; // true: do not execute Deactivate
bool mbNoSaveFocus = false; // true: menus must not save/restore focus
-
- std::unique_ptr<UITestLogger> m_pUITestLogger;
};
typedef std::vector< std::pair< OUString, FieldUnit > > FieldUnitStringList;
@@ -363,11 +368,12 @@ struct ImplSVData
std::unique_ptr<SalSystem> mpSalSystem; // SalSystem interface
bool mbResLocaleSet = false; // SV-Resource-Manager
std::locale maResLocale; // Resource locale
- ImplSchedulerContext maSchedCtx; // indepen data for class Scheduler
- ImplSVAppData maAppData; // indepen data for class Application
- ImplSVGDIData maGDIData; // indepen data for Output classes
- ImplSVWinData maWinData; // indepen data for Windows classes
- ImplSVCtrlData maCtrlData; // indepen data for Control classes
+ ImplSchedulerContext maSchedCtx; // Data for class Scheduler
+ ImplSVAppData maAppData; // Data for class Application
+ ImplSVGDIData maGDIData; // Data for Output classes
+ ImplSVFrameData maFrameData; // Data for Frame classes
+ ImplSVWinData* mpWinData = nullptr; // Data for per-view Windows classes
+ ImplSVCtrlData maCtrlData; // Data for Control classes
ImplSVHelpData* mpHelpData; // Data for Help classes
ImplSVNWFData maNWFData;
UnoWrapperBase* mpUnoWrapper = nullptr;
diff --git a/vcl/source/app/help.cxx b/vcl/source/app/help.cxx
index 7abe54cdfac0..b7cf9f4d4b6b 100644
--- a/vcl/source/app/help.cxx
+++ b/vcl/source/app/help.cxx
@@ -118,8 +118,8 @@ bool Help::StartExtHelp()
aHelpData.mbExtHelpMode = true;
aHelpData.mbOldBalloonMode = aHelpData.mbBalloonHelp;
aHelpData.mbBalloonHelp = true;
- if ( pSVData->maWinData.mpAppWin )
- pSVData->maWinData.mpAppWin->ImplGenerateMouseMove();
+ if (pSVData->maFrameData.mpAppWin)
+ pSVData->maFrameData.mpAppWin->ImplGenerateMouseMove();
return true;
}
@@ -135,8 +135,8 @@ bool Help::EndExtHelp()
{
aHelpData.mbExtHelpMode = false;
aHelpData.mbBalloonHelp = aHelpData.mbOldBalloonMode;
- if ( pSVData->maWinData.mpAppWin )
- pSVData->maWinData.mpAppWin->ImplGenerateMouseMove();
+ if (pSVData->maFrameData.mpAppWin)
+ pSVData->maFrameData.mpAppWin->ImplGenerateMouseMove();
return true;
}
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 9b4ce8144916..856f6745b300 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -3741,7 +3741,7 @@ weld::Builder* Application::CreateInterimBuilder(weld::Widget* pParent, const OU
void SalInstanceWindow::help()
{
//show help for widget with keyboard focus
- vcl::Window* pWidget = ImplGetSVData()->maWinData.mpFocusWin;
+ vcl::Window* pWidget = ImplGetSVData()->mpWinData->mpFocusWin;
if (!pWidget)
pWidget = m_xWindow;
OString sHelpId = pWidget->GetHelpId();
diff --git a/vcl/source/app/svapp.cxx b/vcl/source/app/svapp.cxx
index fed84899714c..b69941f316e1 100644
--- a/vcl/source/app/svapp.cxx
+++ b/vcl/source/app/svapp.cxx
@@ -186,7 +186,7 @@ int Application::Main()
bool Application::QueryExit()
{
- WorkWindow* pAppWin = ImplGetSVData()->maWinData.mpAppWin;
+ WorkWindow* pAppWin = ImplGetSVData()->maFrameData.mpAppWin;
// call the close handler of the application window
if ( pAppWin )
@@ -300,8 +300,8 @@ const vcl::KeyCode* Application::GetReservedKeyCode( sal_uLong i )
IMPL_STATIC_LINK_NOARG( ImplSVAppData, ImplEndAllPopupsMsg, void*, void )
{
ImplSVData* pSVData = ImplGetSVData();
- while (pSVData->maWinData.mpFirstFloat)
- pSVData->maWinData.mpFirstFloat->EndPopupMode(FloatWinPopupEndFlags::Cancel);
+ while (pSVData->mpWinData->mpFirstFloat)
+ pSVData->mpWinData->mpFirstFloat->EndPopupMode(FloatWinPopupEndFlags::Cancel);
}
IMPL_STATIC_LINK_NOARG( ImplSVAppData, ImplEndAllDialogsMsg, void*, void )
@@ -484,7 +484,7 @@ void Scheduler::ProcessEventsToIdle()
// events were processed at some point, but our check can't prevent further
// processing in the main thread, which may add new events, so skip it.
const ImplSVData* pSVData = ImplGetSVData();
- if (!pSVData->mpDefInst->IsMainThread())
+ if ( !pSVData->mpDefInst->IsMainThread() )
return;
for (int nTaskPriority = 0; nTaskPriority < PRIO_COUNT; ++nTaskPriority)
{
@@ -591,8 +591,8 @@ bool Application::IsUICaptured()
// If mouse was captured, or if in tracking- or in select-mode of a floatingwindow (e.g. menus
// or pulldown toolboxes) another window should be created
// D&D active !!!
- return pSVData->maWinData.mpCaptureWin || pSVData->maWinData.mpTrackWin ||
- pSVData->maWinData.mpFirstFloat || nImplSysDialog;
+ return pSVData->mpWinData->mpCaptureWin || pSVData->mpWinData->mpTrackWin
+ || pSVData->mpWinData->mpFirstFloat || nImplSysDialog;
}
void Application::OverrideSystemSettings( AllSettings& /*rSettings*/ )
@@ -601,7 +601,7 @@ void Application::OverrideSystemSettings( AllSettings& /*rSettings*/ )
void Application::MergeSystemSettings( AllSettings& rSettings )
{
- vcl::Window* pWindow = ImplGetSVData()->maWinData.mpFirstFrame;
+ vcl::Window* pWindow = ImplGetSVData()->maFrameData.mpFirstFrame;
if( ! pWindow )
pWindow = ImplGetDefaultWindow();
if( pWindow )
@@ -646,7 +646,7 @@ void Application::SetSettings( const AllSettings& rSettings )
ImplCallEventListenersApplicationDataChanged( &aDCEvt);
// Update all windows
- vcl::Window* pFirstFrame = pSVData->maWinData.mpFirstFrame;
+ vcl::Window* pFirstFrame = pSVData->maFrameData.mpFirstFrame;
// Reset data that needs to be re-calculated
long nOldDPIX = 0;
long nOldDPIY = 0;
@@ -681,7 +681,7 @@ void Application::SetSettings( const AllSettings& rSettings )
// if DPI resolution for screen output was changed set the new resolution for all
// screen compatible VirDev's
- pFirstFrame = pSVData->maWinData.mpFirstFrame;
+ pFirstFrame = pSVData->maFrameData.mpFirstFrame;
if ( pFirstFrame )
{
if ( (pFirstFrame->GetDPIX() != nOldDPIX) ||
@@ -742,7 +742,7 @@ void InitSettings(ImplSVData* pSVData)
void Application::NotifyAllWindows( DataChangedEvent& rDCEvt )
{
ImplSVData* pSVData = ImplGetSVData();
- vcl::Window* pFrame = pSVData->maWinData.mpFirstFrame;
+ vcl::Window* pFrame = pSVData->maFrameData.mpFirstFrame;
while ( pFrame )
{
pFrame->NotifyAllChildren( rDCEvt );
@@ -1053,12 +1053,12 @@ void Application::RemoveUserEvent( ImplSVEvent * nUserEvent )
WorkWindow* Application::GetAppWindow()
{
- return ImplGetSVData()->maWinData.mpAppWin;
+ return ImplGetSVData()->maFrameData.mpAppWin;
}
vcl::Window* Application::GetFocusWindow()
{
- return ImplGetSVData()->maWinData.mpFocusWin;
+ return ImplGetSVData()->mpWinData->mpFocusWin;
}
OutputDevice* Application::GetDefaultDevice()
@@ -1069,7 +1069,7 @@ OutputDevice* Application::GetDefaultDevice()
vcl::Window* Application::GetFirstTopLevelWindow()
{
ImplSVData* pSVData = ImplGetSVData();
- return pSVData->maWinData.mpFirstFrame;
+ return pSVData->maFrameData.mpFirstFrame;
}
vcl::Window* Application::GetNextTopLevelWindow( vcl::Window const * pWindow )
@@ -1081,7 +1081,7 @@ long Application::GetTopWindowCount()
{
long nRet = 0;
ImplSVData* pSVData = ImplGetSVData();
- vcl::Window *pWin = pSVData ? pSVData->maWinData.mpFirstFrame.get() : nullptr;
+ vcl::Window *pWin = pSVData ? pSVData->maFrameData.mpFirstFrame.get() : nullptr;
while( pWin )
{
if( pWin->ImplGetWindow()->IsTopWindow() )
@@ -1095,7 +1095,7 @@ vcl::Window* Application::GetTopWindow( long nIndex )
{
long nIdx = 0;
ImplSVData* pSVData = ImplGetSVData();
- vcl::Window *pWin = pSVData ? pSVData->maWinData.mpFirstFrame.get() : nullptr;
+ vcl::Window *pWin = pSVData ? pSVData->maFrameData.mpFirstFrame.get() : nullptr;
while( pWin )
{
if( pWin->ImplGetWindow()->IsTopWindow() )
@@ -1112,7 +1112,7 @@ vcl::Window* Application::GetTopWindow( long nIndex )
vcl::Window* Application::GetActiveTopWindow()
{
- vcl::Window *pWin = ImplGetSVData()->maWinData.mpFocusWin;
+ vcl::Window *pWin = ImplGetSVData()->mpWinData->mpFocusWin;
while( pWin )
{
if( pWin->IsTopWindow() )
@@ -1185,8 +1185,8 @@ OUString Application::GetDisplayName()
ImplSVData* pSVData = ImplGetSVData();
if ( pSVData->maAppData.mxDisplayName )
return *(pSVData->maAppData.mxDisplayName);
- else if ( pSVData->maWinData.mpAppWin )
- return pSVData->maWinData.mpAppWin->GetText();
+ else if (pSVData->maFrameData.mpAppWin)
+ return pSVData->maFrameData.mpAppWin->GetText();
else
return OUString();
}
@@ -1348,7 +1348,7 @@ vcl::Window* Application::GetDefDialogParent()
// as DefDialogParent
// current focus frame
- vcl::Window *pWin = pSVData->maWinData.mpFocusWin;
+ vcl::Window *pWin = pSVData->mpWinData->mpFocusWin;
if (pWin && !pWin->IsMenuFloatingWindow())
{
while (pWin->mpWindowImpl && pWin->mpWindowImpl->mpParent)
@@ -1358,7 +1358,7 @@ vcl::Window* Application::GetDefDialogParent()
if (!pWin->mpWindowImpl)
{
OSL_FAIL( "Window hierarchy corrupted!" );
- pSVData->maWinData.mpFocusWin = nullptr; // avoid further access
+ pSVData->mpWinData->mpFocusWin = nullptr; // avoid further access
return nullptr;
}
@@ -1369,14 +1369,14 @@ vcl::Window* Application::GetDefDialogParent()
}
// last active application frame
- pWin = pSVData->maWinData.mpActiveApplicationFrame;
+ pWin = pSVData->maFrameData.mpActiveApplicationFrame;
if (pWin)
{
return pWin->mpWindowImpl->mpFrameWindow->ImplGetWindow();
}
// first visible top window (may be totally wrong....)
- pWin = pSVData->maWinData.mpFirstFrame;
+ pWin = pSVData->maFrameData.mpFirstFrame;
while (pWin)
{
if( pWin->ImplGetWindow()->IsTopWindow() &&
diff --git a/vcl/source/app/svdata.cxx b/vcl/source/app/svdata.cxx
index 84f268d77015..daa7a20e71aa 100644
--- a/vcl/source/app/svdata.cxx
+++ b/vcl/source/app/svdata.cxx
@@ -76,6 +76,10 @@ namespace
struct private_aImplSVHelpData :
public rtl::Static<ImplSVHelpData, private_aImplSVHelpData> {};
+ /// Default instance ensures that ImplSVData::mpWinData is never null.
+ struct private_aImplSVWinData :
+ public rtl::Static<ImplSVWinData, private_aImplSVWinData> {};
+
}
ImplSVData* ImplGetSVData() {
@@ -237,8 +241,8 @@ basegfx::SystemDependentDataManager& ImplGetSystemDependentDataManager()
vcl::Window* ImplGetDefaultWindow()
{
ImplSVData* pSVData = ImplGetSVData();
- if ( pSVData->maWinData.mpAppWin )
- return pSVData->maWinData.mpAppWin;
+ if (pSVData->maFrameData.mpAppWin)
+ return pSVData->maFrameData.mpAppWin;
else
return ImplGetDefaultContextWindow();
}
@@ -387,6 +391,54 @@ void LocaleConfigurationListener::ConfigurationChanged( utl::ConfigurationBroadc
AllSettings::LocaleSettingsChanged( nHint );
}
+ImplSVWinData* CreateSVWinData()
+{
+ if (!comphelper::LibreOfficeKit::isActive())
+ return nullptr;
+
+ ImplSVWinData* p = new ImplSVWinData();
+
+ ImplSVData* pSVData = ImplGetSVData();
+ assert(pSVData && pSVData->mpWinData);
+
+ p->mpFocusWin = pSVData->mpWinData->mpFocusWin;
+ return p;
+}
+
+void DestroySVWinData(ImplSVWinData* pData)
+{
+ delete static_cast<ImplSVWinData*>(pData);
+}
+
+void SetSVWinData(ImplSVWinData* pSVWinData)
+{
+ if (!comphelper::LibreOfficeKit::isActive())
+ return;
+
+ ImplSVData* pSVData = ImplGetSVData();
+ assert(pSVData != nullptr);
+
+ if (pSVData->mpWinData != pSVWinData)
+ {
+ // If current one is the static, clean it up to avoid having lingering references.
+ if (pSVData->mpWinData == &private_aImplSVWinData::get())
+ {
+ pSVData->mpWinData->mpFocusWin.reset();
+ }
+
+ pSVData->mpWinData = pSVWinData;
+ if (pSVData->mpWinData == nullptr)
+ {
+ pSVData->mpWinData = &private_aImplSVWinData::get(); // Never leave it null.
+ }
+ }
+}
+
+ImplSVData::ImplSVData()
+{
+ mpHelpData = &private_aImplSVHelpData::get();
+ mpWinData = &private_aImplSVWinData::get();
+}
ImplSVHelpData* CreateSVHelpData()
{
@@ -447,11 +499,6 @@ void SetSVHelpData(ImplSVHelpData* pSVHelpData)
}
}
-ImplSVData::ImplSVData()
-{
- mpHelpData = &private_aImplSVHelpData::get();
-}
-
ImplSVHelpData& ImplGetSVHelpData()
{
ImplSVData* pSVData = ImplGetSVData();
@@ -468,6 +515,7 @@ ImplSVHelpData& ImplGetSVHelpData()
ImplSVData::~ImplSVData() {}
ImplSVAppData::~ImplSVAppData() {}
ImplSVGDIData::~ImplSVGDIData() {}
+ImplSVFrameData::~ImplSVFrameData() {}
ImplSVWinData::~ImplSVWinData() {}
ImplSVHelpData::~ImplSVHelpData() {}
diff --git a/vcl/source/app/svmain.cxx b/vcl/source/app/svmain.cxx
index 3fd6d86b1bc0..74b7fa6a0789 100644
--- a/vcl/source/app/svmain.cxx
+++ b/vcl/source/app/svmain.cxx
@@ -487,7 +487,7 @@ void DeInitVCL()
Scheduler::ImplDeInitScheduler();
- pSVData->maWinData.maMsgBoxImgList.clear();
+ pSVData->mpWinData->maMsgBoxImgList.clear();
pSVData->maCtrlData.maCheckImgList.clear();
pSVData->maCtrlData.maRadioImgList.clear();
pSVData->maCtrlData.mpDisclosurePlus.reset();
@@ -538,7 +538,7 @@ void DeInitVCL()
pSVData->maAppData.mpSettings.reset();
}
- if (pSVData->maAppData.mpAccelMgr)
+ if ( pSVData->maAppData.mpAccelMgr )
{
delete pSVData->maAppData.mpAccelMgr;
pSVData->maAppData.mpAccelMgr = nullptr;
@@ -569,17 +569,17 @@ void DeInitVCL()
pSVData->maGDIData.mpLastVirDev = nullptr;
pSVData->maGDIData.mpFirstPrinter = nullptr;
pSVData->maGDIData.mpLastPrinter = nullptr;
- pSVData->maWinData.mpFirstFrame = nullptr;
- pSVData->maWinData.mpAppWin = nullptr;
- pSVData->maWinData.mpActiveApplicationFrame = nullptr;
- pSVData->maWinData.mpCaptureWin = nullptr;
- pSVData->maWinData.mpLastDeacWin = nullptr;
- pSVData->maWinData.mpFirstFloat = nullptr;
- pSVData->maWinData.mpExecuteDialogs.clear();
- pSVData->maWinData.mpExtTextInputWin = nullptr;
- pSVData->maWinData.mpTrackWin = nullptr;
- pSVData->maWinData.mpAutoScrollWin = nullptr;
- pSVData->maWinData.mpLastWheelWindow = nullptr;
+ pSVData->maFrameData.mpFirstFrame = nullptr;
+ pSVData->maFrameData.mpAppWin = nullptr;
+ pSVData->maFrameData.mpActiveApplicationFrame = nullptr;
+ pSVData->mpWinData->mpCaptureWin = nullptr;
+ pSVData->mpWinData->mpLastDeacWin = nullptr;
+ pSVData->mpWinData->mpFirstFloat = nullptr;
+ pSVData->mpWinData->mpExecuteDialogs.clear();
+ pSVData->mpWinData->mpExtTextInputWin = nullptr;
+ pSVData->mpWinData->mpTrackWin = nullptr;
+ pSVData->mpWinData->mpAutoScrollWin = nullptr;
+ pSVData->mpWinData->mpLastWheelWindow = nullptr;
pSVData->maGDIData.mxScreenFontList.reset();
pSVData->maGDIData.mxScreenFontCache.reset();
diff --git a/vcl/source/outdev/font.cxx b/vcl/source/outdev/font.cxx
index ffc6d9c2d147..6bb255b3eced 100644
--- a/vcl/source/outdev/font.cxx
+++ b/vcl/source/outdev/font.cxx
@@ -580,7 +580,7 @@ void OutputDevice::ImplClearAllFontData(bool bNewFontLists)
if ( bNewFontLists )
{
pSVData->maGDIData.mxScreenFontList->Clear();
- vcl::Window * pFrame = pSVData->maWinData.mpFirstFrame;
+ vcl::Window * pFrame = pSVData->maFrameData.mpFirstFrame;
if ( pFrame )
{
if ( pFrame->AcquireGraphics() )
@@ -609,7 +609,7 @@ void OutputDevice::ImplUpdateFontDataForAllFrames( const FontUpdateHandler_t pHd
ImplSVData* const pSVData = ImplGetSVData();
// update all windows
- vcl::Window* pFrame = pSVData->maWinData.mpFirstFrame;
+ vcl::Window* pFrame = pSVData->maFrameData.mpFirstFrame;
while ( pFrame )
{
( pFrame->*pHdl )( bNewFontLists );
diff --git a/vcl/source/outdev/map.cxx b/vcl/source/outdev/map.cxx
index 57969ec5758c..df63c7b31589 100644
--- a/vcl/source/outdev/map.cxx
+++ b/vcl/source/outdev/map.cxx
@@ -225,8 +225,8 @@ static void ImplCalcMapResolution( const MapMode& rMapMode,
ImplSVData* pSVData = ImplGetSVData();
if ( !pSVData->maGDIData.mnAppFontX )
{
- if( pSVData->maWinData.mpFirstFrame )
- vcl::Window::ImplInitAppFontData( pSVData->maWinData.mpFirstFrame );
+ if (pSVData->maFrameData.mpFirstFrame)
+ vcl::Window::ImplInitAppFontData(pSVData->maFrameData.mpFirstFrame);
else
{
ScopedVclPtrInstance<WorkWindow> pWin( nullptr, 0 );
diff --git a/vcl/source/uitest/logger.cxx b/vcl/source/uitest/logger.cxx
index 432a6af86b18..fa829f5eb9ce 100644
--- a/vcl/source/uitest/logger.cxx
+++ b/vcl/source/uitest/logger.cxx
@@ -260,12 +260,12 @@ UITestLogger& UITestLogger::getInstance()
ImplSVData *const pSVData = ImplGetSVData();
assert(pSVData);
- if (!pSVData->maWinData.m_pUITestLogger)
+ if (!pSVData->maFrameData.m_pUITestLogger)
{
- pSVData->maWinData.m_pUITestLogger.reset(new UITestLogger);
+ pSVData->maFrameData.m_pUITestLogger.reset(new UITestLogger);
}
- return *pSVData->maWinData.m_pUITestLogger;
+ return *pSVData->maFrameData.m_pUITestLogger;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/source/uitest/uitest.cxx b/vcl/source/uitest/uitest.cxx
index bf1f69bfe54b..7ee417c251c5 100644
--- a/vcl/source/uitest/uitest.cxx
+++ b/vcl/source/uitest/uitest.cxx
@@ -55,20 +55,20 @@ bool UITest::executeDialog(const OUString& rCommand)
std::unique_ptr<UIObject> UITest::getFocusTopWindow()
{
ImplSVData* pSVData = ImplGetSVData();
- ImplSVWinData& rWinData = pSVData->maWinData;
+ ImplSVWinData& rWinData = *pSVData->mpWinData;
if (!rWinData.mpExecuteDialogs.empty())
{
return rWinData.mpExecuteDialogs.back()->GetUITestFactory()(rWinData.mpExecuteDialogs.back());
}
- return rWinData.mpFirstFrame->GetUITestFactory()(rWinData.mpFirstFrame);
+ return pSVData->maFrameData.mpFirstFrame->GetUITestFactory()(pSVData->maFrameData.mpFirstFrame);
}
std::unique_ptr<UIObject> UITest::getFloatWindow()
{
ImplSVData* pSVData = ImplGetSVData();
- ImplSVWinData& rWinData = pSVData->maWinData;
+ ImplSVWinData& rWinData = *pSVData->mpWinData;
VclPtr<vcl::Window> pFloatWin = rWinData.mpFirstFloat;
if (pFloatWin)
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;
diff --git a/vcl/unx/generic/window/salframe.cxx b/vcl/unx/generic/window/salframe.cxx
index ab0700e948e2..5063c2cdebf6 100644
--- a/vcl/unx/generic/window/salframe.cxx
+++ b/vcl/unx/generic/window/salframe.cxx
@@ -2853,10 +2853,12 @@ bool X11SalFrame::HandleMouseEvent( XEvent *pEvent )
* applications do weird things.
*/
ImplSVData* pSVData = ImplGetSVData();
- if ( pSVData->maWinData.mpFirstFloat )
+ if (pSVData->mpWinData->mpFirstFloat)
{
- 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);
}
}
@@ -3357,11 +3359,11 @@ bool X11SalFrame::HandleFocusEvent( XFocusChangeEvent const *pEvent )
bool nRet = CallCallback( SalEvent::GetFocus, nullptr );
if ((mpParent != nullptr && nStyle_ == SalFrameStyleFlags::NONE)
- && pSVData->maWinData.mpFirstFloat )
+ && pSVData->mpWinData->mpFirstFloat)
{
- FloatWinPopupFlags nMode = pSVData->maWinData.mpFirstFloat->GetPopupModeFlags();
- pSVData->maWinData.mpFirstFloat->SetPopupModeFlags(
- nMode & ~FloatWinPopupFlags::NoAppFocusClose);
+ FloatWinPopupFlags nMode = pSVData->mpWinData->mpFirstFloat->GetPopupModeFlags();
+ pSVData->mpWinData->mpFirstFloat->SetPopupModeFlags(
+ nMode & ~FloatWinPopupFlags::NoAppFocusClose);
}
return nRet;
}
diff --git a/vcl/unx/gtk/gtksalframe.cxx b/vcl/unx/gtk/gtksalframe.cxx
index bf87ed3aba21..33002ececef9 100644
--- a/vcl/unx/gtk/gtksalframe.cxx
+++ b/vcl/unx/gtk/gtksalframe.cxx
@@ -2679,10 +2679,12 @@ gboolean GtkSalFrame::signalButton( GtkWidget*, GdkEventButton* pEvent, gpointer
if( bClosePopups )
{
ImplSVData* pSVData = ImplGetSVData();
- if ( pSVData->maWinData.mpFirstFloat )
+ if (pSVData->mpWinData->mpFirstFloat)
{
- 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);
}
}
diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx
index 95898a0f827e..1b6822046968 100644
--- a/vcl/unx/gtk3/gtk3gtkframe.cxx
+++ b/vcl/unx/gtk3/gtk3gtkframe.cxx
@@ -2620,11 +2620,11 @@ void GtkSalFrame::closePopup()
if (!m_nFloats)
return;
ImplSVData* pSVData = ImplGetSVData();
- if (!pSVData->maWinData.mpFirstFloat)
+ if (!pSVData->mpWinData->mpFirstFloat)
return;
- if (pSVData->maWinData.mpFirstFloat->ImplGetFrame() != this)
+ if (pSVData->mpWinData->mpFirstFloat->ImplGetFrame() != this)
return;
- pSVData->maWinData.mpFirstFloat->EndPopupMode(FloatWinPopupEndFlags::Cancel | FloatWinPopupEndFlags::CloseAll);
+ pSVData->mpWinData->mpFirstFloat->EndPopupMode(FloatWinPopupEndFlags::Cancel | FloatWinPopupEndFlags::CloseAll);
}
namespace