3
$\begingroup$

I am creating an interactive graphics that plots points on the canvas, and allows the user to move around the points:

DynamicModule[
 {pt1 = {-2, 1}, pt2 = {2, 2}, pt3 = {2, -2}}
 ,
 Framed@Graphics[
   {Locator[Dynamic[pt1]],
    Locator[Dynamic[pt2]],
    Locator[Dynamic[pt3]],
    Dynamic[BezierCurve[{pt1, pt2, pt3}]]
    }
   , PlotRange -> 3]
 ]

It works fine, but I noticed that if one misses a bit the click with the mouse to move one of the points, Mathematica mistakenly suggests to edit the Graphics object. It happens during the point movement in the following screenshot (Note the tooltip "Double Click to edit"):

enter image description here

Is there any way to disable editing for Graphics?

$\endgroup$

1 Answer 1

5
$\begingroup$
  • Deploy seems work.
DynamicModule[{pt1 = {-2, 1}, pt2 = {2, 2}, pt3 = {2, -2}}, 
 Deploy@Dynamic@
   Framed@Graphics[{Locator[Dynamic@pt1], Locator[Dynamic@pt2], 
      Locator[Dynamic@pt3], Dynamic@BezierCurve[{pt1, pt2, pt3}]}, 
     PlotRange -> 3]]
  • Another way is use LocatorPane.
DynamicModule[{pts = {{-2, 1}, {2, 2}, {2, -2}}},
 LocatorPane[Dynamic@pts, 
  Dynamic@Graphics[BezierCurve@pts, PlotRange -> 3, Frame -> True, 
    FrameTicks -> None]]]
$\endgroup$
3
  • $\begingroup$ Thank you very much indeed. Deloy does just that. But, now the user doesn't have the change of mouse appearance when hovering over the dynamic object. Is there anyway to retain the "default" behaviour? $\endgroup$
    – tush
    Commented Jun 3, 2022 at 9:59
  • $\begingroup$ @tush that seems like an interesting question that you should make into a new question post entirely! $\endgroup$ Commented Jun 4, 2022 at 19:53
  • $\begingroup$ All right then! $\endgroup$
    – tush
    Commented Jun 4, 2022 at 20:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.