diff options
Diffstat (limited to 'recordmydesktop/src')
| -rw-r--r-- | recordmydesktop/src/rectinsert.c | 29 | 
1 files 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;i<ngeoms;i++){ -                    wgeom_return[i]->width+=(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){ | 
