Currently, the user can scroll the canvas/scene by two-finger dragging on the trackpad. This feels a bit sluggish right now in that the scene doesn't scroll fast enough relative to the amount of dragging.
We should increase the speed at which the scene pans for a given amount of user dragging. This should be a settable (in code) parameter, so that we can experiment with different values. That would also give the possibility of later making it a data-driven parameter that is settable at runtime.
The dragging also feels less smooth than in some other apps I've used. I'm not sure why, but could this be because we drag by a set amount per tick/frame, but the framerate is not totally constant? If so, then we should scale the amount to pan by the elapsed time (estimated duration since last frame). In this case, the setting for the drag speed should be a speed, not an amount, so for example, pixels per second.
Figure out what SDL2 mouse event the dragging corresponds to. I think it might be something to do with the scroll wheel. Then make the changes. Start with a value that gives us about a 2x speedup vs what we have now, and we'll adjust this to find a value that feels good. @mentatbot
For context: There's typically a handle_event() function in each GUI control also in the GUI class itself. Have a look at GUI, GUIControl, and GUIContainer's handle_event() functions. Also look for sdl2 mouse wheel events -- I think this is what trackpad drags get mapped to.
Currently, the user can scroll the canvas/scene by two-finger dragging on the trackpad. This feels a bit sluggish right now in that the scene doesn't scroll fast enough relative to the amount of dragging.
Figure out what SDL2 mouse event the dragging corresponds to. I think it might be something to do with the scroll wheel. Then make the changes. Start with a value that gives us about a 2x speedup vs what we have now, and we'll adjust this to find a value that feels good. @mentatbot
For context: There's typically a handle_event() function in each GUI control also in the GUI class itself. Have a look at GUI, GUIControl, and GUIContainer's handle_event() functions. Also look for sdl2 mouse wheel events -- I think this is what trackpad drags get mapped to.