summaryrefslogtreecommitdiff
path: root/vcl/inc
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2017-02-07 16:17:02 +0000
committerCaolán McNamara <caolanm@redhat.com>2017-02-07 16:41:51 +0000
commit555e1ff4cc84682ea73f9976f8e3c6f1d0f22590 (patch)
treec6e071aaf02b08ec2db90407a3ede837959d4ce8 /vcl/inc
parentf9d0f55b2eefc1107d238774a00f7062a1e0d5c8 (diff)
bubble the original gtk surface type through rendering
this may make scrolling a tad faster Change-Id: I0c2cc9df85932e25dbfed88727d3b83d299671c7
Diffstat (limited to 'vcl/inc')
-rw-r--r--vcl/inc/headless/svpgdi.hxx5
-rw-r--r--vcl/inc/headless/svpvd.hxx1
-rw-r--r--vcl/inc/unx/gtk/gtkframe.hxx2
3 files changed, 7 insertions, 1 deletions
diff --git a/vcl/inc/headless/svpgdi.hxx b/vcl/inc/headless/svpgdi.hxx
index 808347401d2c..5673706b7eb6 100644
--- a/vcl/inc/headless/svpgdi.hxx
+++ b/vcl/inc/headless/svpgdi.hxx
@@ -80,6 +80,7 @@ struct VCL_DLLPUBLIC DamageHandler
class VCL_DLLPUBLIC SvpSalGraphics : public SalGraphics
{
cairo_surface_t* m_pSurface;
+ basegfx::B2IVector m_aFrameSize;
double m_fScale;
SalColor m_aLineColor;
SalColor m_aFillColor;
@@ -87,7 +88,7 @@ class VCL_DLLPUBLIC SvpSalGraphics : public SalGraphics
public:
static GlyphCache& getPlatformGlyphCache();
- void setSurface(cairo_surface_t* pSurface);
+ void setSurface(cairo_surface_t* pSurface, const basegfx::B2IVector& rSize);
static cairo_user_data_key_t* getDamageKey();
private:
@@ -115,6 +116,8 @@ protected:
const SalBitmap* pAlphaBitmap) override;
virtual bool drawAlphaRect( long nX, long nY, long nWidth, long nHeight, sal_uInt8 nTransparency ) override;
+ cairo_t* createTmpCompatibleCairoContext() const;
+
public:
SvpSalGraphics();
virtual ~SvpSalGraphics() override;
diff --git a/vcl/inc/headless/svpvd.hxx b/vcl/inc/headless/svpvd.hxx
index 882f36d6fc37..7ac156305abd 100644
--- a/vcl/inc/headless/svpvd.hxx
+++ b/vcl/inc/headless/svpvd.hxx
@@ -31,6 +31,7 @@ class VCL_DLLPUBLIC SvpSalVirtualDevice : public SalVirtualDevice
{
DeviceFormat m_eFormat;
cairo_surface_t* m_pSurface;
+ basegfx::B2IVector m_aFrameSize;
double m_fScale;
std::list< SvpSalGraphics* > m_aGraphics;
diff --git a/vcl/inc/unx/gtk/gtkframe.hxx b/vcl/inc/unx/gtk/gtkframe.hxx
index a0c86b3cb085..51977c25acbe 100644
--- a/vcl/inc/unx/gtk/gtkframe.hxx
+++ b/vcl/inc/unx/gtk/gtkframe.hxx
@@ -246,6 +246,7 @@ class GtkSalFrame : public SalFrame
#endif
#if GTK_CHECK_VERSION(3,0,0)
static gboolean signalDraw( GtkWidget*, cairo_t *cr, gpointer );
+ static void signalRealize(GtkWidget*, gpointer frame);
static void sizeAllocated(GtkWidget*, GdkRectangle *pAllocation, gpointer frame);
static gboolean signalTooltipQuery(GtkWidget*, gint x, gint y,
gboolean keyboard_mode, GtkTooltip *tooltip,
@@ -346,6 +347,7 @@ class GtkSalFrame : public SalFrame
public:
#if GTK_CHECK_VERSION(3,0,0)
cairo_surface_t* m_pSurface;
+ basegfx::B2IVector m_aFrameSize;
DamageHandler m_aDamageHandler;
int m_nGrabLevel;
bool m_bSalObjectSetPosSize;