summaryrefslogtreecommitdiff
path: root/sc/source/ui/inc/tabview.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/source/ui/inc/tabview.hxx')
-rw-r--r--sc/source/ui/inc/tabview.hxx11
1 files changed, 8 insertions, 3 deletions
diff --git a/sc/source/ui/inc/tabview.hxx b/sc/source/ui/inc/tabview.hxx
index 52f838705a13..cc8dd64568c9 100644
--- a/sc/source/ui/inc/tabview.hxx
+++ b/sc/source/ui/inc/tabview.hxx
@@ -148,7 +148,10 @@ private:
Size aFrameSize; // passed on as for DoResize
Point aBorderPos;
- std::unique_ptr<FuPoor> pDrawActual;
+ // The ownership of these two is rather weird. we seem to need
+ // to keep an old copy alive for some period of time to avoid crashing.
+ FuPoor* pDrawActual;
+ FuPoor* pDrawOld;
std::array<VclPtr<ScGridWindow>, 4> pGridWin;
std::array<VclPtr<ScColBar>, 2> pColBar;
@@ -325,8 +328,10 @@ public:
bool IsDrawSelMode() const { return bDrawSelMode; }
void SetDrawSelMode(bool bNew) { bDrawSelMode = bNew; }
- void SetDrawFuncPtr(std::unique_ptr<FuPoor> pFuncPtr);
- FuPoor* GetDrawFuncPtr() { return pDrawActual.get(); }
+ void SetDrawFuncPtr(FuPoor* pFuncPtr) { pDrawActual = pFuncPtr; }
+ void SetDrawFuncOldPtr(FuPoor* pFuncPtr) { pDrawOld = pFuncPtr; }
+ FuPoor* GetDrawFuncPtr() { return pDrawActual; }
+ FuPoor* GetDrawFuncOldPtr() { return pDrawOld; }
void DrawDeselectAll();
void DrawMarkListHasChanged();