diff options
author | fvogel <fvogel@noemail.net> | 2016-03-08 21:56:11 (GMT) |
---|---|---|
committer | fvogel <fvogel@noemail.net> | 2016-03-08 21:56:11 (GMT) |
commit | 0c0a5e574548b0fcc626d54da45f9ce024176311 (patch) | |
tree | 79a38c0207d5138e80f149d603100beb30fdc85c /generic | |
parent | 4c838a50cbe69dc3f8657d8969f4cad612551e91 (diff) | |
parent | 6db35c9466690bb6ddefff2a79a78126d6c0f711 (diff) | |
download | tk-0c0a5e574548b0fcc626d54da45f9ce024176311.zip tk-0c0a5e574548b0fcc626d54da45f9ce024176311.tar.gz tk-0c0a5e574548b0fcc626d54da45f9ce024176311.tar.bz2 |
Rebased to core-8-6-branch
FossilOrigin-Name: 87a5db960a818f3a69041b0c17fe38b5baaddc89
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tkScale.c | 15 |
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); |