Attachment "diff.out" to
ticket [d25b721f]
added by
nemethi
2025-07-13 12:57:14.
Index: generic/ttk/ttkScale.c
==================================================================
--- generic/ttk/ttkScale.c
+++ generic/ttk/ttkScale.c
@@ -438,18 +438,27 @@
static double
PointToValue(Scale *scalePtr, int x, int y)
{
Ttk_Box troughBox = TroughRange(scalePtr);
- double from = 0, to = 1, fraction;
+ double value = 0, from = 0, to = 1, fraction;
+ Tcl_GetDoubleFromObj(NULL, scalePtr->scale.valueObj, &value);
Tcl_GetDoubleFromObj(NULL, scalePtr->scale.fromObj, &from);
Tcl_GetDoubleFromObj(NULL, scalePtr->scale.toObj, &to);
if (scalePtr->scale.orient == TTK_ORIENT_HORIZONTAL) {
+ if (troughBox.width <= 0) {
+ return value;
+ }
+
fraction = (double)(x - troughBox.x) / (double)troughBox.width;
} else {
+ if (troughBox.height <= 0) {
+ return value;
+ }
+
fraction = (double)(y - troughBox.y) / (double)troughBox.height;
}
fraction = fraction < 0 ? 0 : fraction > 1 ? 1 : fraction;