summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--svtools/source/config/optionsdrawinglayer.cxx41
1 files changed, 26 insertions, 15 deletions
diff --git a/svtools/source/config/optionsdrawinglayer.cxx b/svtools/source/config/optionsdrawinglayer.cxx
index c615a2f6b6a0..43a1d68544f5 100644
--- a/svtools/source/config/optionsdrawinglayer.cxx
+++ b/svtools/source/config/optionsdrawinglayer.cxx
@@ -32,12 +32,6 @@
namespace SvtOptionsDrawinglayer
{
-// helper
-bool IsAAPossibleOnThisSystem()
-{
- return !Application::GetDefaultDevice()->SupportsOperation( OutDevSupportType::TransparentRect );
-}
-
bool IsOverlayBuffer()
{
return officecfg::Office::Common::Drawinglayer::OverlayBuffer::get();
@@ -126,19 +120,36 @@ sal_uInt32 GetMaximumPaperBottomMargin()
}
static std::mutex gaAntiAliasMutex;
-static bool bAntiAliasingInit = false;
-static bool bAntiAliasing = false;
+static bool gbAntiAliasingInit = false;
+static bool gbAntiAliasing = false;
+static bool gbAllowAAInit = false;
+static bool gbAllowAA = false;
-bool IsAntiAliasing()
+bool IsAAPossibleOnThisSystem()
{
std::lock_guard aGuard(gaAntiAliasMutex);
- if (!bAntiAliasingInit)
+ if (!gbAllowAAInit)
+ {
+ gbAllowAAInit = true;
+ gbAllowAA = Application::GetDefaultDevice()->SupportsOperation( OutDevSupportType::TransparentRect );
+ }
+ return gbAllowAA;
+}
+
+
+bool IsAntiAliasing()
+{
+ bool bAntiAliasing;
{
- bAntiAliasingInit = true;
- bAntiAliasing = officecfg::Office::Common::Drawinglayer::AntiAliasing::get()
- && IsAAPossibleOnThisSystem();
+ std::lock_guard aGuard(gaAntiAliasMutex);
+ if (!gbAntiAliasingInit)
+ {
+ gbAntiAliasingInit = true;
+ gbAntiAliasing = officecfg::Office::Common::Drawinglayer::AntiAliasing::get();
+ }
+ bAntiAliasing = gbAntiAliasing;
}
- return bAntiAliasing;
+ return bAntiAliasing && IsAAPossibleOnThisSystem();
}
/**
@@ -156,7 +167,7 @@ void SetAntiAliasing( bool bOn, bool bTemporary )
officecfg::Office::Common::Drawinglayer::AntiAliasing::set(bOn, batch);
batch->commit();
}
- bAntiAliasing = bOn;
+ gbAntiAliasing = bOn;
}