summaryrefslogtreecommitdiffstats
path: root/src/canvas-base.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-01-09 16:24:04 +0000
committerDavid Robillard <d@drobilla.net>2012-01-09 16:24:04 +0000
commit8a3ed643bec4792ba5be2d538dee9123d6d678d3 (patch)
treef9eeb5817c2ec9f6f492fcd92129b8c9b5619cf3 /src/canvas-base.c
parentbd4240d47a28513d0651f31ab4fd620a84d837ff (diff)
downloadganv-8a3ed643bec4792ba5be2d538dee9123d6d678d3.tar.gz
ganv-8a3ed643bec4792ba5be2d538dee9123d6d678d3.tar.bz2
ganv-8a3ed643bec4792ba5be2d538dee9123d6d678d3.zip
Build with old cairo without cairo_rectangle_int_t (fix #792).
git-svn-id: http://svn.drobilla.net/lad/trunk/ganv@3928 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/canvas-base.c')
-rw-r--r--src/canvas-base.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/canvas-base.c b/src/canvas-base.c
index 5389400..28f0e87 100644
--- a/src/canvas-base.c
+++ b/src/canvas-base.c
@@ -37,6 +37,13 @@
static void ganv_canvas_base_request_update(GanvCanvasBase* canvas);
static void add_idle(GanvCanvasBase* canvas);
+typedef struct {
+ int x;
+ int y;
+ int width;
+ int height;
+} IRect;
+
/* Some convenience stuff */
#define GCI_UPDATE_MASK (GANV_CANVAS_BASE_UPDATE_REQUESTED | GANV_CANVAS_BASE_UPDATE_AFFINE \
| GANV_CANVAS_BASE_UPDATE_VISIBILITY)
@@ -1935,7 +1942,7 @@ static void
paint(GanvCanvasBase* canvas)
{
for (GSList* l = canvas->redraw_region; l; l = l->next) {
- cairo_rectangle_int_t* rect = (cairo_rectangle_int_t*)l->data;
+ IRect* rect = (IRect*)l->data;
const GdkRectangle gdkrect = {
rect->x + canvas->zoom_xofs,
@@ -2364,8 +2371,7 @@ ganv_canvas_base_request_update_real(GanvCanvasBase* canvas)
}
static inline gboolean
-rect_overlaps(const cairo_rectangle_int_t* a,
- const cairo_rectangle_int_t* b)
+rect_overlaps(const IRect* a, const IRect* b)
{
if ((a->x > b->x + b->width) ||
(a->y > b->y + b->height) ||
@@ -2377,9 +2383,9 @@ rect_overlaps(const cairo_rectangle_int_t* a,
}
static inline gboolean
-rect_is_visible(GanvCanvasBase* canvas, const cairo_rectangle_int_t* r)
+rect_is_visible(GanvCanvasBase* canvas, const IRect* r)
{
- const cairo_rectangle_int_t rect = {
+ const IRect rect = {
canvas->layout.hadjustment->value - canvas->zoom_xofs,
canvas->layout.vadjustment->value - canvas->zoom_yofs,
GTK_WIDGET(canvas)->allocation.width,
@@ -2409,13 +2415,13 @@ ganv_canvas_base_request_redraw(GanvCanvasBase* canvas, int x1, int y1, int x2,
return;
}
- const cairo_rectangle_int_t rect = { x1, y1, x2 - x1, y2 - y1 };
+ const IRect rect = { x1, y1, x2 - x1, y2 - y1 };
if (!rect_is_visible(canvas, &rect)) {
return;
}
- cairo_rectangle_int_t* r = g_malloc(sizeof(cairo_rectangle_int_t));
+ IRect* r = g_malloc(sizeof(IRect));
*r = rect;
canvas->redraw_region = g_slist_prepend(canvas->redraw_region, r);