diff options
Diffstat (limited to 'svtools/source')
-rw-r--r-- | svtools/source/config/optionsdrawinglayer.cxx | 38 |
1 files changed, 36 insertions, 2 deletions
diff --git a/svtools/source/config/optionsdrawinglayer.cxx b/svtools/source/config/optionsdrawinglayer.cxx index 54efe4a66326..2fee81139800 100644 --- a/svtools/source/config/optionsdrawinglayer.cxx +++ b/svtools/source/config/optionsdrawinglayer.cxx @@ -22,6 +22,7 @@ #include <vcl/outdev.hxx> #include <vcl/settings.hxx> #include <officecfg/Office/Common.hxx> +#include <drawinglayer/geometry/viewinformation2d.hxx> #include <mutex> // #i73602# @@ -124,6 +125,12 @@ static bool gbAntiAliasing = false; static bool gbAllowAAInit = false; static bool gbAllowAA = false; +static bool gbAntiAliasingForwardInitial(false); +static bool gbAntiAliasingForwardLast(true); + +static bool gbPixelSnapHairlineForwardInitial(false); +static bool gbPixelSnapHairlineForwardLast(true); + bool IsAAPossibleOnThisSystem() { std::scoped_lock aGuard(gaAntiAliasMutex); @@ -148,7 +155,18 @@ bool IsAntiAliasing() } bAntiAliasing = gbAntiAliasing; } - return bAntiAliasing && IsAAPossibleOnThisSystem(); + + bAntiAliasing = bAntiAliasing && IsAAPossibleOnThisSystem(); + + // + if (!gbAntiAliasingForwardInitial || gbAntiAliasingForwardLast != bAntiAliasing) + { + gbAntiAliasingForwardInitial = true; + gbAntiAliasingForwardLast = bAntiAliasing; + drawinglayer::geometry::ViewInformation2D::forwardAntiAliasing(bAntiAliasing); + } + + return bAntiAliasing; } /** @@ -165,6 +183,13 @@ void SetAntiAliasing( bool bOn, bool bTemporary ) comphelper::ConfigurationChanges::create(); officecfg::Office::Common::Drawinglayer::AntiAliasing::set(bOn, batch); batch->commit(); + + if(!gbAntiAliasingForwardInitial || gbAntiAliasingForwardLast != bOn) + { + gbAntiAliasingForwardInitial = true; + gbAntiAliasingForwardLast = bOn; + drawinglayer::geometry::ViewInformation2D::forwardAntiAliasing(bOn); + } } gbAntiAliasing = bOn; } @@ -172,7 +197,16 @@ void SetAntiAliasing( bool bOn, bool bTemporary ) bool IsSnapHorVerLinesToDiscrete() { - return IsAntiAliasing() && officecfg::Office::Common::Drawinglayer::SnapHorVerLinesToDiscrete::get(); + const bool bRetval(IsAntiAliasing() && officecfg::Office::Common::Drawinglayer::SnapHorVerLinesToDiscrete::get()); + + if (!gbPixelSnapHairlineForwardInitial || gbPixelSnapHairlineForwardLast != bRetval) + { + gbPixelSnapHairlineForwardInitial = true; + gbPixelSnapHairlineForwardLast = bRetval; + drawinglayer::geometry::ViewInformation2D::forwardPixelSnapHairline(bRetval); + } + + return bRetval; } bool IsSolidDragCreate() |