Kaydet (Commit) 6ab4c4f9 authored tarafından Bjoern Michaelsen's avatar Bjoern Michaelsen

use new unocrsrs for SwXParaFrameEnumeration

Change-Id: I0b02b32b0852cc97d4ffcbafdd0405da64b2a9af
üst 9a949b9c
...@@ -1701,10 +1701,12 @@ public: ...@@ -1701,10 +1701,12 @@ public:
// created by hasMoreElements // created by hasMoreElements
uno::Reference< text::XTextContent > m_xNextObject; uno::Reference< text::XTextContent > m_xNextObject;
FrameDependList_t m_Frames; FrameDependList_t m_Frames;
::std::shared_ptr<SwUnoCrsr> m_pUnoCursor;
Impl(SwPaM const & rPaM) Impl(SwPaM const & rPaM)
: SwClient(rPaM.GetDoc()->CreateUnoCrsr(*rPaM.GetPoint(), false)) : m_pUnoCursor(rPaM.GetDoc()->CreateUnoCrsr2(*rPaM.GetPoint(), false))
{ {
m_pUnoCursor->Add(this);
if (rPaM.HasMark()) if (rPaM.HasMark())
{ {
GetCursor()->SetMark(); GetCursor()->SetMark();
...@@ -1714,7 +1716,6 @@ public: ...@@ -1714,7 +1716,6 @@ public:
virtual ~Impl() { virtual ~Impl() {
// Impl owns the cursor; delete it here: SolarMutex is locked // Impl owns the cursor; delete it here: SolarMutex is locked
delete GetRegisteredIn();
} }
SwUnoCrsr * GetCursor() { SwUnoCrsr * GetCursor() {
...@@ -1725,6 +1726,7 @@ public: ...@@ -1725,6 +1726,7 @@ public:
protected: protected:
// SwClient // SwClient
virtual void Modify( const SfxPoolItem *pOld, const SfxPoolItem *pNew) SAL_OVERRIDE; virtual void Modify( const SfxPoolItem *pOld, const SfxPoolItem *pNew) SAL_OVERRIDE;
virtual void SwClientNotify(const SwModify& rModify, const SfxHint& rHint) SAL_OVERRIDE;
}; };
struct InvalidFrameDepend { struct InvalidFrameDepend {
...@@ -1750,6 +1752,17 @@ void SwXParaFrameEnumeration::Impl::Modify( const SfxPoolItem *pOld, const SfxPo ...@@ -1750,6 +1752,17 @@ void SwXParaFrameEnumeration::Impl::Modify( const SfxPoolItem *pOld, const SfxPo
} }
} }
void SwXParaFrameEnumeration::Impl::SwClientNotify(const SwModify& rModify, const SfxHint& rHint)
{
SwClient::SwClientNotify(rModify, rHint);
if(m_pUnoCursor && typeid(rHint) == typeid(sw::DocDisposingHint))
{
assert(m_pUnoCursor->m_bSaneOwnership);
m_pUnoCursor->Remove(this);
m_pUnoCursor.reset();
}
}
static bool static bool
lcl_CreateNextObject(SwUnoCrsr& i_rUnoCrsr, lcl_CreateNextObject(SwUnoCrsr& i_rUnoCrsr,
uno::Reference<text::XTextContent> & o_rNextObject, uno::Reference<text::XTextContent> & o_rNextObject,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment