drawinglayer/source/primitive2d/controlprimitive2d.cxx | 3 drawinglayer/source/primitive2d/sceneprimitive2d.cxx | 2 drawinglayer/source/processor2d/vclpixelprocessor2d.cxx | 20 + drawinglayer/source/processor2d/vclprocessor2d.cxx | 2 drawinglayer/source/processor3d/zbufferprocessor3d.cxx | 2 include/svtools/optionsdrawinglayer.hxx | 23 - officecfg/registry/schema/org/openoffice/Office/Common.xcs | 64 +++++ svtools/source/config/optionsdrawinglayer.cxx | 153 ++++++++++++- svx/source/svdraw/svddrgv.cxx | 7 9 files changed, 245 insertions(+), 31 deletions(-)
New commits: commit f569507f3f0da7f69a2e808165612cbef4c15410 Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Fri Apr 17 11:43:39 2020 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Fri Apr 17 13:07:42 2020 +0200 Revert "[API CHANGE] remove some primitives rendering settings" This reverts commit c71656f51a09e88ecae4f3423c96fee84778647d. Reason for revert: I give up Change-Id: I2a09c36c1f0d731f4d3f7d809364de7efa8d8a58 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92426 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/drawinglayer/source/primitive2d/controlprimitive2d.cxx b/drawinglayer/source/primitive2d/controlprimitive2d.cxx index 65ec1ab9214a..600bb4be8a3f 100644 --- a/drawinglayer/source/primitive2d/controlprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/controlprimitive2d.cxx @@ -96,7 +96,8 @@ namespace drawinglayer::primitive2d basegfx::B2DVector aDiscreteSize(rViewInformation.getObjectToViewTransformation() * aScale); // limit to a maximum square size, e.g. 300x150 pixels (45000) - const double fDiscreteMax(SvtOptionsDrawinglayer::GetQuadraticFormControlRenderLimit()); + const SvtOptionsDrawinglayer aDrawinglayerOpt; + const double fDiscreteMax(aDrawinglayerOpt.GetQuadraticFormControlRenderLimit()); const double fDiscreteQuadratic(aDiscreteSize.getX() * aDiscreteSize.getY()); const bool bScaleUsed(fDiscreteQuadratic > fDiscreteMax); double fFactor(1.0); diff --git a/drawinglayer/source/primitive2d/sceneprimitive2d.cxx b/drawinglayer/source/primitive2d/sceneprimitive2d.cxx index b225d62537a9..c0c0fec7d41a 100644 --- a/drawinglayer/source/primitive2d/sceneprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/sceneprimitive2d.cxx @@ -243,7 +243,7 @@ namespace drawinglayer::primitive2d double fViewSizeY(aVisibleDiscreteRange.getHeight()); const double fViewVisibleArea(fViewSizeX * fViewSizeY); const SvtOptionsDrawinglayer aDrawinglayerOpt; - const double fMaximumVisibleArea(SvtOptionsDrawinglayer::GetQuadratic3DRenderLimit()); + const double fMaximumVisibleArea(aDrawinglayerOpt.GetQuadratic3DRenderLimit()); double fReduceFactor(1.0); if(fViewVisibleArea > fMaximumVisibleArea) diff --git a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx index f09776f50710..e94637a9a7fe 100644 --- a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx +++ b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx @@ -389,7 +389,14 @@ namespace drawinglayer::processor2d const DrawModeFlags nOriginalDrawMode(mpOutputDevice->GetDrawMode()); adaptTextToFillDrawMode(); - RenderTextSimpleOrDecoratedPortionPrimitive2D(rCandidate); + if(getOptionsDrawinglayer().IsRenderSimpleTextDirect()) + { + RenderTextSimpleOrDecoratedPortionPrimitive2D(rCandidate); + } + else + { + process(rCandidate); + } // restore DrawMode mpOutputDevice->SetDrawMode(nOriginalDrawMode); @@ -401,7 +408,14 @@ namespace drawinglayer::processor2d const DrawModeFlags nOriginalDrawMode(mpOutputDevice->GetDrawMode()); adaptTextToFillDrawMode(); - RenderTextSimpleOrDecoratedPortionPrimitive2D(rCandidate); + if(getOptionsDrawinglayer().IsRenderDecoratedTextDirect()) + { + RenderTextSimpleOrDecoratedPortionPrimitive2D(rCandidate); + } + else + { + process(rCandidate); + } // restore DrawMode mpOutputDevice->SetDrawMode(nOriginalDrawMode); @@ -815,7 +829,7 @@ namespace drawinglayer::processor2d void VclPixelProcessor2D::processMetaFilePrimitive2D(const primitive2d::BasePrimitive2D& rCandidate) { // #i98289# - const bool bForceLineSnap(getOptionsDrawinglayer().IsAntiAliasing()); + const bool bForceLineSnap(getOptionsDrawinglayer().IsAntiAliasing() && getOptionsDrawinglayer().IsSnapHorVerLinesToDiscrete()); const AntialiasingFlags nOldAntiAliase(mpOutputDevice->GetAntialiasing()); if(bForceLineSnap) diff --git a/drawinglayer/source/processor2d/vclprocessor2d.cxx b/drawinglayer/source/processor2d/vclprocessor2d.cxx index b7537708af20..34ff2992934f 100644 --- a/drawinglayer/source/processor2d/vclprocessor2d.cxx +++ b/drawinglayer/source/processor2d/vclprocessor2d.cxx @@ -332,7 +332,7 @@ namespace drawinglayer::processor2d basegfx::B2DPolygon aLocalPolygon(rPolygonCandidate.getB2DPolygon()); aLocalPolygon.transform(maCurrentTransformation); - if(bPixelBased && getOptionsDrawinglayer().IsAntiAliasing()) + if(bPixelBased && getOptionsDrawinglayer().IsAntiAliasing() && getOptionsDrawinglayer().IsSnapHorVerLinesToDiscrete()) { // #i98289# // when a Hairline is painted and AntiAliasing is on the option SnapHorVerLinesToDiscrete diff --git a/drawinglayer/source/processor3d/zbufferprocessor3d.cxx b/drawinglayer/source/processor3d/zbufferprocessor3d.cxx index c36e2bbfc558..3c5945af41b7 100644 --- a/drawinglayer/source/processor3d/zbufferprocessor3d.cxx +++ b/drawinglayer/source/processor3d/zbufferprocessor3d.cxx @@ -444,7 +444,7 @@ namespace drawinglayer::processor3d if(mnAntiAlialize > 1) { - const bool bForceLineSnap(getOptionsDrawinglayer().IsAntiAliasing()); + const bool bForceLineSnap(getOptionsDrawinglayer().IsAntiAliasing() && getOptionsDrawinglayer().IsSnapHorVerLinesToDiscrete()); if(bForceLineSnap) { diff --git a/include/svtools/optionsdrawinglayer.hxx b/include/svtools/optionsdrawinglayer.hxx index b156dd5741f2..762b2545e1af 100644 --- a/include/svtools/optionsdrawinglayer.hxx +++ b/include/svtools/optionsdrawinglayer.hxx @@ -101,23 +101,12 @@ class SVT_DLLPUBLIC SvtOptionsDrawinglayer // primitives bool IsAntiAliasing() const; - /** - Defines a Limitation for the default raster conversion from - 3D Scenes to Bitmaps. The number is the maximum number of pixels to - use, e.g. 1000x1000 Pixels is allowed as default. When Scenes would - need more Pixels than this, the Bitmap will be limited and scaled to - the needed pixel size at paint time. - */ - static sal_uInt32 GetQuadratic3DRenderLimit() { return 1000000; } - /** - Defines a Limitation for the default raster conversion of - FormControls in edit mode. These have the ability to be displayed - using this fallback to Bitmaps. The number is the maximum number of - pixels to use, e.g. 300x150 Pixels is allowed as default. When - FormControls would need more Pixels than this, the Bitmap will be - limited and scaled to the needed pixel size at paint time. - */ - static sal_uInt32 GetQuadraticFormControlRenderLimit() { return 45000; } + bool IsSnapHorVerLinesToDiscrete() const; + bool IsSolidDragCreate() const; + bool IsRenderDecoratedTextDirect() const; + bool IsRenderSimpleTextDirect() const; + sal_uInt32 GetQuadratic3DRenderLimit() const; + sal_uInt32 GetQuadraticFormControlRenderLimit() const; void SetAntiAliasing( bool bState ); diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs index d7ae0e4d48b6..1307269765fb 100644 --- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs @@ -1140,6 +1140,45 @@ </info> <value>true</value> </prop> + <prop oor:name="SnapHorVerLinesToDiscrete" oor:type="xs:boolean" oor:nillable="false"> + <info> + <desc>This switch allows to enhance visualisation of graphics which + use Horizontal or Vertical Hairlines combined with AntiAliased mode + (e.g. in 2D charts). When not used, those lines will be AntiAliased as + everything else. Since this is not pleasing for the eye, this option + allows to force those lines to snap to discrete points (pixels) when + activated and thus avoids AntiAliasing of pure Horizontal or Vertical + Hairlines.</desc> + <label>Determines if Horizontal and Vertical HairLines in AntiAliased + mode are snapped to discrete pixels to enhance visualisation</label> + </info> + <value>true</value> + </prop> + <prop oor:name="RenderDecoratedTextDirect" oor:type="xs:boolean" oor:nillable="false"> + <info> + <desc>This switch determines if the decorations of decorated text + portions (e.g. underline, strike through) are rendered using VCL + direct rendering or if the primitive is decomposed into simple text + and the corresponding geometrical representations of the decorations. + Default is true since VCL's usage of the diverse System's hinting + possibilities for decorations is useful.</desc> + <label>Determines if decorated texts are decomposed at render time or + directly rendered using VCL</label> + </info> + <value>true</value> + </prop> + <prop oor:name="RenderSimpleTextDirect" oor:type="xs:boolean" oor:nillable="false"> + <info> + <desc>This switch determines if simple text is directly rendered using + VCL or not. If not, the simple text is decomposed into PolyPolygons + which will be painted then. Default is true, since VCL will use the + hinting for font rendering on the diverse supported systems, which + gives better quality than rendering the text as Polygons.</desc> + <label>Determines if simple texts are decomposed at render time or + directly rendered using VCL</label> + </info> + <value>true</value> + </prop> <prop oor:name="SolidDragCreate" oor:type="xs:boolean" oor:nillable="false"> <info> <desc>This switch decides if Interactions in the DrawingLayer are @@ -1155,6 +1194,31 @@ </info> <value>true</value> </prop> + <prop oor:name="Quadratic3DRenderLimit" oor:type="xs:int" oor:nillable="false"> + <info> + <desc>This defines a Limitation for the default raster conversion from + 3D Scenes to Bitmaps. The number is the maximum number of pixels to + use, e.g. 1000x1000 Pixels is allowed as default. When Scenes would + need more Pixels than this, the Bitmap will be limited and scaled to + the needed pixel size at paint time.</desc> + <label>A Pixel limitation for the creation of 3D Scenes with the + default renderer.</label> + </info> + <value>1000000</value> + </prop> + <prop oor:name="QuadraticFormControlRenderLimit" oor:type="xs:int" oor:nillable="false"> + <info> + <desc>This defines a Limitation for the default raster conversion of + FormControls in edit mode. These have the ability to be displayed + using this fallback to Bitmaps. The number is the maximum number of + pixels to use, e.g. 300x150 Pixels is allowed as default. When + FormControls would need more Pixels than this, the Bitmap will be + limited and scaled to the needed pixel size at paint time.</desc> + <label>A Pixel limitation for the creation of FormControl fallback + display.</label> + </info> + <value>45000</value> + </prop> <prop oor:name="TransparentSelection" oor:type="xs:boolean" oor:nillable="false"> <info> <desc>This switch defines if the selections in the applications (text diff --git a/svtools/source/config/optionsdrawinglayer.cxx b/svtools/source/config/optionsdrawinglayer.cxx index d20f2a32be2c..18a2ab4a00a7 100644 --- a/svtools/source/config/optionsdrawinglayer.cxx +++ b/svtools/source/config/optionsdrawinglayer.cxx @@ -62,6 +62,12 @@ using namespace ::com::sun::star::uno ; // primitives #define DEFAULT_ANTIALIASING true +#define DEFAULT_SNAPHORVERLINESTODISCRETE true +#define DEFAULT_SOLIDDRAGCREATE true +#define DEFAULT_RENDERDECORATEDTEXTDIRECT true +#define DEFAULT_RENDERSIMPLETEXTDIRECT true +#define DEFAULT_QUADRATIC3DRENDERLIMIT 1000000 +#define DEFAULT_QUADRATICFORMCONTROLRENDERLIMIT 45000 // #i97672# selection settings #define DEFAULT_TRANSPARENTSELECTION true @@ -94,6 +100,12 @@ using namespace ::com::sun::star::uno ; // primitives #define PROPERTYNAME_ANTIALIASING OUString("AntiAliasing") +#define PROPERTYNAME_SNAPHORVERLINESTODISCRETE OUString("SnapHorVerLinesToDiscrete") +#define PROPERTYNAME_SOLIDDRAGCREATE OUString("SolidDragCreate") +#define PROPERTYNAME_RENDERDECORATEDTEXTDIRECT OUString("RenderDecoratedTextDirect") +#define PROPERTYNAME_RENDERSIMPLETEXTDIRECT OUString("RenderSimpleTextDirect") +#define PROPERTYNAME_QUADRATIC3DRENDERLIMIT OUString("Quadratic3DRenderLimit") +#define PROPERTYNAME_QUADRATICFORMCONTROLRENDERLIMIT OUString("QuadraticFormControlRenderLimit") // #i97672# selection settings #define PROPERTYNAME_TRANSPARENTSELECTION OUString("TransparentSelection") @@ -126,13 +138,19 @@ using namespace ::com::sun::star::uno ; // primitives #define PROPERTYHANDLE_ANTIALIASING 17 +#define PROPERTYHANDLE_SNAPHORVERLINESTODISCRETE 18 +#define PROPERTYHANDLE_SOLIDDRAGCREATE 19 +#define PROPERTYHANDLE_RENDERDECORATEDTEXTDIRECT 20 +#define PROPERTYHANDLE_RENDERSIMPLETEXTDIRECT 21 +#define PROPERTYHANDLE_QUADRATIC3DRENDERLIMIT 22 +#define PROPERTYHANDLE_QUADRATICFORMCONTROLRENDERLIMIT 23 // #i97672# selection settings -#define PROPERTYHANDLE_TRANSPARENTSELECTION 18 -#define PROPERTYHANDLE_TRANSPARENTSELECTIONPERCENT 19 -#define PROPERTYHANDLE_SELECTIONMAXIMUMLUMINANCEPERCENT 20 +#define PROPERTYHANDLE_TRANSPARENTSELECTION 24 +#define PROPERTYHANDLE_TRANSPARENTSELECTIONPERCENT 25 +#define PROPERTYHANDLE_SELECTIONMAXIMUMLUMINANCEPERCENT 26 -#define PROPERTYCOUNT 21 +#define PROPERTYCOUNT 27 class SvtOptionsDrawinglayer_Impl : public ConfigItem { @@ -171,6 +189,12 @@ public: // primitives bool IsAntiAliasing() const { return m_bAntiAliasing;} + bool IsSnapHorVerLinesToDiscrete() const { return m_bSnapHorVerLinesToDiscrete;} + bool IsSolidDragCreate() const { return m_bSolidDragCreate;} + bool IsRenderDecoratedTextDirect() const { return m_bRenderDecoratedTextDirect;} + bool IsRenderSimpleTextDirect() const { return m_bRenderSimpleTextDirect;} + sal_uInt32 GetQuadratic3DRenderLimit() const { return m_nQuadratic3DRenderLimit;} + sal_uInt32 GetQuadraticFormControlRenderLimit() const { return m_nQuadraticFormControlRenderLimit;} void SetAntiAliasing( bool bState ); @@ -216,6 +240,12 @@ private: // primitives bool m_bAntiAliasing; + bool m_bSnapHorVerLinesToDiscrete; + bool m_bSolidDragCreate; + bool m_bRenderDecoratedTextDirect; + bool m_bRenderSimpleTextDirect; + sal_uInt32 m_nQuadratic3DRenderLimit; + sal_uInt32 m_nQuadraticFormControlRenderLimit; // #i97672# selection settings sal_uInt16 m_nTransparentSelectionPercent; @@ -255,6 +285,12 @@ SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl() : // primitives m_bAntiAliasing(DEFAULT_ANTIALIASING), + m_bSnapHorVerLinesToDiscrete(DEFAULT_SNAPHORVERLINESTODISCRETE), + m_bSolidDragCreate(DEFAULT_SOLIDDRAGCREATE), + m_bRenderDecoratedTextDirect(DEFAULT_RENDERDECORATEDTEXTDIRECT), + m_bRenderSimpleTextDirect(DEFAULT_RENDERSIMPLETEXTDIRECT), + m_nQuadratic3DRenderLimit(DEFAULT_QUADRATIC3DRENDERLIMIT), + m_nQuadraticFormControlRenderLimit(DEFAULT_QUADRATICFORMCONTROLRENDERLIMIT), // #i97672# selection settings m_nTransparentSelectionPercent(DEFAULT_TRANSPARENTSELECTIONPERCENT), @@ -413,6 +449,49 @@ SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl() : } break; + // primitives + case PROPERTYHANDLE_SNAPHORVERLINESTODISCRETE: + { + DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\SnapHorVerLinesToDiscrete\"?" ); + seqValues[nProperty] >>= m_bSnapHorVerLinesToDiscrete; + } + break; + + case PROPERTYHANDLE_SOLIDDRAGCREATE: + { + DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\SolidDragCreate\"?" ); + seqValues[nProperty] >>= m_bSolidDragCreate; + } + break; + + case PROPERTYHANDLE_RENDERDECORATEDTEXTDIRECT: + { + DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\RenderDecoratedTextDirect\"?" ); + seqValues[nProperty] >>= m_bRenderDecoratedTextDirect; + } + break; + + case PROPERTYHANDLE_RENDERSIMPLETEXTDIRECT: + { + DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\RenderSimpleTextDirect\"?" ); + seqValues[nProperty] >>= m_bRenderSimpleTextDirect; + } + break; + + case PROPERTYHANDLE_QUADRATIC3DRENDERLIMIT: + { + DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_LONG), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\Quadratic3DRenderLimit\"?" ); + seqValues[nProperty] >>= m_nQuadratic3DRenderLimit; + } + break; + + case PROPERTYHANDLE_QUADRATICFORMCONTROLRENDERLIMIT: + { + DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_LONG), "SvtOptionsDrawinglayer_Impl::SvtOptionsDrawinglayer_Impl()\nWho has changed the value type of \"Office.Common\\Drawinglayer\\QuadraticFormControlRenderLimit\"?" ); + seqValues[nProperty] >>= m_nQuadraticFormControlRenderLimit; + } + break; + // #i97672# selection settings case PROPERTYHANDLE_TRANSPARENTSELECTION: { @@ -531,6 +610,30 @@ void SvtOptionsDrawinglayer_Impl::ImplCommit() aSeqValues[nProperty] <<= m_bAntiAliasing; break; + case PROPERTYHANDLE_SNAPHORVERLINESTODISCRETE: + aSeqValues[nProperty] <<= m_bSnapHorVerLinesToDiscrete; + break; + + case PROPERTYHANDLE_SOLIDDRAGCREATE: + aSeqValues[nProperty] <<= m_bSolidDragCreate; + break; + + case PROPERTYHANDLE_RENDERDECORATEDTEXTDIRECT: + aSeqValues[nProperty] <<= m_bRenderDecoratedTextDirect; + break; + + case PROPERTYHANDLE_RENDERSIMPLETEXTDIRECT: + aSeqValues[nProperty] <<= m_bRenderSimpleTextDirect; + break; + + case PROPERTYHANDLE_QUADRATIC3DRENDERLIMIT: + aSeqValues[nProperty] <<= m_nQuadratic3DRenderLimit; + break; + + case PROPERTYHANDLE_QUADRATICFORMCONTROLRENDERLIMIT: + aSeqValues[nProperty] <<= m_nQuadraticFormControlRenderLimit; + break; + // #i97672# selection settings case PROPERTYHANDLE_TRANSPARENTSELECTION: aSeqValues[nProperty] <<= m_bTransparentSelection; @@ -627,6 +730,12 @@ Sequence< OUString > SvtOptionsDrawinglayer_Impl::impl_GetPropertyNames() // primitives PROPERTYNAME_ANTIALIASING, + PROPERTYNAME_SNAPHORVERLINESTODISCRETE, + PROPERTYNAME_SOLIDDRAGCREATE, + PROPERTYNAME_RENDERDECORATEDTEXTDIRECT, + PROPERTYNAME_RENDERSIMPLETEXTDIRECT, + PROPERTYNAME_QUADRATIC3DRENDERLIMIT, + PROPERTYNAME_QUADRATICFORMCONTROLRENDERLIMIT, // #i97672# selection settings PROPERTYNAME_TRANSPARENTSELECTION, @@ -793,6 +902,42 @@ bool SvtOptionsDrawinglayer::IsAntiAliasing() const return m_pImpl->IsAntiAliasing() && IsAAPossibleOnThisSystem(); } +bool SvtOptionsDrawinglayer::IsSnapHorVerLinesToDiscrete() const +{ + MutexGuard aGuard( GetOwnStaticMutex() ); + return m_pImpl->IsAntiAliasing() && m_pImpl->IsSnapHorVerLinesToDiscrete(); +} + +bool SvtOptionsDrawinglayer::IsSolidDragCreate() const +{ + MutexGuard aGuard( GetOwnStaticMutex() ); + return m_pImpl->IsSolidDragCreate(); +} + +bool SvtOptionsDrawinglayer::IsRenderDecoratedTextDirect() const +{ + MutexGuard aGuard( GetOwnStaticMutex() ); + return m_pImpl->IsRenderDecoratedTextDirect(); +} + +bool SvtOptionsDrawinglayer::IsRenderSimpleTextDirect() const +{ + MutexGuard aGuard( GetOwnStaticMutex() ); + return m_pImpl->IsRenderSimpleTextDirect(); +} + +sal_uInt32 SvtOptionsDrawinglayer::GetQuadratic3DRenderLimit() const +{ + MutexGuard aGuard( GetOwnStaticMutex() ); + return m_pImpl->GetQuadratic3DRenderLimit(); +} + +sal_uInt32 SvtOptionsDrawinglayer::GetQuadraticFormControlRenderLimit() const +{ + MutexGuard aGuard( GetOwnStaticMutex() ); + return m_pImpl->GetQuadraticFormControlRenderLimit(); +} + void SvtOptionsDrawinglayer::SetAntiAliasing( bool bState ) { MutexGuard aGuard( GetOwnStaticMutex() ); diff --git a/svx/source/svdraw/svddrgv.cxx b/svx/source/svdraw/svddrgv.cxx index 832ea61ca9de..7002f9447d0d 100644 --- a/svx/source/svdraw/svddrgv.cxx +++ b/svx/source/svdraw/svddrgv.cxx @@ -63,7 +63,7 @@ void SdrDragView::ImpClearVars() mbCrookAtCenter=false; // init using default - mbSolidDragging = true; + mbSolidDragging = getOptionsDrawinglayer().IsSolidDragCreate(); } SdrDragView::SdrDragView( @@ -917,8 +917,9 @@ void SdrDragView::SetSolidDragging(bool bOn) bool SdrDragView::IsSolidDragging() const { - // allow each user to disable by having a local setting - return mbSolidDragging; + // allow each user to disable by having a local setting, but using AND for + // checking allowance + return mbSolidDragging && getOptionsDrawinglayer().IsSolidDragCreate(); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits