summaryrefslogtreecommitdiff
path: root/canvas
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2015-03-18 14:53:53 +0000
committerCaolán McNamara <caolanm@redhat.com>2015-03-18 17:24:04 +0000
commit2beb8b2e6aef50b8a35da37a5d0caf2ee33d174d (patch)
tree7f5e6526847ea6e3e6afe856bcc152ad782bce46 /canvas
parentdce032e3ac528cfe3b2199a7998ddc349b4a2eb4 (diff)
more thinking
Change-Id: Ie349bd35b1fc92b77cc15f51eb886a1c9c92cbe1
Diffstat (limited to 'canvas')
-rw-r--r--canvas/source/cairo/cairo_xlib_cairo.cxx4
-rw-r--r--canvas/source/cairo/cairo_xlib_cairo.hxx1
2 files changed, 5 insertions, 0 deletions
diff --git a/canvas/source/cairo/cairo_xlib_cairo.cxx b/canvas/source/cairo/cairo_xlib_cairo.cxx
index 24063a47b24e..fe82ceae72f1 100644
--- a/canvas/source/cairo/cairo_xlib_cairo.cxx
+++ b/canvas/source/cairo/cairo_xlib_cairo.cxx
@@ -335,6 +335,7 @@ namespace cairo
**/
Gtk3Surface::Gtk3Surface(const OutputDevice& rRefDevice, int x, int y, int width, int height)
: mpSurface(cairo_get_target(rRefDevice.GetCairoContext()), &cairo_surface_flush)
+ , mpDevice(&rRefDevice)
, mnWidth(width)
, mnHeight(height)
{
@@ -353,6 +354,7 @@ namespace cairo
**/
Gtk3Surface::Gtk3Surface(const CairoSurfaceSharedPtr& pSurface, int width, int height)
: mpSurface(pSurface)
+ , mpDevice(NULL)
, mnWidth(width)
, mnHeight(height)
{
@@ -406,6 +408,8 @@ namespace cairo
void Gtk3Surface::flush() const
{
cairo_surface_flush(mpSurface.get());
+ if (mpDevice)
+ mpDevice->FlushCairoContext(NULL);
}
boost::shared_ptr<VirtualDevice> Gtk3Surface::createVirtualDevice() const
diff --git a/canvas/source/cairo/cairo_xlib_cairo.hxx b/canvas/source/cairo/cairo_xlib_cairo.hxx
index babebde8ab8a..0cc4212c7c64 100644
--- a/canvas/source/cairo/cairo_xlib_cairo.hxx
+++ b/canvas/source/cairo/cairo_xlib_cairo.hxx
@@ -101,6 +101,7 @@ namespace cairo {
class Gtk3Surface : public Surface
{
CairoSurfaceSharedPtr mpSurface;
+ const OutputDevice* mpDevice;
int mnWidth;
int mnHeight;
public: