Bug 788461 - Selection with a Fixed size is created with an ...
... off-by one size in special cases SIGNED_ROUND(), which is used by GimpToolRectangle, among other things, used to round negative values which lie exactly between two integers, i.e., -foo.5, down. This could lead to the rectangle being one pixel bigger than expected, in either dimension, when one of its edges had a negative coordinate, and the opposite edge had a positive coordinate. Fix SIGNED_ROUND() to always round such values up, regardless of sign.
This commit is contained in:
@ -84,7 +84,7 @@ G_BEGIN_DECLS
|
|||||||
*
|
*
|
||||||
* This macro rounds its argument @x to the nearest integer.
|
* This macro rounds its argument @x to the nearest integer.
|
||||||
**/
|
**/
|
||||||
#define SIGNED_ROUND(x) ((int) ((((x) < 0) ? (x) - 0.5 : (x) + 0.5)))
|
#define SIGNED_ROUND(x) ((int) RINT (x))
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SQR:
|
* SQR:
|
||||||
|
Reference in New Issue
Block a user