summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-02-12 22:57:46 +0100
committerRobin Gareus <robin@gareus.org>2016-02-12 22:57:46 +0100
commit4a9ffee48632a9ca9241b03a8e9b20cff229c423 (patch)
tree2dfa200e4df2ef074b9d13eaa5af1f4c017a09a9
parent88bb11f27ebe291e5019f8427a249349f4f8067a (diff)
Allow partial CairoWidget exposure
-rw-r--r--libs/gtkmm2ext/cairo_widget.cc8
-rw-r--r--libs/gtkmm2ext/gtkmm2ext/cairo_widget.h2
2 files changed, 7 insertions, 3 deletions
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; }