diff options
Diffstat (limited to 'editeng/source/editeng/eerdll.cxx')
-rw-r--r-- | editeng/source/editeng/eerdll.cxx | 34 |
1 files changed, 24 insertions, 10 deletions
diff --git a/editeng/source/editeng/eerdll.cxx b/editeng/source/editeng/eerdll.cxx index 09b990930d82..a73d7eb3d7b0 100644 --- a/editeng/source/editeng/eerdll.cxx +++ b/editeng/source/editeng/eerdll.cxx @@ -85,11 +85,8 @@ EditDLL& EditDLL::Get() } GlobalEditData::GlobalEditData() : - ppDefItems(nullptr), - mpVirDev(VclPtr<VirtualDevice>::Create()) -{ - mpVirDev->SetMapMode(MapUnit::MapTwip); -} + ppDefItems(nullptr) +{ } GlobalEditData::~GlobalEditData() { @@ -197,11 +194,6 @@ uno::Reference< linguistic2::XLanguageGuessing > const & GlobalEditData::GetLang return xLanguageGuesser; } -VclPtr<VirtualDevice> GlobalEditData::GetStdVirtualDevice() -{ - return mpVirDev; -} - EditResId::EditResId(sal_uInt16 nId) : ResId(nId, *EditDLL::GetResMgr()) { @@ -225,4 +217,26 @@ ResMgr* EditDLL::GetResMgr() return pResMgr; } + +editeng::SharedVclResources::SharedVclResources() + : m_pVirDev(VclPtr<VirtualDevice>::Create()) +{ + m_pVirDev->SetMapMode(MapUnit::MapTwip); +} + +editeng::SharedVclResources::~SharedVclResources() + { m_pVirDev.disposeAndClear(); } + +VclPtr<VirtualDevice> editeng::SharedVclResources::GetVirtualDevice() + { return m_pVirDev; } + +std::shared_ptr<editeng::SharedVclResources> EditDLL::GetSharedVclResources() +{ + SolarMutexGuard g; + auto pLocked(pSharedVcl.lock()); + if(!pLocked) + pSharedVcl = pLocked = std::shared_ptr<editeng::SharedVclResources>(new editeng::SharedVclResources()); + return pLocked; +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |