From 4b563ae518e302759c0abdba0e0ac6e15cbc6a26 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Mon, 18 Mar 2024 10:50:36 -0600 Subject: [PATCH] move CairoCanvas::render() implementation for ArdourCanvas::Canvas into source Note that this implementation only redraws a single (cairo_rectangle_t-defined) rect, and cannot provide sub-rects the way that a normal GDK/GTK expose-driven redraw can --- libs/canvas/canvas.cc | 7 +++++++ libs/canvas/canvas/canvas.h | 10 ++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/libs/canvas/canvas.cc b/libs/canvas/canvas.cc index b2876d4a26..783f3dd678 100644 --- a/libs/canvas/canvas.cc +++ b/libs/canvas/canvas.cc @@ -1600,6 +1600,13 @@ GtkCanvas::grab_can_translate () const return _grabbed_item->scroll_translation (); } +void +GtkCanvas::render (Cairo::RefPtr const & ctx, cairo_rectangle_t* r) +{ + ArdourCanvas::Rect rect (r->x, r->y, r->width + r->x, r->height + r->y); + Canvas::render (rect, ctx); +} + /** Create a GtkCanvaSViewport. * @param hadj Adjustment to use for horizontal scrolling. * @param vadj Adjustment to use for vertica scrolling. diff --git a/libs/canvas/canvas/canvas.h b/libs/canvas/canvas/canvas.h index c8d53a3e4f..e0d4b66014 100644 --- a/libs/canvas/canvas/canvas.h +++ b/libs/canvas/canvas/canvas.h @@ -249,12 +249,10 @@ public: Glib::RefPtr get_pango_context(); - void render (Cairo::RefPtr const & ctx, cairo_rectangle_t* r) - { - ArdourCanvas::Rect rect (r->x, r->y, r->width + r->x, r->height + r->y); - Canvas::render (rect, ctx); - } - + /* This is the render method called via the Gtkmm2ext::CairoCanvas API, + which is distinct from ArdourCanvas. + */ + void render (Cairo::RefPtr const & ctx, cairo_rectangle_t* r); void prepare_for_render () const; uint32_t background_color() { return Canvas::background_color (); }