* 0001-undo-clone.patch - Add patch to fix test failure on 32bit: * 0001-watermark.patch OBS-URL: https://build.opensuse.org/package/show/LibreOffice:Factory/libreoffice?expand=0&rev=505
91 lines
3.9 KiB
Diff
91 lines
3.9 KiB
Diff
From cd38a25d41e1ce2acad25b1b5b2a5e77239e36ed Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Tam=C3=A1s=20Zolnai?= <tamas.zolnai@collabora.com>
|
|
Date: Mon, 12 Jun 2017 14:34:59 +0200
|
|
Subject: tdf#108480: Undo from clone formating does not remove vertical
|
|
alignment
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
In the related change:
|
|
d36aa2ba3132ce62a370b7260ca620642cbf7dbf
|
|
wrong method was used to set cell properties, which does
|
|
not handle undo actions, so use the proper function.
|
|
|
|
Other issue was related to undo handling of vertical text
|
|
alignment in general. In some cases undo actions were lost
|
|
after user clicked out of the cell. It is because vertical
|
|
alignment is not affecting the outliner and so the related
|
|
undo actions were just dropped in EndTextEdit() method.
|
|
|
|
Change-Id: I3a6a95fac711056a658a3dee616733939cd13330
|
|
Reviewed-on: https://gerrit.libreoffice.org/38699
|
|
Tested-by: Jenkins <ci@libreoffice.org>
|
|
Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
|
|
(cherry picked from commit 37d8ac12902506f4185e10f1de4f566dbaf53e42)
|
|
Reviewed-on: https://gerrit.libreoffice.org/38724
|
|
|
|
diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx
|
|
index ff71c07..ea521d7 100644
|
|
--- a/svx/source/svdraw/svdedxv.cxx
|
|
+++ b/svx/source/svdraw/svdedxv.cxx
|
|
@@ -2228,9 +2228,8 @@ void SdrObjEditView::TakeFormatPaintBrush( std::shared_ptr< SfxItemSet >& rForma
|
|
if( pObj && (pObj->GetObjInventor() == SdrInventor::Default ) && (pObj->GetObjIdentifier() == OBJ_TABLE) )
|
|
{
|
|
auto pTable = static_cast<const sdr::table::SdrTableObj*>(pObj);
|
|
- if (pTable->getActiveCell().is()) {
|
|
- SfxItemSet const & rSet = pTable->GetActiveCellItemSet();
|
|
- rFormatSet->Put(rSet);
|
|
+ if (mxSelectionController.is() && pTable->getActiveCell().is()) {
|
|
+ mxSelectionController->GetAttributes(*rFormatSet, false);
|
|
}
|
|
}
|
|
}
|
|
@@ -2378,8 +2377,8 @@ void SdrObjEditView::ApplyFormatPaintBrush( SfxItemSet& rFormatSet, bool bNoChar
|
|
if( pObj && (pObj->GetObjInventor() == SdrInventor::Default) && (pObj->GetObjIdentifier() == OBJ_TABLE) )
|
|
{
|
|
auto pTable = static_cast<sdr::table::SdrTableObj*>(pObj);
|
|
- if (pTable->getActiveCell().is()) {
|
|
- pTable->SetMergedItemSetAndBroadcastOnActiveCell(rFormatSet);
|
|
+ if (pTable->getActiveCell().is() && mxSelectionController.is()) {
|
|
+ mxSelectionController->SetAttributes(rFormatSet, false);
|
|
}
|
|
}
|
|
}
|
|
diff --git a/svx/source/table/svdotable.cxx b/svx/source/table/svdotable.cxx
|
|
index 4c51d41..ef58d32 100644
|
|
--- a/svx/source/table/svdotable.cxx
|
|
+++ b/svx/source/table/svdotable.cxx
|
|
@@ -1768,18 +1768,19 @@ bool SdrTableObj::BegTextEdit(SdrOutliner& rOutl)
|
|
|
|
void SdrTableObj::EndTextEdit(SdrOutliner& rOutl)
|
|
{
|
|
- if(rOutl.IsModified())
|
|
+
|
|
+ if (GetModel() && GetModel()->IsUndoEnabled() && !mpImpl->maUndos.empty())
|
|
{
|
|
- if( GetModel() && GetModel()->IsUndoEnabled() )
|
|
- {
|
|
- // These actions should be on the undo stack after text edit.
|
|
- for (std::unique_ptr<SdrUndoAction>& pAction : mpImpl->maUndos)
|
|
- GetModel()->AddUndo(pAction.release());
|
|
- mpImpl->maUndos.clear();
|
|
+ // These actions should be on the undo stack after text edit.
|
|
+ for (std::unique_ptr<SdrUndoAction>& pAction : mpImpl->maUndos)
|
|
+ GetModel()->AddUndo(pAction.release());
|
|
+ mpImpl->maUndos.clear();
|
|
|
|
- GetModel()->AddUndo( GetModel()->GetSdrUndoFactory().CreateUndoGeoObject(*this) );
|
|
- }
|
|
+ GetModel()->AddUndo(GetModel()->GetSdrUndoFactory().CreateUndoGeoObject(*this));
|
|
+ }
|
|
|
|
+ if(rOutl.IsModified())
|
|
+ {
|
|
OutlinerParaObject* pNewText = nullptr;
|
|
Paragraph* p1stPara = rOutl.GetParagraph( 0 );
|
|
sal_Int32 nParaAnz = rOutl.GetParagraphCount();
|
|
--
|
|
cgit v0.10.2
|
|
|