[ooo-build-commit] patches/dev300

Kohei Yoshida kohei at kemper.freedesktop.org
Tue Oct 6 14:00:54 PDT 2009


 patches/dev300/apply                                    |   16 
 patches/dev300/calc-copy-range-animated-border-sc.diff  |  449 ----------------
 patches/dev300/calc-copy-range-animated-border-svx.diff |   22 
 patches/dev300/cws-koheicopyborder-svx.diff             |   22 
 patches/dev300/sc-copy-source-border.diff               |  250 --------
 patches/dev300/sc-paste-on-enter.diff                   |  189 ------
 6 files changed, 26 insertions(+), 922 deletions(-)

New commits:
commit e6a44acb06c293113c6abfabba2c9766ed877fa5
Author: Kohei Yoshida <kyoshida at novell.com>
Date:   Tue Oct 6 16:48:40 2009 -0400

    Backported koheicopyborder CWS.
    
    This backport patches combines the four removed patches
    listed below.  They also re-implements the animated border
    overlay object using the re-worked OverlayObject implementation
    in 3.2.
    
    * patches/dev300/apply:
    * patches/dev300/cws-koheicopyborder-sc.diff:
    * patches/dev300/cws-koheicopyborder-svx.diff:
    
    Removed obsolete patches.
    
    * patches/dev300/calc-copy-range-animated-border-sc.diff:
    * patches/dev300/calc-copy-range-animated-border-svx.diff:
    * patches/dev300/sc-copy-source-border.diff:
    * patches/dev300/sc-paste-on-enter.diff:

diff --git a/patches/dev300/apply b/patches/dev300/apply
index 4c19ea8..4482a4c 100644
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -209,6 +209,10 @@ cws-koheichart02-chart2.diff, kohei
 cws-koheichart02-sc.diff,     kohei
 cws-koheichart02-xmloff.diff, kohei
 
+# koheicopyborder cws (paste on enter, and animated border for copied ranges).
+cws-koheicopyborder-sc.diff,  kohei
+cws-koheicopyborder-svx.diff, kohei
+
 [ LinuxOnly ]
 # Don't stat tons of config files we don't need to read on startup
 speed-configmgr.diff, i#56783, michael
@@ -725,8 +729,6 @@ enable-sheet-protection-options.diff, kohei
 enable-sheet-protection-options-m58.diff, kohei
 
 [ CalcFixes ]
-# Paste clipboard when ENTER is pressed, then clear clipboard.
-sc-paste-on-enter.diff, n#358545, i#28535, jonp
 
 # Ensure that Print Preview is consistent with Print output.
 sc-print-selected-sheets.diff, n#335684, i#45497, jonp
@@ -874,16 +876,6 @@ calc-xls-export-encryption-condfmt-fix.diff, n#541058, kohei
 # LATER: I'll take care of this later.  --kohei
 # calc-formula-asian-phonetic.diff, i#80764, i#80765, i#80766, kohei
 
-# Place a border around the Copy source cell(s).
-# LATER: 2009-09-10: This needs to be re-implemented for the 3.2 code line.
-# sc-copy-source-border.diff, n#367489, jonp
-
-# draw an animated dashed border around copied ranges.
-# LATER: I'll take care of this later. --kohei
-# calc-copy-range-animated-border-sc.diff, kohei
-# calc-copy-range-animated-border-svx.diff, kohei
-
-
 [ CalcRowLimit ]
 # The work to increase Calc's row size limit, and any work associated with it.
 SectionOwner => kohei
diff --git a/patches/dev300/calc-copy-range-animated-border-sc.diff b/patches/dev300/calc-copy-range-animated-border-sc.diff
deleted file mode 100644
index 8b47cb4..0000000
--- a/patches/dev300/calc-copy-range-animated-border-sc.diff
+++ /dev/null
@@ -1,449 +0,0 @@
-diff --git sc/source/ui/inc/gridwin.hxx sc/source/ui/inc/gridwin.hxx
-index 2b62bc5..3ab93fd 100644
---- sc/source/ui/inc/gridwin.hxx
-+++ sc/source/ui/inc/gridwin.hxx
-@@ -356,7 +356,6 @@ private:
-                         sdr::overlay::OverlayObjectCell::RangeVector* pRanges,
-                         const MapMode& rDrawMode,
-                         const RectangleConverter *pConverter = NULL);
--    void            UpdateCopySourceOverlay(const MapMode& rDrawMode);
- 
- protected:
-     using Window::Resize;
-@@ -458,6 +457,8 @@ public:
-     void CursorChanged();
-     void DrawLayerCreated();
- 
-+    void            DeleteCopySourceOverlay();
-+    void            UpdateCopySourceOverlay();
-     void            DeleteCursorOverlay();
-     void            UpdateCursorOverlay();
-     void            DeleteSelectionOverlay();
-diff --git sc/source/ui/inc/overlayobject.hxx sc/source/ui/inc/overlayobject.hxx
-new file mode 100644
-index 0000000..5c3e774
---- /dev/null
-+++ sc/source/ui/inc/overlayobject.hxx
-@@ -0,0 +1,58 @@
-+/*************************************************************************
-+ *
-+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+ * 
-+ * Copyright 2008 by Sun Microsystems, Inc.
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile: gridwin.hxx,v $
-+ * $Revision: 1.30 $
-+ *
-+ * This file is part of OpenOffice.org.
-+ *
-+ * OpenOffice.org is free software: you can redistribute it and/or modify
-+ * it under the terms of the GNU Lesser General Public License version 3
-+ * only, as published by the Free Software Foundation.
-+ *
-+ * OpenOffice.org is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU Lesser General Public License version 3 for more details
-+ * (a copy is included in the LICENSE file that accompanied this code).
-+ *
-+ * You should have received a copy of the GNU Lesser General Public License
-+ * version 3 along with OpenOffice.org.  If not, see
-+ * <http://www.openoffice.org/license.html>
-+ * for a copy of the LGPLv3 License.
-+ *
-+ ************************************************************************/
-+
-+#ifndef __SC_OVERLAYOBJECT_HXX__
-+#define __SC_OVERLAYOBJECT_HXX__
-+
-+#include "svx/sdr/overlay/overlayobject.hxx"
-+
-+class OutputDevice;
-+class Window;
-+
-+class ScOverlayDashedBorder : public ::sdr::overlay::OverlayObject
-+{
-+public:
-+    ScOverlayDashedBorder(const ::basegfx::B2DRange& rRange, const Color& rColor, Window* pWin);
-+    virtual ~ScOverlayDashedBorder();
-+
-+    virtual void Trigger(sal_uInt32 nTime);
-+    virtual void transform(const ::basegfx::B2DHomMatrix& rMatrix);
-+    virtual void zoomHasChanged();
-+
-+private:
-+    virtual void drawGeometry(OutputDevice& rOutputDevice);
-+    virtual void createBaseRange(OutputDevice& rOutputDevice);
-+
-+private:
-+    Window* mpParent;
-+    bool mbToggle;
-+};
-+
-+#endif
-diff --git sc/source/ui/inc/tabview.hxx sc/source/ui/inc/tabview.hxx
-index 1c9d508..0288469 100644
---- sc/source/ui/inc/tabview.hxx
-+++ sc/source/ui/inc/tabview.hxx
-@@ -441,6 +441,7 @@ public:
- 
-     void			CreateAnchorHandles(SdrHdlList& rHdl, const ScAddress& rAddress);
- 
-+    void            UpdateCopySourceOverlay();
-     void            UpdateSelectionOverlay();
-     void            UpdateShrinkOverlay();
-     void            UpdateAllOverlays();
-diff --git sc/source/ui/view/cellsh1.cxx sc/source/ui/view/cellsh1.cxx
-index 8950395..eee4c62 100644
---- sc/source/ui/view/cellsh1.cxx
-+++ sc/source/ui/view/cellsh1.cxx
-@@ -1167,11 +1167,13 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
- 
-         case SID_COPY:				// fuer Grafiken in DrawShell
-             {
--                WaitObject aWait( GetViewData()->GetDialogParent() );
-+                ScViewData* pViewData = GetViewData();
-+                WaitObject aWait( pViewData->GetDialogParent() );
-                 pTabViewShell->CopyToClip( NULL, FALSE, FALSE, TRUE );
-                 rReq.Done();
--				GetViewData()->SetPasteMode( (ScPasteFlags) (SC_PASTE_MODE | SC_PASTE_BORDER) );
-+				pViewData->SetPasteMode( (ScPasteFlags) (SC_PASTE_MODE | SC_PASTE_BORDER) );
- 				pTabViewShell->ShowCursor();
-+                pTabViewShell->UpdateCopySourceOverlay();
-             }
-             break;
- 
-@@ -1181,6 +1183,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
-                 pTabViewShell->CutToClip( NULL, TRUE );
-                 rReq.Done();
- 				GetViewData()->SetPasteMode( SC_PASTE_MODE );
-+                pTabViewShell->UpdateCopySourceOverlay();
-             }
-             break;
- 
-diff --git sc/source/ui/view/gridwin.cxx sc/source/ui/view/gridwin.cxx
-index 8713b06..93a674e 100644
---- sc/source/ui/view/gridwin.cxx
-+++ sc/source/ui/view/gridwin.cxx
-@@ -122,6 +122,8 @@
- #include "tabprotection.hxx"
- #include "clipparam.hxx"
- #include "dpcontrol.hxx"
-+#include "overlayobject.hxx"
-+#include "basegfx/range/b2drange.hxx"
- 
- // #114409#
- #include <vcl/salbtype.hxx>		// FRound
-@@ -3060,7 +3062,7 @@ void __EXPORT ScGridWindow::KeyInput(const KeyEvent& rKEvt)
- 
- 		// hide the border around the copy source
- 		pViewData->SetPasteMode( SC_PASTE_NONE );
--		UpdateCursorOverlay();
-+		UpdateCopySourceOverlay();
- 		return;
- 	}
-     // wenn semi-Modeless-SfxChildWindow-Dialog oben, keine KeyInputs:
-@@ -3069,7 +3071,7 @@ void __EXPORT ScGridWindow::KeyInput(const KeyEvent& rKEvt)
- 		if (rKeyCode.GetCode() == KEY_ESCAPE)
- 		{
- 			pViewData->SetPasteMode( SC_PASTE_NONE );
--			UpdateCursorOverlay();
-+            UpdateCopySourceOverlay();
- 		}
-         //	query for existing note marker before calling ViewShell's keyboard handling
-         //	which may remove the marker
-@@ -5149,6 +5151,7 @@ void ScGridWindow::CursorChanged()
- void ScGridWindow::ImpCreateOverlayObjects()
- {
-     UpdateCursorOverlay();
-+    UpdateCopySourceOverlay();
-     UpdateSelectionOverlay();
-     UpdateAutoFillOverlay();
-     UpdateDragRectOverlay();
-@@ -5160,6 +5163,7 @@ void ScGridWindow::ImpCreateOverlayObjects()
- void ScGridWindow::ImpDestroyOverlayObjects()
- {
-     DeleteCursorOverlay();
-+    DeleteCopySourceOverlay();
-     DeleteSelectionOverlay();
-     DeleteAutoFillOverlay();
-     DeleteDragRectOverlay();
-@@ -5178,7 +5182,6 @@ void ScGridWindow::UpdateAllOverlays()
- void ScGridWindow::DeleteCursorOverlay()
- {
-     DELETEZ( mpOOCursors );
--    DELETEZ( mpOOSelectionBorder );
- }
- 
- void ScGridWindow::ConvertPixelRectsToRangeVector( const ::std::vector< Rectangle >& rPixelRects, 
-@@ -5202,8 +5205,20 @@ void ScGridWindow::ConvertPixelRectsToRangeVector( const ::std::vector< Rectangl
-     }
- }
- 
--void ScGridWindow::UpdateCopySourceOverlay( const MapMode& rDrawMode )
-+void ScGridWindow::DeleteCopySourceOverlay()
-+{
-+    DELETEZ( mpOOSelectionBorder );
-+}
-+
-+void ScGridWindow::UpdateCopySourceOverlay()
- {
-+    MapMode aDrawMode = GetDrawMapMode();
-+    MapMode aOldMode = GetMapMode();
-+    if ( aOldMode != aDrawMode )
-+        SetMapMode( aDrawMode );
-+
-+    DeleteCopySourceOverlay();
-+
-     if (!pViewData->ShowPasteSource())
-         return;
-     ::sdr::overlay::OverlayManager* pOverlayManager = getOverlayManager();
-@@ -5232,33 +5247,24 @@ void ScGridWindow::UpdateCopySourceOverlay( const MapMode& rDrawMode )
-     
-         Point aClipStartScrPos = pViewData->GetScrPos( nClipStartX, nClipStartY, eWhich );
-         Point aClipEndScrPos   = pViewData->GetScrPos( nClipEndX + 1, nClipEndY + 1, eWhich );
--    
-+        aClipStartScrPos -= Point(1, 1);
-         long nSizeXPix = aClipEndScrPos.X() - aClipStartScrPos.X();
-         long nSizeYPix = aClipEndScrPos.Y() - aClipStartScrPos.Y();
-     
--        aClipStartScrPos.X() -= 2;
--        aClipStartScrPos.Y() -= 2;
-+        Rectangle aRect( aClipStartScrPos, Size(nSizeXPix, nSizeYPix) );
-     
--        Rectangle aRect( aClipStartScrPos, Size( nSizeXPix + 3, nSizeYPix + 3 ) );
--    
--        std::vector<Rectangle> aPixelRects;
--    
--        aPixelRects.push_back(Rectangle( aRect.Left(), aRect.Top(), aRect.Left()+2, aRect.Bottom() ));
--        aPixelRects.push_back(Rectangle( aRect.Right()-2, aRect.Top(), aRect.Right(), aRect.Bottom() ));
--        aPixelRects.push_back(Rectangle( aRect.Left()+3, aRect.Top(), aRect.Right()-3, aRect.Top()+2 ));
--        aPixelRects.push_back(Rectangle( aRect.Left()+3, aRect.Bottom()-2, aRect.Right()-3, aRect.Bottom() ));
--    
--        sdr::overlay::OverlayObjectCell::RangeVector aRanges;
--        ConvertPixelRectsToRangeVector( aPixelRects, &aRanges, rDrawMode );
--    
--        ScOverlayType eType = SC_OVERLAY_BORDER_TRANSPARENT;
-     
-         Color aHighlight = GetSettings().GetStyleSettings().GetHighlightColor();
--        sdr::overlay::OverlayObjectCell* pOverlay = new sdr::overlay::OverlayObjectCell( eType, aHighlight, aRanges );
--    
--        pOverlayManager->add(*pOverlay);
--        mpOOSelectionBorder->append(*pOverlay);
-+
-+        Rectangle aLogic = PixelToLogic(aRect, aDrawMode);
-+        ::basegfx::B2DRange aRange(aLogic.Left(), aLogic.Top(), aLogic.Right(), aLogic.Bottom());
-+        ScOverlayDashedBorder* pDashedBorder = new ScOverlayDashedBorder(aRange, aHighlight, this);
-+        pOverlayManager->add(*pDashedBorder);
-+        mpOOSelectionBorder->append(*pDashedBorder);
-     }
-+
-+    if ( aOldMode != aDrawMode )
-+        SetMapMode( aOldMode );
- }
- 
- void ScGridWindow::UpdateCursorOverlay()
-@@ -5273,8 +5280,6 @@ void ScGridWindow::UpdateCursorOverlay()
- 
-     DeleteCursorOverlay();
- 
--    UpdateCopySourceOverlay( aDrawMode );
--
-     std::vector<Rectangle> aPixelRects;
- 
-     //
-diff --git sc/source/ui/view/makefile.mk sc/source/ui/view/makefile.mk
-index 312929c..9003498 100644
---- sc/source/ui/view/makefile.mk
-+++ sc/source/ui/view/makefile.mk
-@@ -98,6 +98,7 @@ SLOFILES =  \
-         $(SLO)$/output.obj \
-         $(SLO)$/output2.obj \
-         $(SLO)$/output3.obj \
-+        $(SLO)$/overlayobject.obj \
-         $(SLO)$/gridmerg.obj \
-         $(SLO)$/invmerge.obj \
-         $(SLO)$/cellmergeoption.obj \
-@@ -155,6 +156,7 @@ EXCEPTIONSFILES= \
-     $(SLO)$/gridwin.obj \
-     $(SLO)$/invmerge.obj \
-     $(SLO)$/output2.obj \
-+    $(SLO)$/overlayobject.obj \
-     $(SLO)$/pfuncache.obj \
-     $(SLO)$/spelldialog.obj \
-     $(SLO)$/cellsh1.obj \
-diff --git sc/source/ui/view/overlayobject.cxx sc/source/ui/view/overlayobject.cxx
-new file mode 100644
-index 0000000..5b16259
---- /dev/null
-+++ sc/source/ui/view/overlayobject.cxx
-@@ -0,0 +1,121 @@
-+/*************************************************************************
-+ *
-+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+ * 
-+ * Copyright 2008 by Sun Microsystems, Inc.
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile: gridwin.hxx,v $
-+ * $Revision: 1.30 $
-+ *
-+ * This file is part of OpenOffice.org.
-+ *
-+ * OpenOffice.org is free software: you can redistribute it and/or modify
-+ * it under the terms of the GNU Lesser General Public License version 3
-+ * only, as published by the Free Software Foundation.
-+ *
-+ * OpenOffice.org is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU Lesser General Public License version 3 for more details
-+ * (a copy is included in the LICENSE file that accompanied this code).
-+ *
-+ * You should have received a copy of the GNU Lesser General Public License
-+ * version 3 along with OpenOffice.org.  If not, see
-+ * <http://www.openoffice.org/license.html>
-+ * for a copy of the LGPLv3 License.
-+ *
-+ ************************************************************************/
-+
-+// MARKER(update_precomp.py): autogen include statement, do not remove
-+#include "precompiled_sc.hxx"
-+
-+#include "overlayobject.hxx"
-+#include "vcl/outdev.hxx"
-+#include "vcl/lineinfo.hxx"
-+#include "vcl/salbtype.hxx"
-+#include "vcl/window.hxx"
-+#include "tools/fract.hxx"
-+#include "basegfx/range/b2drange.hxx"
-+#include "basegfx/polygon/b2dpolygon.hxx"
-+#include "svx/sdr/overlay/overlaymanager.hxx"
-+
-+using ::sdr::overlay::OverlayObject;
-+using ::sdr::overlay::OverlayManager;
-+
-+#define DASH_UPDATE_INTERVAL 180    // in msec
-+
-+ScOverlayDashedBorder::ScOverlayDashedBorder(const ::basegfx::B2DRange& rRange, const Color& rColor, Window* pWin) :
-+    OverlayObject(rColor),
-+    mpParent(pWin),
-+    mbToggle(true)
-+{
-+    mbAllowsAnimation = true;
-+    maBaseRange = rRange;
-+}
-+
-+ScOverlayDashedBorder::~ScOverlayDashedBorder()
-+{
-+}
-+
-+void ScOverlayDashedBorder::Trigger(sal_uInt32 nTime)
-+{
-+    OverlayManager* pMgr = getOverlayManager();
-+    if (pMgr)
-+    {
-+        SetTime(nTime + DASH_UPDATE_INTERVAL);
-+        mbToggle = !mbToggle;
-+        pMgr->InsertEvent(this);
-+        objectChange();
-+    }
-+}
-+
-+void ScOverlayDashedBorder::transform(const ::basegfx::B2DHomMatrix& /*rMatrix*/)
-+{
-+}
-+
-+void ScOverlayDashedBorder::zoomHasChanged()
-+{
-+}
-+
-+void ScOverlayDashedBorder::drawGeometry(OutputDevice& rOutputDevice)
-+{
-+    using ::basegfx::B2DPoint;
-+    using ::basegfx::B2DPolygon;
-+
-+    OverlayManager* pMgr = getOverlayManager();
-+    if (!pMgr)
-+        return;
-+
-+    // save original AA and switch off for selection
-+    const sal_uInt16 nOriginalAA(rOutputDevice.GetAntialiasing());
-+    rOutputDevice.SetAntialiasing(0);
-+
-+    if (mbToggle)
-+    {    
-+        pMgr->setStripeColorA(getBaseColor());
-+        pMgr->setStripeColorB(COL_WHITE);
-+    }
-+    else
-+    {
-+        pMgr->setStripeColorA(COL_WHITE);
-+        pMgr->setStripeColorB(getBaseColor());
-+    }
-+
-+    B2DPolygon aPoly;
-+    aPoly.append(B2DPoint(maBaseRange.getMinX(), maBaseRange.getMinY()));
-+    aPoly.append(B2DPoint(maBaseRange.getMaxX(), maBaseRange.getMinY()));
-+    aPoly.append(B2DPoint(maBaseRange.getMaxX(), maBaseRange.getMaxY()));
-+    aPoly.append(B2DPoint(maBaseRange.getMinX(), maBaseRange.getMaxY()));
-+    aPoly.append(B2DPoint(maBaseRange.getMinX(), maBaseRange.getMinY()));
-+    ImpDrawPolygonStriped(rOutputDevice, aPoly);
-+
-+    // restore original AA
-+    rOutputDevice.SetAntialiasing(nOriginalAA);
-+}
-+
-+void ScOverlayDashedBorder::createBaseRange(OutputDevice& /*rOutputDevice*/)
-+{
-+}
-+
-diff --git sc/source/ui/view/tabview2.cxx sc/source/ui/view/tabview2.cxx
-index ddb584d..0cd6204 100644
---- sc/source/ui/view/tabview2.cxx
-+++ sc/source/ui/view/tabview2.cxx
-@@ -699,6 +699,13 @@ void ScTabView::ExpandBlockArea(SCsCOL nMovX, SCsROW nMovY)
-     ExpandBlock(nAreaX, nAreaY, eMode);
- }
- 
-+void ScTabView::UpdateCopySourceOverlay()
-+{
-+    for (sal_uInt8 i = 0; i < 4; ++i)
-+        if (pGridWin[i] && pGridWin[i]->IsVisible())
-+            pGridWin[i]->UpdateCopySourceOverlay();
-+}
-+
- void ScTabView::UpdateSelectionOverlay()
- {
-     for (USHORT i=0; i<4; i++)
-diff --git sc/source/ui/view/tabview3.cxx sc/source/ui/view/tabview3.cxx
-index 7130fba..ff7c2cf 100644
---- sc/source/ui/view/tabview3.cxx
-+++ sc/source/ui/view/tabview3.cxx
-@@ -1810,6 +1810,7 @@ void ScTabView::MakeEditView( ScEditEngineDefaulter* pEngine, SCCOL nCol, SCROW
-                     pGridWin[i]->HideCursor();
- 
-                     pGridWin[i]->DeleteCursorOverlay();
-+                    pGridWin[i]->DeleteCopySourceOverlay();
-                     pGridWin[i]->DeleteAutoFillOverlay();
- 
-                     // flush OverlayManager before changing MapMode to text edit
-diff --git sc/source/ui/view/viewfunc.cxx sc/source/ui/view/viewfunc.cxx
-index 7be076a..92ed34b 100644
---- sc/source/ui/view/viewfunc.cxx
-+++ sc/source/ui/view/viewfunc.cxx
-@@ -1940,7 +1940,10 @@ void ScViewFunc::DeleteMulti( BOOL bRows, BOOL bRecord )
- 
- void ScViewFunc::DeleteContents( USHORT nFlags, BOOL bRecord )
- {
--	GetViewData()->SetPasteMode( SC_PASTE_NONE );
-+    ScViewData* pViewData = GetViewData();
-+	pViewData->SetPasteMode( SC_PASTE_NONE );
-+    pViewData->GetViewShell()->UpdateCopySourceOverlay();
-+
-     // nur wegen Matrix nicht editierbar? Attribute trotzdem ok
-     BOOL bOnlyNotBecauseOfMatrix;
-     BOOL bEditable = SelectionEditable( &bOnlyNotBecauseOfMatrix );
diff --git a/patches/dev300/calc-copy-range-animated-border-svx.diff b/patches/dev300/calc-copy-range-animated-border-svx.diff
deleted file mode 100644
index 900b812..0000000
--- a/patches/dev300/calc-copy-range-animated-border-svx.diff
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git svx/inc/svx/sdr/animation/scheduler.hxx svx/inc/svx/sdr/animation/scheduler.hxx
-index 6ee3e41..3dd8871 100644
---- svx/inc/svx/sdr/animation/scheduler.hxx
-+++ svx/inc/svx/sdr/animation/scheduler.hxx
-@@ -61,7 +61,7 @@ namespace sdr
- 
-             // get/set time
-             sal_uInt32 GetTime() const;
--            void SetTime(sal_uInt32 nNew);
-+            void SVX_DLLPUBLIC SetTime(sal_uInt32 nNew);
- 
-             // execute event
-             virtual void Trigger(sal_uInt32 nTime) = 0;
-@@ -145,7 +145,7 @@ namespace sdr
-             void checkTimeout();
- 
-             // insert/remove events, wrapper to EventList methods
--            void InsertEvent(Event* pNew);
-+            void SVX_DLLPUBLIC InsertEvent(Event* pNew);
-             void RemoveEvent(Event* pOld);
- 
-             // get/set pause
diff --git a/patches/dev300/cws-koheicopyborder-sc.diff b/patches/dev300/cws-koheicopyborder-sc.diff
new file mode 100644
index 0000000..e69de29
diff --git a/patches/dev300/cws-koheicopyborder-svx.diff b/patches/dev300/cws-koheicopyborder-svx.diff
new file mode 100644
index 0000000..3415d85
--- /dev/null
+++ b/patches/dev300/cws-koheicopyborder-svx.diff
@@ -0,0 +1,22 @@
+diff --git svx/inc/svx/sdr/animation/scheduler.hxx svx/inc/svx/sdr/animation/scheduler.hxx
+index 7c927ec..08e12c1 100644
+--- svx/inc/svx/sdr/animation/scheduler.hxx
++++ svx/inc/svx/sdr/animation/scheduler.hxx
+@@ -61,7 +61,7 @@ namespace sdr
+ 
+             // get/set time
+             sal_uInt32 GetTime() const;
+-            void SetTime(sal_uInt32 nNew);
++            void SVX_DLLPUBLIC SetTime(sal_uInt32 nNew);
+ 
+             // execute event
+             virtual void Trigger(sal_uInt32 nTime) = 0;
+@@ -145,7 +145,7 @@ namespace sdr
+             void checkTimeout();
+ 
+             // insert/remove events, wrapper to EventList methods
+-            void InsertEvent(Event* pNew);
++            void SVX_DLLPUBLIC InsertEvent(Event* pNew);
+             void RemoveEvent(Event* pOld);
+ 
+             // get/set pause
diff --git a/patches/dev300/sc-copy-source-border.diff b/patches/dev300/sc-copy-source-border.diff
deleted file mode 100644
index 3ef55ef..0000000
--- a/patches/dev300/sc-copy-source-border.diff
+++ /dev/null
@@ -1,250 +0,0 @@
-diff --git sc/source/ui/inc/gridwin.hxx sc/source/ui/inc/gridwin.hxx
-index 643ae95..2946c39 100644
---- sc/source/ui/inc/gridwin.hxx
-+++ sc/source/ui/inc/gridwin.hxx
-@@ -144,6 +144,7 @@ private:
- 	// #114409#
- 	::sdr::overlay::OverlayObjectList*				mpOOCursors;
-     ::sdr::overlay::OverlayObjectList*              mpOOSelection;
-+    ::sdr::overlay::OverlayObjectList*              mpOOSelectionBorder;
-     ::sdr::overlay::OverlayObjectList*              mpOOAutoFill;
-     ::sdr::overlay::OverlayObjectList*              mpOODragRect;
-     ::sdr::overlay::OverlayObjectList*              mpOOHeader;
-@@ -314,6 +315,15 @@ private:
- 	void			SelectForContextMenu( const Point& rPosPixel );
- 
-     void            GetSelectionRects( ::std::vector< Rectangle >& rPixelRects );
-+    struct RectangleConverter {
-+        virtual Rectangle Convert (const Rectangle& r) const = 0;
-+    };
-+    void            ConvertPixelRectsToRangeVector( 
-+                        const ::std::vector< Rectangle >& rPixelRects, 
-+                        sdr::overlay::OverlayObjectCell::RangeVector* pRanges,
-+                        const MapMode& rDrawMode,
-+                        const RectangleConverter *pConverter = NULL);
-+    void            UpdateCopySourceOverlay(const MapMode& rDrawMode);
- 
- protected:
-     using Window::Resize;
-diff --git sc/source/ui/view/gridwin.cxx sc/source/ui/view/gridwin.cxx
-index 5bcc6c8..3d7f3d4 100644
---- sc/source/ui/view/gridwin.cxx
-+++ sc/source/ui/view/gridwin.cxx
-@@ -120,6 +120,7 @@
- #include "attrib.hxx"
- #include "cellsh.hxx"
- #include "tabprotection.hxx"
-+#include "clipparam.hxx"
- #include "postit.hxx"
- 
- // #114409#
-@@ -396,6 +397,7 @@ ScGridWindow::ScGridWindow( Window* pParent, ScViewData* pData, ScSplitPos eWhic
- 			DragSourceHelper( this ),
-             mpOOCursors( NULL ),
-             mpOOSelection( NULL ),
-+            mpOOSelectionBorder( NULL ),
-             mpOOAutoFill( NULL ),
-             mpOODragRect( NULL ),
-             mpOOHeader( NULL ),
-@@ -5159,6 +5161,87 @@ void ScGridWindow::UpdateAllOverlays()
- void ScGridWindow::DeleteCursorOverlay()
- {
-     DELETEZ( mpOOCursors );
-+    DELETEZ( mpOOSelectionBorder );
-+}
-+
-+void ScGridWindow::ConvertPixelRectsToRangeVector( const ::std::vector< Rectangle >& rPixelRects, 
-+        sdr::overlay::OverlayObjectCell::RangeVector* pRanges,
-+        const MapMode& rDrawMode,
-+        const ScGridWindow::RectangleConverter* pConverter )
-+{
-+    std::vector<Rectangle>::const_iterator aPixelEnd( rPixelRects.end() );
-+    for ( std::vector<Rectangle>::const_iterator aPixelIter( rPixelRects.begin() );
-+          aPixelIter != aPixelEnd; ++aPixelIter )
-+    {
-+        Rectangle aLogic( PixelToLogic( 
-+              (pConverter == NULL ? *aPixelIter : pConverter->Convert (*aPixelIter)),
-+              rDrawMode ) );
-+
-+        const basegfx::B2DPoint aTopLeft(aLogic.Left(), aLogic.Top());
-+        const basegfx::B2DPoint aBottomRight(aLogic.Right(), aLogic.Bottom());
-+        const basegfx::B2DRange a2DRange(aTopLeft, aBottomRight);
-+
-+        pRanges->push_back( a2DRange );
-+    }
-+}
-+
-+void ScGridWindow::UpdateCopySourceOverlay( const MapMode& rDrawMode )
-+{
-+    if (!pViewData->ShowPasteSource())
-+        return;
-+    ::sdr::overlay::OverlayManager* pOverlayManager = getOverlayManager();
-+    if (!pOverlayManager)
-+        return;
-+    ScTransferObj* pTransObj = ScTransferObj::GetOwnClipboard( pViewData->GetActiveWin() );
-+    if (!pTransObj)
-+        return;
-+    ScDocument* pClipDoc = pTransObj->GetDocument();
-+    if (!pClipDoc)
-+        return;
-+
-+    SCTAB nCurTab = pViewData->GetCurPos().Tab();
-+
-+    ScClipParam& rClipParam = pClipDoc->GetClipParam();
-+    mpOOSelectionBorder = new ::sdr::overlay::OverlayObjectList;
-+    for (ScRange* p = rClipParam.maRanges.First(); p; p = rClipParam.maRanges.Next())
-+    {
-+        if (p->aStart.Tab() != nCurTab)
-+            continue;
-+
-+        SCCOL nClipStartX = p->aStart.Col();
-+        SCROW nClipStartY = p->aStart.Row();
-+        SCCOL nClipEndX   = p->aEnd.Col();
-+        SCROW nClipEndY   = p->aEnd.Row();
-+    
-+        Point aClipStartScrPos = pViewData->GetScrPos( nClipStartX, nClipStartY, eWhich );
-+        Point aClipEndScrPos   = pViewData->GetScrPos( nClipEndX + 1, nClipEndY + 1, eWhich );
-+    
-+        long nSizeXPix = aClipEndScrPos.X() - aClipStartScrPos.X();
-+        long nSizeYPix = aClipEndScrPos.Y() - aClipStartScrPos.Y();
-+    
-+        aClipStartScrPos.X() -= 2;
-+        aClipStartScrPos.Y() -= 2;
-+    
-+        Rectangle aRect( aClipStartScrPos, Size( nSizeXPix + 3, nSizeYPix + 3 ) );
-+    
-+        std::vector<Rectangle> aPixelRects;
-+    
-+        aPixelRects.push_back(Rectangle( aRect.Left(), aRect.Top(), aRect.Left()+2, aRect.Bottom() ));
-+        aPixelRects.push_back(Rectangle( aRect.Right()-2, aRect.Top(), aRect.Right(), aRect.Bottom() ));
-+        aPixelRects.push_back(Rectangle( aRect.Left()+3, aRect.Top(), aRect.Right()-3, aRect.Top()+2 ));
-+        aPixelRects.push_back(Rectangle( aRect.Left()+3, aRect.Bottom()-2, aRect.Right()-3, aRect.Bottom() ));
-+    
-+        sdr::overlay::OverlayObjectCell::RangeVector aRanges;
-+        ConvertPixelRectsToRangeVector( aPixelRects, &aRanges, rDrawMode );
-+    
-+        ScOverlayType eType = SC_OVERLAY_BORDER_TRANSPARENT;
-+    
-+        Color aHighlight = GetSettings().GetStyleSettings().GetHighlightColor();
-+        sdr::overlay::OverlayObjectCell* pOverlay = new sdr::overlay::OverlayObjectCell( eType, aHighlight, aRanges );
-+    
-+        pOverlayManager->add(*pOverlay);
-+        mpOOSelectionBorder->append(*pOverlay);
-+    }
- }
- 
- void ScGridWindow::UpdateCursorOverlay()
-@@ -5173,6 +5256,8 @@ void ScGridWindow::UpdateCursorOverlay()
- 
-     DeleteCursorOverlay();
- 
-+    UpdateCopySourceOverlay( aDrawMode );
-+
-     std::vector<Rectangle> aPixelRects;
- 
-     //
-@@ -5257,19 +5342,7 @@ void ScGridWindow::UpdateCursorOverlay()
-     if ( aPixelRects.size() )
-     {
-         sdr::overlay::OverlayObjectCell::RangeVector aRanges;
--
--        std::vector<Rectangle>::const_iterator aPixelEnd( aPixelRects.end() );
--        for ( std::vector<Rectangle>::const_iterator aPixelIter( aPixelRects.begin() );
--              aPixelIter != aPixelEnd; ++aPixelIter )
--        {
--            Rectangle aLogic( PixelToLogic( *aPixelIter, aDrawMode ) );
--
--            const basegfx::B2DPoint aTopLeft(aLogic.Left(), aLogic.Top());
--            const basegfx::B2DPoint aBottomRight(aLogic.Right(), aLogic.Bottom());
--            const basegfx::B2DRange a2DRange(aTopLeft, aBottomRight);
--
--            aRanges.push_back( a2DRange );
--        }
-+        ConvertPixelRectsToRangeVector( aPixelRects, &aRanges, aDrawMode );
- 
- 		// #i70788# get the OverlayManager safely
- 		::sdr::overlay::OverlayManager* pOverlayManager = getOverlayManager();
-@@ -5311,41 +5384,43 @@ void ScGridWindow::UpdateSelectionOverlay()
- 
-     if ( aPixelRects.size() && pViewData->IsActive() )
-     {
--        SCTAB nTab = pViewData->GetTabNo();
--        BOOL bLayoutRTL = pViewData->GetDocument()->IsLayoutRTL( nTab );
--        BOOL bOld = pViewData->GetView()->IsOldSelection();
--
--        sdr::overlay::OverlayObjectCell::RangeVector aRanges;
-+        struct SelectionConverter : RectangleConverter {
-+            SCTAB nTab;
-+            BOOL bLayoutRTL;
-+            BOOL bOld;
-+
-+            SelectionConverter (ScViewData* pViewData)
-+              : nTab (pViewData->GetTabNo())
-+              , bLayoutRTL (pViewData->GetDocument()->IsLayoutRTL( nTab ))
-+              , bOld (pViewData->GetView()->IsOldSelection())
-+            {
-+            }
- 
--        std::vector<Rectangle>::const_iterator aPixelEnd( aPixelRects.end() );
--        for ( std::vector<Rectangle>::const_iterator aPixelIter( aPixelRects.begin() );
--              aPixelIter != aPixelEnd; ++aPixelIter )
--        {
--            Rectangle aPixel( *aPixelIter );
--            if ( !bOld )
-+            Rectangle Convert (const Rectangle& rRect) const
-             {
-+                if ( bOld )
-+                    return rRect;
-                 // for transparent selection, add a pixel so the border is on the grid on all edges
-+                Rectangle aPixel (rRect);
-                 if ( bLayoutRTL )
-                     aPixel.Right() += 1;
-                 else
-                     aPixel.Left() -= 1;
-                 aPixel.Top() -= 1;
-+                return aPixel;
-             }
--            Rectangle aLogic( PixelToLogic( aPixel, aDrawMode ) );
--
--            const basegfx::B2DPoint aTopLeft(aLogic.Left(), aLogic.Top());
--            const basegfx::B2DPoint aBottomRight(aLogic.Right(), aLogic.Bottom());
--            const basegfx::B2DRange a2DRange(aTopLeft, aBottomRight);
-+        };
-+        SelectionConverter aConverter (pViewData);
- 
--            aRanges.push_back( a2DRange );
--        }
-+        sdr::overlay::OverlayObjectCell::RangeVector aRanges;
-+        ConvertPixelRectsToRangeVector( aPixelRects, &aRanges, aDrawMode, &aConverter );
- 
- 		// #i70788# get the OverlayManager safely
- 		::sdr::overlay::OverlayManager* pOverlayManager = getOverlayManager();
- 
- 		if(pOverlayManager)
- 		{
--            ScOverlayType eType = bOld ? SC_OVERLAY_INVERT : SC_OVERLAY_BORDER_TRANSPARENT;
-+            ScOverlayType eType = aConverter.bOld ? SC_OVERLAY_INVERT : SC_OVERLAY_BORDER_TRANSPARENT;
- 			Color aHighlight( GetSettings().GetStyleSettings().GetHighlightColor() );
-             sdr::overlay::OverlayObjectCell* pOverlay =
- 	            new sdr::overlay::OverlayObjectCell( eType, aHighlight, aRanges );
-@@ -5540,19 +5615,7 @@ void ScGridWindow::UpdateDragRectOverlay()
-         //
- 
-         sdr::overlay::OverlayObjectCell::RangeVector aRanges;
--
--        std::vector<Rectangle>::const_iterator aPixelEnd( aPixelRects.end() );
--        for ( std::vector<Rectangle>::const_iterator aPixelIter( aPixelRects.begin() );
--              aPixelIter != aPixelEnd; ++aPixelIter )
--        {
--            Rectangle aLogic( PixelToLogic( *aPixelIter, aDrawMode ) );
--
--            const basegfx::B2DPoint aTopLeft(aLogic.Left(), aLogic.Top());
--            const basegfx::B2DPoint aBottomRight(aLogic.Right(), aLogic.Bottom());
--            const basegfx::B2DRange a2DRange(aTopLeft, aBottomRight);
--
--            aRanges.push_back( a2DRange );
--        }
-+        ConvertPixelRectsToRangeVector( aPixelRects, &aRanges, aDrawMode );
- 
- 		// #i70788# get the OverlayManager safely
- 		::sdr::overlay::OverlayManager* pOverlayManager = getOverlayManager();
diff --git a/patches/dev300/sc-paste-on-enter.diff b/patches/dev300/sc-paste-on-enter.diff
deleted file mode 100644
index 295a7fd..0000000
--- a/patches/dev300/sc-paste-on-enter.diff
+++ /dev/null
@@ -1,189 +0,0 @@
-diff --git sc/source/ui/app/inputhdl.cxx sc/source/ui/app/inputhdl.cxx
-index 98aac39..6ac26bc 100644
---- sc/source/ui/app/inputhdl.cxx
-+++ sc/source/ui/app/inputhdl.cxx
-@@ -2055,6 +2055,7 @@ IMPL_LINK( ScInputHandler, ModifyHdl, void *, EMPTYARG )
- 
- BOOL ScInputHandler::DataChanging( sal_Unicode cTyped, BOOL bFromCommand )		// return TRUE = new view created
- {
-+    pActiveViewSh->GetViewData()->SetPasteMode( SC_PASTE_NONE );
-     bInOwnChange = TRUE;				// disable ModifyHdl (reset in DataChanged)
- 
-     if ( eMode == SC_INPUT_NONE )
-diff --git sc/source/ui/inc/viewdata.hxx sc/source/ui/inc/viewdata.hxx
-index 6f0d986..19583a8 100644
---- sc/source/ui/inc/viewdata.hxx
-+++ sc/source/ui/inc/viewdata.hxx
-@@ -89,6 +89,13 @@ enum ScMarkType
- #endif
- };
- 
-+enum ScPasteFlags
-+{
-+    SC_PASTE_NONE   = 0,    // No flags specified
-+    SC_PASTE_MODE   = 1,    // Enable paste-mode
-+    SC_PASTE_BORDER = 2,    // Show a border around the source cells
-+};
-+
- class ScDocShell;
- class ScDocument;
- class ScDBFunc;
-@@ -210,6 +217,8 @@ private:
-     SCCOL				nTabStartCol;				// fuer Enter nach Tab
-     ScRange				aDelRange;					// fuer AutoFill-Loeschen
- 
-+    ScPasteFlags        nPasteFlags;
-+
-     ScSplitPos          eEditActivePart;            // the part that was active when edit mode was started
-     BOOL				bEditActive[4];				// aktiv?
-     BOOL				bActive;					// aktives Fenster ?
-@@ -295,6 +304,8 @@ public:
-     SCCOL			GetFixPosX() const						{ return pThisTab->nFixPosX; }
-     SCROW			GetFixPosY() const						{ return pThisTab->nFixPosY; }
-     BOOL			IsPagebreakMode() const					{ return bPagebreak; }
-+    BOOL            IsPasteMode() const                     { return nPasteFlags & SC_PASTE_MODE; }
-+    BOOL            ShowPasteSource() const                 { return nPasteFlags & SC_PASTE_BORDER; }
- 
-     void			SetPosX( ScHSplitPos eWhich, SCCOL nNewPosX );
-     void			SetPosY( ScVSplitPos eWhich, SCROW nNewPosY );
-@@ -309,6 +320,7 @@ public:
-     void			SetFixPosX( SCCOL nPos )						{ pThisTab->nFixPosX = nPos; }
-     void			SetFixPosY( SCROW nPos )						{ pThisTab->nFixPosY = nPos; }
-     void			SetPagebreakMode( BOOL bSet );
-+    void            SetPasteMode ( ScPasteFlags nFlags )            { nPasteFlags = nFlags; }
- 
-     void            SetZoomType( SvxZoomType eNew, BOOL bAll );
-     void            SetZoom( const Fraction& rNewX, const Fraction& rNewY, BOOL bAll );
-diff --git sc/source/ui/view/cellsh1.cxx sc/source/ui/view/cellsh1.cxx
-index ba66243..0cd4007 100644
---- sc/source/ui/view/cellsh1.cxx
-+++ sc/source/ui/view/cellsh1.cxx
-@@ -1170,6 +1170,8 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
-                 WaitObject aWait( GetViewData()->GetDialogParent() );
-                 pTabViewShell->CopyToClip( NULL, FALSE, FALSE, TRUE );
-                 rReq.Done();
-+                GetViewData()->SetPasteMode( (ScPasteFlags) (SC_PASTE_MODE | SC_PASTE_BORDER) );
-+                pTabViewShell->ShowCursor();
-             }
-             break;
- 
-@@ -1178,6 +1180,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
-                 WaitObject aWait( GetViewData()->GetDialogParent() );
-                 pTabViewShell->CutToClip( NULL, TRUE );
-                 rReq.Done();
-+                GetViewData()->SetPasteMode( SC_PASTE_MODE );
-             }
-             break;
- 
-diff --git sc/source/ui/view/gridwin.cxx sc/source/ui/view/gridwin.cxx
-index 6fc33d5..6e0280a 100644
---- sc/source/ui/view/gridwin.cxx
-+++ sc/source/ui/view/gridwin.cxx
-@@ -118,6 +118,7 @@
- #include "userdat.hxx"
- #include "drwlayer.hxx"
- #include "attrib.hxx"
-+#include "cellsh.hxx"
- #include "validat.hxx"
- #include "tabprotection.hxx"
- #include "postit.hxx"
-@@ -2969,12 +2970,30 @@ void ScGridWindow::SelectForContextMenu( const Point& rPosPixel )
-     }
- }
- 
-+static void ClearSingleSelection( ScViewData* pViewData )
-+{
-+    SCCOL nX;
-+    SCROW nY;
-+    ScTransferObj* pTransObj = ScTransferObj::GetOwnClipboard( 
-+        pViewData->GetActiveWin() );
-+    if (!pTransObj)
-+        return;
-+
-+    ScDocument* pClipDoc = pTransObj->GetDocument();
-+    pClipDoc->GetClipArea( nX, nY, TRUE );
-+    if (nX == 0 && nY == 0)
-+    {
-+        ScTabView* pView = pViewData->GetView();
-+        pView->Unmark();
-+    }
-+}
-+
- void __EXPORT ScGridWindow::KeyInput(const KeyEvent& rKEvt)
- {
-     // #96965# Cursor control for ref input dialog
-+    const KeyCode& rKeyCode = rKEvt.GetKeyCode();
-     if( SC_MOD()->IsRefDialogOpen() )
-     {
--        const KeyCode& rKeyCode = rKEvt.GetKeyCode();
-         if( !rKeyCode.GetModifier() && (rKeyCode.GetCode() == KEY_F2) )
-         {
-             SC_MOD()->EndReference();
-@@ -2989,9 +3008,35 @@ void __EXPORT ScGridWindow::KeyInput(const KeyEvent& rKEvt)
-             return;
-         }
-     }
-+    else if( rKeyCode.GetCode() == KEY_RETURN && pViewData->IsPasteMode() )
-+    {
-+        ScTabViewShell* pTabViewShell = pViewData->GetViewShell();
-+
-+        ScCellShell::PasteFromClipboard( pViewData, pTabViewShell, FALSE );
-+        ClearSingleSelection( pViewData );
-+
-+        uno::Reference<datatransfer::clipboard::XClipboard> xSystemClipboard = 
-+            TransferableHelper::GetSystemClipboard();
-+        if (xSystemClipboard.is())
-+        {
-+            xSystemClipboard->setContents(
-+                    uno::Reference<datatransfer::XTransferable>(),
-+                    uno::Reference<datatransfer::clipboard::XClipboardOwner>());
-+        }
-+
-+        // hide the border around the copy source
-+        pViewData->SetPasteMode( SC_PASTE_NONE );
-+        UpdateCursorOverlay();
-+        return;
-+    }
-     // wenn semi-Modeless-SfxChildWindow-Dialog oben, keine KeyInputs:
-     else if( !pViewData->IsAnyFillMode() )
-     {
-+        if (rKeyCode.GetCode() == KEY_ESCAPE)
-+        {
-+            pViewData->SetPasteMode( SC_PASTE_NONE );
-+            UpdateCursorOverlay();
-+        }
-         //	query for existing note marker before calling ViewShell's keyboard handling
-         //	which may remove the marker
-         BOOL bHadKeyMarker = ( pNoteMarker && pNoteMarker->IsByKeyboard() );
-diff --git sc/source/ui/view/viewdata.cxx sc/source/ui/view/viewdata.cxx
-index df48982..e75b864 100644
---- sc/source/ui/view/viewdata.cxx
-+++ sc/source/ui/view/viewdata.cxx
-@@ -306,6 +306,7 @@ ScViewData::ScViewData( ScDocShell* pDocSh, ScTabViewShell* pViewSh )
-         eRefType	( SC_REFTYPE_NONE ),
-         nTabNo		( 0 ),
-         nRefTabNo	( 0 ),
-+        nPasteFlags ( SC_PASTE_NONE ),
-         eEditActivePart( SC_SPLIT_BOTTOMLEFT ),
-         bActive		( TRUE ),					//! wie initialisieren?
-         bIsRefMode	( FALSE ),
-@@ -432,6 +433,7 @@ void ScViewData::InitData( ScDocument* pDocument )
- //UNUSED2008-05      aDefPageZoomX = pRef->aDefPageZoomX;
- //UNUSED2008-05      aDefPageZoomY = pRef->aDefPageZoomY;
- //UNUSED2008-05      bPagebreak  = pRef->bPagebreak;
-+//UNUSED2008-05 	nPasteFlags = pRef->nPasteFlags;
- //UNUSED2008-05      aLogicMode  = pRef->aLogicMode;
- //UNUSED2008-05  
- //UNUSED2008-05      SetGridMode     ( pRef->IsGridMode() );
-diff --git sc/source/ui/view/viewfunc.cxx sc/source/ui/view/viewfunc.cxx
-index 8155a80..61670e7 100644
---- sc/source/ui/view/viewfunc.cxx
-+++ sc/source/ui/view/viewfunc.cxx
-@@ -1910,6 +1910,7 @@ void ScViewFunc::DeleteMulti( BOOL bRows, BOOL bRecord )
- 
- void ScViewFunc::DeleteContents( USHORT nFlags, BOOL bRecord )
- {
-+    GetViewData()->SetPasteMode( SC_PASTE_NONE );
-     // nur wegen Matrix nicht editierbar? Attribute trotzdem ok
-     BOOL bOnlyNotBecauseOfMatrix;
-     BOOL bEditable = SelectionEditable( &bOnlyNotBecauseOfMatrix );


More information about the ooo-build-commit mailing list