summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/vcl/salnativewidgets.hxx13
-rw-r--r--vcl/opengl/win/gdiimpl.cxx2
-rw-r--r--vcl/opengl/x11/gdiimpl.cxx2
-rw-r--r--vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx5
4 files changed, 19 insertions, 3 deletions
diff --git a/include/vcl/salnativewidgets.hxx b/include/vcl/salnativewidgets.hxx
index 2ae7a6e26c19..8e9effbe6a72 100644
--- a/include/vcl/salnativewidgets.hxx
+++ b/include/vcl/salnativewidgets.hxx
@@ -279,6 +279,19 @@ public:
&& maSize.Width() == aOther.maSize.Width()
&& maSize.Height() == aOther.maSize.Height();
}
+
+ bool canCacheControl()
+ {
+ switch(mnType)
+ {
+ case CTRL_CHECKBOX:
+ case CTRL_RADIOBUTTON:
+ return false;
+ default:
+ break;
+ }
+ return true;
+ }
};
struct ControlCacheHashFunction
diff --git a/vcl/opengl/win/gdiimpl.cxx b/vcl/opengl/win/gdiimpl.cxx
index 0b531141be17..6896a024ec7d 100644
--- a/vcl/opengl/win/gdiimpl.cxx
+++ b/vcl/opengl/win/gdiimpl.cxx
@@ -119,7 +119,7 @@ bool WinOpenGLSalGraphicsImpl::RenderAndCacheNativeControl(OpenGLCompatibleDC& r
if (!bResult)
return false;
- if (aControlCacheKey.mnType == CTRL_CHECKBOX)
+ if (!aControlCacheKey.canCacheControl())
return true;
ControlCachePair pair(aControlCacheKey, std::move(pCombo));
diff --git a/vcl/opengl/x11/gdiimpl.cxx b/vcl/opengl/x11/gdiimpl.cxx
index 0663ce933d24..4c592842d9d8 100644
--- a/vcl/opengl/x11/gdiimpl.cxx
+++ b/vcl/opengl/x11/gdiimpl.cxx
@@ -235,7 +235,7 @@ bool X11OpenGLSalGraphicsImpl::RenderAndCacheNativeControl(X11Pixmap* pPixmap, X
if (!bResult)
return false;
- if (aControlCacheKey.mnType == CTRL_CHECKBOX)
+ if (!aControlCacheKey.canCacheControl())
return true;
ControlCachePair pair(aControlCacheKey, std::move(pCombo));
diff --git a/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx b/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx
index 6a0768388693..6a0df252fdbd 100644
--- a/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx
@@ -904,8 +904,11 @@ bool GtkSalGraphics::drawNativeControl(ControlType nType, ControlPart nPart,
Size( aCtrlRect.GetWidth()+2, aCtrlRect.GetHeight()+2) );
ControlCacheKey aControlCacheKey(nType, nPart, nState, aPixmapRect.GetSize());
- if (TryRenderCachedNativeControl(aControlCacheKey, aPixmapRect.Left(), aPixmapRect.Top()))
+ if (aControlCacheKey.canCacheControl()
+ && TryRenderCachedNativeControl(aControlCacheKey, aPixmapRect.Left(), aPixmapRect.Top()))
+ {
return true;
+ }
clipList aClip;
int nPasses = 0;