summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--generic/tkObj.c8
2 files changed, 9 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 8625a62..a180583 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-03-07 Donal K. Fellows <dkf@users.sf.net>
+
+ * generic/tkObj.c (GetPixelsFromObjEx): [Bug 3497848]: Better rounding
+ of pixel values to integers.
+
2012-03-04 Jan Nijtmans <nijtmans@users.sf.net>
* unix/tcl.m4: Patch from the cygwin folks
@@ -5,11 +10,11 @@
2012-02-28 Francois Vogel <fvogelnew1@free.fr>
- * 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 <dkf@users.sf.net>
diff --git a/generic/tkObj.c b/generic/tkObj.c
index 7affac4..2e45e0e 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 == typeCache->intTypePtr) {
(void) Tcl_GetIntFromObj(interp, objPtr, intPtr);
@@ -253,11 +253,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 = d;