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:
// created by hasMoreElements
uno::Reference< text::XTextContent > m_xNextObject;
FrameDependList_t m_Frames;
::std::shared_ptr<SwUnoCrsr> m_pUnoCursor;
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())
{
GetCursor()->SetMark();
......@@ -1714,7 +1716,6 @@ public:
virtual ~Impl() {
// Impl owns the cursor; delete it here: SolarMutex is locked
delete GetRegisteredIn();
}
SwUnoCrsr * GetCursor() {
......@@ -1725,6 +1726,7 @@ public:
protected:
// SwClient
virtual void Modify( const SfxPoolItem *pOld, const SfxPoolItem *pNew) SAL_OVERRIDE;
virtual void SwClientNotify(const SwModify& rModify, const SfxHint& rHint) SAL_OVERRIDE;
};
struct InvalidFrameDepend {
......@@ -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
lcl_CreateNextObject(SwUnoCrsr& i_rUnoCrsr,
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