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:
Ell
2017-10-05 16:05:25 -04:00
parent 9fee677b5c
commit e8b37a7a25

View File

@ -84,7 +84,7 @@ G_BEGIN_DECLS
*
* 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: