summaryrefslogtreecommitdiff
path: root/svx/source/svdraw/svdedtv.cxx
diff options
context:
space:
mode:
authorXisco Fauli <xiscofauli@libreoffice.org>2019-07-02 00:01:01 +0200
committerMiklos Vajna <vmiklos@collabora.com>2019-07-03 09:18:41 +0200
commite6c7a018a0cfee395ce2886d41c908a2447ef5cc (patch)
tree724d0f4e4b62ea2cd91480ee10690585dbafa7a8 /svx/source/svdraw/svdedtv.cxx
parentc7f633d80f9ef5db60ad7218adf08a5914438e80 (diff)
tdf#126180: EndTextEdit on all views before delete/cut slide
This also reworks the fixes tdf#125824 and tdf#111522 to use EndTextEdit instead of blocking the undoing Change-Id: I73c2289a9d950465f020f684e9e736148380f5c5 Reviewed-on: https://gerrit.libreoffice.org/74989 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Diffstat (limited to 'svx/source/svdraw/svdedtv.cxx')
-rw-r--r--svx/source/svdraw/svdedtv.cxx13
1 files changed, 7 insertions, 6 deletions
diff --git a/svx/source/svdraw/svdedtv.cxx b/svx/source/svdraw/svdedtv.cxx
index e424276da087..d83910a86746 100644
--- a/svx/source/svdraw/svdedtv.cxx
+++ b/svx/source/svdraw/svdedtv.cxx
@@ -973,8 +973,11 @@ bool SdrEditView::InsertObjectAtView(SdrObject* pObj, SdrPageView& rPV, SdrInser
if (!pObj->IsInserted()) {
rPV.GetObjList()->InsertObject(pObj, SAL_MAX_SIZE);
}
- if( IsUndoEnabled() && CanDoSdrUndo())
+ if( IsUndoEnabled())
+ {
+ EndTextEditAllViews();
AddUndo(GetModel()->GetSdrUndoFactory().CreateUndoNewObject(*pObj));
+ }
if (!(nOptions & SdrInsertFlags::DONTMARK)) {
if (!(nOptions & SdrInsertFlags::ADDMARK)) UnmarkAllObj();
@@ -1029,20 +1032,18 @@ bool SdrEditView::IsUndoEnabled() const
return mpModel->IsUndoEnabled();
}
-bool SdrEditView::CanDoSdrUndo() const
+void SdrEditView::EndTextEditAllViews() const
{
size_t nViews = mpModel->GetListenerCount();
for (size_t nView = 0; nView < nViews; ++nView)
{
- SdrEditView* pView = dynamic_cast<SdrEditView*>(mpModel->GetListener(nView));
+ SdrObjEditView* pView = dynamic_cast<SdrObjEditView*>(mpModel->GetListener(nView));
if (!pView)
continue;
if (pView->IsTextEdit())
- return false;
+ pView->SdrEndTextEdit();
}
-
- return true;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */