Bug introduced in 10.3 or earlier, fixed in 10.4.
When the + opener is opened, two things happen:
x = 0;
Manipulator[Dynamic[x, (Print[#]; x = #) &], {-10, 0}]
- the actual manipulator value
#is set to be the minimum of the range; - the second argument of
Dynamicgets evaluated.
However, when the range is set to e.g. {-10, 10}, the behavior is correct. Manipulator had a ragged history recently, check these related threads out:
- Possible bug with Manipulate
- Initializing Manipulator value within DialogInput (version 10.1 only)
- Mathematica 10.2 Manipulate function settings problem
- Manipulate: strange behavior of Manipulator
- Manipulator bug
While somwe were ironed out, something more basic still lurks in Manipulator.
(Mathematica 10.3, Win 7 64)

Manipulator[1]– Kuba Dec 02 '15 at 15:27Manipulatornot just resets the value but also evaluates anything else - which is scary, as always. – István Zachar Dec 02 '15 at 15:29{-10, 0.01}is interesting, too. – Karsten7 Dec 02 '15 at 15:33Manipulate[x, {{x, 0}, -10, 0, TrackingFunction -> (x = #; Print[#]; &)}]shows the same behavior. – Karsten7 Dec 02 '15 at 15:40