summaryrefslogtreecommitdiff
path: root/libs/canvas/canvas.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2014-11-10 20:34:20 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2014-11-10 20:34:20 -0500
commit12b715e6fa0b99f755ced1139532218d98b01e37 (patch)
treea2de6b65b85a5461566040e943756aa29708d285 /libs/canvas/canvas.cc
parentfdcb7923582e43f69419023db7985823b2ac1402 (diff)
tweak canvas on_expose_event() handler to avoid unnecessary save/paint/restore
Diffstat (limited to 'libs/canvas/canvas.cc')
-rw-r--r--libs/canvas/canvas.cc6
1 files changed, 1 insertions, 5 deletions
diff --git a/libs/canvas/canvas.cc b/libs/canvas/canvas.cc
index f59640618c..aebc601620 100644
--- a/libs/canvas/canvas.cc
+++ b/libs/canvas/canvas.cc
@@ -766,14 +766,10 @@ GtkCanvas::on_expose_event (GdkEventExpose* ev)
/* draw background color */
- draw_context->save ();
draw_context->rectangle (ev->area.x, ev->area.y, ev->area.width, ev->area.height);
- draw_context->clip ();
- draw_context->set_operator (Cairo::OPERATOR_SOURCE);
+ draw_context->clip_preserve ();
set_source_rgba (draw_context, _bg_color);
- draw_context->rectangle (ev->area.x, ev->area.y, ev->area.width, ev->area.height);
draw_context->fill ();
- draw_context->restore ();
/* render canvas */