From 725f4a07f3fb04518646f792b64d3c7fa120091a Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Wed, 13 Jun 2012 10:23:28 +0100 Subject: [PATCH] canvas: Propagate Cairo errors when diagnostic mode is enabled It can be a useful debugging tool to report the eventual error state of the cairo_t after the ::draw signal emission ended. --- clutter/clutter-canvas.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/clutter/clutter-canvas.c b/clutter/clutter-canvas.c index 6bbbde485..43c0e7524 100644 --- a/clutter/clutter-canvas.c +++ b/clutter/clutter-canvas.c @@ -402,6 +402,15 @@ clutter_canvas_emit_draw (ClutterCanvas *self) cr, priv->width, priv->height, &res); +#ifdef CLUTTER_ENABLE_DEBUG + if (_clutter_diagnostic_enabled () && cairo_status (cr)) + { + g_warning ("Drawing failed for [%p]: %s", + self, + cairo_status_to_string (cairo_status (cr))); + } +#endif + self->priv->cr = NULL; cairo_destroy (cr);