summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
authorfvogel <fvogelnew1@free.fr>2016-03-08 21:56:11 (GMT)
committerfvogel <fvogelnew1@free.fr>2016-03-08 21:56:11 (GMT)
commitf0602c1ce4d83c13b3733dbb6c64d30c1af245c6 (patch)
tree79a38c0207d5138e80f149d603100beb30fdc85c /generic
parent938a781fc060670163d405d5a24f516587b37161 (diff)
parent374b27a9b3859f485714da057074137ed4cbc90a (diff)
downloadtk-f0602c1ce4d83c13b3733dbb6c64d30c1af245c6.zip
tk-f0602c1ce4d83c13b3733dbb6c64d30c1af245c6.tar.gz
tk-f0602c1ce4d83c13b3733dbb6c64d30c1af245c6.tar.bz2
Rebased to core-8-6-branch
Diffstat (limited to 'generic')
-rw-r--r--generic/tkScale.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/generic/tkScale.c b/generic/tkScale.c
index cc7c294..cbc5202 100644
--- a/generic/tkScale.c
+++ b/generic/tkScale.c
@@ -303,6 +303,12 @@ Tk_ScaleObjCmd(
return TCL_ERROR;
}
+ /*
+ * The widget was just created, no command callback must be invoked.
+ */
+
+ scalePtr->flags &= ~INVOKE_COMMAND;
+
Tcl_SetObjResult(interp, TkNewWindowObj(scalePtr->tkwin));
return TCL_OK;
}
@@ -1268,7 +1274,14 @@ TkScaleSetValue(
return;
}
scalePtr->value = value;
- if (invokeCommand) {
+
+ /*
+ * Schedule command callback invocation only if there is such a command
+ * already registered, otherwise the callback would trigger later when
+ * configuring the widget -command option even if the value did not change.
+ */
+
+ if ((invokeCommand) && (scalePtr->command != NULL)) {
scalePtr->flags |= INVOKE_COMMAND;
}
TkEventuallyRedrawScale(scalePtr, REDRAW_SLIDER);