From 4a9ffee48632a9ca9241b03a8e9b20cff229c423 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Fri, 12 Feb 2016 22:57:46 +0100 Subject: Allow partial CairoWidget exposure --- libs/gtkmm2ext/cairo_widget.cc | 8 ++++++-- libs/gtkmm2ext/gtkmm2ext/cairo_widget.h | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) (limited to 'libs') diff --git a/libs/gtkmm2ext/cairo_widget.cc b/libs/gtkmm2ext/cairo_widget.cc index a597a7e29d..0f34a3ffdb 100644 --- a/libs/gtkmm2ext/cairo_widget.cc +++ b/libs/gtkmm2ext/cairo_widget.cc @@ -230,10 +230,14 @@ CairoWidget::on_expose_event (GdkEventExpose *ev) */ void -CairoWidget::set_dirty () +CairoWidget::set_dirty (cairo_rectangle_t *area) { ENSURE_GUI_THREAD (*this, &CairoWidget::set_dirty); - queue_draw (); + if (!area) { + queue_draw (); + } else { + queue_draw_area (area->x, area->y, area->width, area->height); + } } /** Handle a size allocation. diff --git a/libs/gtkmm2ext/gtkmm2ext/cairo_widget.h b/libs/gtkmm2ext/gtkmm2ext/cairo_widget.h index f6db0dbe94..2a483840f9 100644 --- a/libs/gtkmm2ext/gtkmm2ext/cairo_widget.h +++ b/libs/gtkmm2ext/gtkmm2ext/cairo_widget.h @@ -35,7 +35,7 @@ public: CairoWidget (); virtual ~CairoWidget (); - void set_dirty (); + void set_dirty (cairo_rectangle_t *area = 0); Gtkmm2ext::ActiveState active_state() const { return _active_state; } Gtkmm2ext::VisualState visual_state() const { return _visual_state; } -- cgit v1.2.3