diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2011-11-07 10:48:17 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2011-11-07 10:48:17 +1000 |
commit | 3077703a5762cd8d47702c5c1f1ad25efc471c76 (patch) | |
tree | b4bcfbe2bce1551b3e132a1cf0bc5f33e536a28d | |
parent | 60021af70471857ca7418a116b838120019ef65d (diff) |
Add a few cairo_save/restore to avoid colour mixups
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r-- | multitouch.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/multitouch.c b/multitouch.c index 1e44c86..583fc7e 100644 --- a/multitouch.c +++ b/multitouch.c @@ -246,9 +246,11 @@ static void paint_touch_begin(struct multitouch *mt, XIDeviceEvent *event) t->y = event->event_y; t->state = TSTATE_BEGIN; + cairo_save(mt->cr); cairo_set_source_rgb(mt->cr, 0, 0, 0); cairo_arc(mt->cr, t->x, t->y, radius, 0, 2 * M_PI); cairo_stroke(mt->cr); + cairo_restore(mt->cr); expose(mt, t->x - radius, t->y - radius, t->x + radius, t->y + radius); } @@ -268,9 +270,12 @@ static void paint_touch_update(struct multitouch *mt, XIDeviceEvent *event) { struct touchpoint *t = find_touch(mt, event->detail); + cairo_save(mt->cr); + cairo_set_source_rgb(mt->cr, 0, 0, 0); cairo_move_to(mt->cr, t->x, t->y); cairo_line_to(mt->cr, event->event_x, event->event_y); cairo_stroke(mt->cr); + cairo_restore(mt->cr); expose(mt, t->x, t->y, event->event_x, event->event_y); t->x = event->event_x; @@ -287,8 +292,11 @@ static void paint_touch_end(struct multitouch *mt, XIDeviceEvent *event) t->y = event->event_y; t->state = TSTATE_END; + cairo_save(mt->cr); + cairo_set_source_rgb(mt->cr, 0, 0, 0); cairo_rectangle(mt->cr, t->x - rsize/2, t->y - rsize/2, rsize, rsize); cairo_stroke(mt->cr); + cairo_restore(mt->cr); expose(mt, t->x - rsize/2, t->y - rsize/2, t->x + rsize/2, t->y + rsize/2); } @@ -361,6 +369,7 @@ static void paint_event(struct multitouch *mt, XIDeviceEvent *event) } } + static int init_cairo(struct multitouch *mt) { cairo_surface_t *surface; |