Opened 2 years ago

Closed 2 years ago

Last modified 2 years ago

#9623 closed enhancement (fixed)

Trackpad pinch zoom rotates too much

Reported by: olibclarke@… Owned by: Tom Goddard
Priority: moderate Milestone:
Component: UI Version:
Keywords: Cc:
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

From: Oliver Clarke via ChimeraX-users <chimerax-users@…>
Subject: [chimerax-users] Trackpad rotation
Date: August 22, 2023 at 1:54:10 PM PDT
To: ChimeraX Users Help <chimerax-users@…>
Reply-To: Oliver Clarke

Hi,

The trackpad zoom/rotation settings in ChimeraX seem very different from “old” Chimera. Is there any way to replicate the behavior from Chimera?

Specifically, when I pinch to zoom in ChimeraX, I often find the view rotating a lot, unless I am very careful, which does not happen in Chimera. I have tried playing around with the trackpad twist sensitivity, but so far have been unable to find settings similar to the default in Chimera.

Cheers
Oli

Change History (4)

comment:1 by Tom Goddard, 2 years ago

I compared pinch zoom in Chimera 1.17 to pinch zoom in ChimeraX daily build and agree that ChimeraX exhibits more accidental rotation and rotation jitter while pinch zooming. Testing showed that the twist sensitivity is a about 3 times higher in ChimeraX. By twist I mean you place two fingers on the trackpad and move them around a circle centered at the midpoint between the two fingers in the same direction. This causes a rotation perpendicular to the screen axis. The default ChimeraX sensitivity made a 90 degee twist produce about a 450 degree rotation, while in Chimera it produces only a 180 degree rotation. There is a "Trackpad twist speed" setting in the ChimeraX Settings panel under the Trackpad tab that has default value 6. By changing that setting to 2 I got a similar twist sensitivity to Chimera (about 180 degree rotation when fingers rotated 90 degrees). This gives much less rotational jitter when doing a pinch zoom, much closer to the Chimera behavior. Still other differences exist. The Chimera pinch zoom sensitivity seems twice what it is in ChimeraX. So it zooms very fast and that reduces the rotational jitter. But I think the slower ChimeraX zoom speed is better.

I think reducing the default ChimeraX Trackpad twist speed from 6 to 2 improves the usability. I think pinch zoom is used a lot more than twist.

comment:2 by Tom Goddard, 2 years ago

Resolution: fixed
Status: assignedclosed

Fixed.

I reduced the default ChimeraX Trackpad twist speed from 6 to 2 which gives less rotational jitter when doing a pinch zoom.

comment:3 by Tom Goddard, 2 years ago

From: Oliver Clarke via ChimeraX-users <chimerax-users@…>
Subject: [chimerax-users] Re: Trackpad rotation
Date: August 22, 2023 at 5:53:40 PM PDT
To: Tom Goddard
Cc: ChimeraX Users Help <chimerax-users@…>
Reply-To: Oliver Clarke

Hi Tom,

Yes I’ve tried playing with that, and I agree 2 is better, but I still think there is more to it than that.

Here is a comparison where I try to perform the same sequence of operations in Chimera and ChimeraX, on the same model - first pinch-zooming, then twist-rotating (this has the twist sensitivity set to 2 for ChimeraX).

In Chimera, both the pinch to zoom and the twist to zoom work pretty well independently - you do get some mixing but not much.

In ChimeraX, even with the modified settings, when I pinch to zoom, it rotates quite a bit, and when I twist to rotate, it ends up zooming quite a bit more than I would like. Is this how it looks for you? I tried to make the gestures I used as close to identical as I could although of course hard to make them exactly the same, but it gives a sense of what I’m seeing hopefully

Cheers
Oli

comment:4 by Tom Goddard, 2 years ago

Fixed some more.

I compared the ChimeraX and Chimera trackpad pinch code and was surprised to see that the Chimera code had two tests that restrict when touches are interpreted as pinch zoom and twist. Chimera would only do a zoom or a twist while ChimeraX allowed both at the same time. I changed the ChimeraX code to follow the Chimera rules and indeed it is much better.

Note: See TracTickets for help on using tickets.