From 9b080cbfbabc23a216277f658c2d009fdead6f93 Mon Sep 17 00:00:00 2001 From: iovar Date: Mon, 1 Sep 2008 18:05:49 +0000 Subject: src/rectinsert.c: cleanup of RectInsert() patch from Martin Nordholts git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@502 f606c939-3180-4ac9-a4b8-4b8779d57d0a --- recordmydesktop/src/rectinsert.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/recordmydesktop/src/rectinsert.c b/recordmydesktop/src/rectinsert.c index 1eaa9ef..d65dc76 100644 --- a/recordmydesktop/src/rectinsert.c +++ b/recordmydesktop/src/rectinsert.c @@ -269,19 +269,27 @@ int CollideRects(WGeometry *wgeom1, } } -int RectInsert(RectArea **root,WGeometry *wgeom){ +/** + * If needed, grow the passed geometry so its position and size + * becomes even. + */ +static void MakeGeometryEven(WGeometry *wgeom){ - int total_insertions=0; - RectArea *temp=NULL,*newnode=(RectArea *)malloc(sizeof(RectArea)); - //align - //we do need to know boundaries wgeom->width+=(wgeom->width%2)|(wgeom->x%2); wgeom->height+=(wgeom->height%2)|(wgeom->y%2); wgeom->width+=(wgeom->width%2); wgeom->height+=(wgeom->height%2); wgeom->x-=wgeom->x%2; wgeom->y-=wgeom->y%2; -// fprintf(stderr," %d %d %d %d\n",wgeom->x, + +} + +int RectInsert(RectArea **root,WGeometry *wgeom){ + + int total_insertions=0; + RectArea *temp=NULL,*newnode=(RectArea *)malloc(sizeof(RectArea)); + + MakeGeometryEven(wgeom); newnode->geom.x=wgeom->x; newnode->geom.y=wgeom->y; @@ -306,14 +314,7 @@ int RectInsert(RectArea **root,WGeometry *wgeom){ insert_ok=1; else{ for(i=0;iwidth+=(wgeom_return[i]->width%2)| - (wgeom_return[i]->x%2); - wgeom_return[i]->height+=(wgeom_return[i]->height%2)| - (wgeom_return[i]->y%2); - wgeom_return[i]->width+=(wgeom_return[i]->width%2); - wgeom_return[i]->height+=(wgeom_return[i]->height%2); - wgeom_return[i]->x-=wgeom_return[i]->x%2; - wgeom_return[i]->y-=wgeom_return[i]->y%2; + MakeGeometryEven(wgeom_return[i]); } insert_ok=0; switch(collres){ -- cgit v1.2.3