summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Otte <otte@gnome.org>2007-12-18 21:19:32 +0100
committerBenjamin Otte <otte@gnome.org>2007-12-18 21:19:32 +0100
commit81516c8555ce1030ec76bee3180b600d5007f30c (patch)
tree0d96e38891602d0abcf101f90b4f368394452ea0
parent0fa448732616c019383abb5fa8f291f8f0879df5 (diff)
clip resize region to surface size
-rw-r--r--swfdec-directfb/swfdec_directfb_renderer.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/swfdec-directfb/swfdec_directfb_renderer.c b/swfdec-directfb/swfdec_directfb_renderer.c
index 69b0953..4ee98cc 100644
--- a/swfdec-directfb/swfdec_directfb_renderer.c
+++ b/swfdec-directfb/swfdec_directfb_renderer.c
@@ -94,7 +94,19 @@ static void
swfdec_dfb_renderer_invalidate_cb (SwfdecPlayer *player, const SwfdecRectangle *extents,
const SwfdecRectangle *rects, guint n_rects, SwfdecDfbRenderer *renderer)
{
- swfdec_dfb_renderer_queue_repaint (renderer, extents);
+ SwfdecRectangle tmp = *extents;
+
+ if (tmp.x + tmp.width > renderer->width) {
+ if (tmp.x >= renderer->width)
+ return;
+ tmp.width = renderer->width - tmp.x;
+ }
+ if (tmp.y + tmp.height > renderer->height) {
+ if (tmp.y >= renderer->height)
+ return;
+ tmp.height = renderer->height - tmp.y;
+ }
+ swfdec_dfb_renderer_queue_repaint (renderer, &tmp);
}
SwfdecDfbRenderer *