From 1315c522b0ca1b7e4ebb733c2bfbf4290ac3ecb6 Mon Sep 17 00:00:00 2001 From: dkf Date: Wed, 7 Mar 2012 14:16:26 +0000 Subject: * generic/tkObj.c (GetPixelsFromObjEx): [Bug 3497848]: Better rounding of pixel values to integers. --- ChangeLog | 9 +++++++-- generic/tkObj.c | 8 ++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 63f52e9..6afbfb5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2012-03-07 Donal K. Fellows + + * generic/tkObj.c (GetPixelsFromObjEx): [Bug 3497848]: Better rounding + of pixel values to integers. + 2012-03-04 Jan Nijtmans * unix/tcl.m4: Patch from the cygwin folks @@ -5,11 +10,11 @@ 2012-02-28 Francois Vogel - * generic/tkText.c: [Bug-1630262], [Bug-1615425]: segfault + * generic/tkText.c: [Bug 1630262, Bug 1615425]: segfault * generic/tkTextBTree.c when deleting lines or tagging outside of * generic/tkTextDisp.c the -startline/-endline range with peer * generic/tkTextMark.c text widgets. - * tests/text.test [Bug-3487407]: Weird text indices. + * tests/text.test [Bug 3487407]: Weird text indices. * tests/textMark.test 2012-02-28 Donal K. Fellows diff --git a/generic/tkObj.c b/generic/tkObj.c index 4c8516e..b9c4f02 100644 --- a/generic/tkObj.c +++ b/generic/tkObj.c @@ -211,7 +211,7 @@ GetPixelsFromObjEx( if (dblPtr != NULL) { *dblPtr = d; } - *intPtr = (int) d; + *intPtr = (int) (d<0 ? d-0.5 : d+0.5); return TCL_OK; } else if (objPtr->typePtr == tsdPtr->intTypePtr) { (void) Tcl_GetIntFromObj(interp, objPtr, intPtr); @@ -255,11 +255,7 @@ GetPixelsFromObjEx( d *= bias[pixelPtr->units] * WidthOfScreen(Tk_Screen(tkwin)); d /= WidthMMOfScreen(Tk_Screen(tkwin)); } - if (d < 0) { - pixelPtr->returnValue = (int) (d - 0.5); - } else { - pixelPtr->returnValue = (int) (d + 0.5); - } + pixelPtr->returnValue = (int) (d<0 ? d-0.5 : d+0.5); pixelPtr->tkwin = tkwin; if (dblPtr) { *dblPtr=(double)d; -- cgit v0.12