diff options
-rw-r--r-- | sc/source/ui/view/cliputil.cxx | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/sc/source/ui/view/cliputil.cxx b/sc/source/ui/view/cliputil.cxx index 95378d76b545..d2db10b0a062 100644 --- a/sc/source/ui/view/cliputil.cxx +++ b/sc/source/ui/view/cliputil.cxx @@ -8,6 +8,7 @@ */ #include <cliputil.hxx> +#include <attrib.hxx> #include <viewdata.hxx> #include <tabvwsh.hxx> #include <transobj.hxx> @@ -20,8 +21,10 @@ #include <viewutil.hxx> #include <markdata.hxx> #include <gridwin.hxx> +#include <scitems.hxx> #include <sfx2/classificationhelper.hxx> +#include <comphelper/lok.hxx> namespace { @@ -47,8 +50,11 @@ void ScClipUtil::PasteFromClipboard( ScViewData& rViewData, ScTabViewShell* pTab { const ScTransferObj* pOwnClip = ScTransferObj::GetOwnClipboard(ScTabViewShell::GetClipData(rViewData.GetActiveWin())); ScDocument& rThisDoc = rViewData.GetDocument(); - ScDPObject* pDPObj = rThisDoc.GetDPAtCursor( rViewData.GetCurX(), - rViewData.GetCurY(), rViewData.GetTabNo() ); + SCCOL nThisCol = rViewData.GetCurX(); + SCROW nThisRow = rViewData.GetCurY(); + SCTAB nThisTab = rViewData.GetTabNo(); + ScDPObject* pDPObj = rThisDoc.GetDPAtCursor( nThisCol, nThisRow, nThisTab ); + if ( pOwnClip && pDPObj ) { // paste from Calc into DataPilot table: sort (similar to drag & drop) @@ -90,6 +96,16 @@ void ScClipUtil::PasteFromClipboard( ScViewData& rViewData, ScTabViewShell* pTab bShowDialog ); // allow warning dialog } } + if (comphelper::LibreOfficeKit::isActive()) + { + const ScLineBreakCell* pItem = rThisDoc.GetAttr(nThisCol, nThisRow, nThisTab, ATTR_LINEBREAK); + if (pItem && pItem->GetValue()) + { + ScTabViewShell::notifyAllViewsSheetGeomInvalidation( + pTabViewShell, false /* bColumns */, true /* bRows */, true /* bSizes*/, + true /* bHidden */, true /* bFiltered */, true /* bGroups */, nThisTab); + } + } pTabViewShell->CellContentChanged(); // => PasteFromSystem() ??? } |