sc lok: Make the FmFormView we need for drawinglayer persistent.
Based on Marco Cecchetti's research - thanks! :-) Change-Id: I579b6c8e54311a679f5d684f7ca1e2d7373d0ec9
This commit is contained in:
@@ -38,6 +38,7 @@ namespace sc {
|
|||||||
struct SpellCheckContext;
|
struct SpellCheckContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class FmFormView;
|
||||||
struct ScTableInfo;
|
struct ScTableInfo;
|
||||||
class ScDPObject;
|
class ScDPObject;
|
||||||
class ScCheckListMenuWindow;
|
class ScCheckListMenuWindow;
|
||||||
@@ -103,6 +104,10 @@ class ScGridWindow : public vcl::Window, public DropTargetHelper, public DragSou
|
|||||||
|
|
||||||
std::unique_ptr<tools::Rectangle> mpAutoFillRect;
|
std::unique_ptr<tools::Rectangle> mpAutoFillRect;
|
||||||
|
|
||||||
|
/// LibreOfficeKit needs a persistent FmFormView for tiled rendering,
|
||||||
|
/// otherwise the invalidations from drawinglayer do not work.
|
||||||
|
std::unique_ptr<FmFormView> mpLOKDrawView;
|
||||||
|
|
||||||
struct MouseEventState;
|
struct MouseEventState;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -1191,12 +1191,11 @@ void ScGridWindow::PaintTile( VirtualDevice& rDevice,
|
|||||||
|
|
||||||
// setup the SdrPage so that drawinglayer works correctly
|
// setup the SdrPage so that drawinglayer works correctly
|
||||||
ScDrawLayer* pModel = pDoc->GetDrawLayer();
|
ScDrawLayer* pModel = pDoc->GetDrawLayer();
|
||||||
std::unique_ptr<FmFormView> pDrawView;
|
|
||||||
if (pModel)
|
if (pModel)
|
||||||
{
|
{
|
||||||
pDrawView.reset(new FmFormView(pModel, &rDevice));
|
mpLOKDrawView.reset(new FmFormView(pModel, &rDevice));
|
||||||
pDrawView->ShowSdrPage(pDrawView->GetModel()->GetPage(nTab));
|
mpLOKDrawView->ShowSdrPage(mpLOKDrawView->GetModel()->GetPage(nTab));
|
||||||
aOutputData.SetDrawView( pDrawView.get() );
|
aOutputData.SetDrawView(mpLOKDrawView.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
// draw the content
|
// draw the content
|
||||||
|
Reference in New Issue
Block a user