How do I fix the bad behavior of Manipulator? This is in regards to this Interdependent controls in Manipulate question. Heike' s code does not work right on the first click when specifying the Manipulator increment and using Appearance -> "Open" for both Manipulators. For instance, a first click on "Step Forward" does not produce the increment x +=.1. Also, closing y, then incrementing x looks okay until you open y. This bad behavior only occurs on the first click after evaluating the cell, but a solution should be found. Here is the code:
Manipulate[{x, y},
{x, Manipulator[Dynamic[x, (x = #; y = 1/#) &],
{.1, 10, .1}, Appearance -> "Open"] &},
{y, Manipulator[Dynamic[y, (y = #; x = 1/#) &],
{.1, 10, .2}, Appearance -> "Open"] &},
Initialization :> ({x, y} = {1, 1})]
The error persists no matter what is done. This simple version without Dynamic does not increment by .1 on the first click on x+ or y+.
Manipulate[
If[xh != x, xh = x; y = 1/x; yh = y];
If[yh != y, yh = y; x = 1/y; xh = x];
{x, y},
{{x, x0, "x: "}, .1, 10, .1, Appearance -> "Open"},
{{y, y0, "y: "}, .1, 10, .1, Appearance -> "Open"},
Initialization :> {xh = x = x0 = 1; yh = y = y0 = 1/x;},
TrackedSymbols :> {x, y}]