Opened 20 months ago

Closed 19 months ago

Last modified 19 months ago

#14743 closed defect (not a bug)

Unreliable Z translation in mouse mode

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

Description

The following bug report has been submitted:
Platform:        macOS-14.3.1-arm64-arm-64bit
ChimeraX Version: 1.8.dev202403091657 (2024-03-09 16:57:27 UTC)
Description
Z-translation does not work reproductibly (see discussion today on chimeraxbb and this video: https://www.dropbox.com/scl/fi/vds0cwu0zizclg64vlxqc/z_translate_bug.mov?rlkey=md4320j5vvjrwgwkkd6rae8a5&dl=0

Log:
> runscript /Users/oc2188/Dropbox/chimera_startup/chimerax_startup.py

> camera ortho

> cofr centerOfView

> mousemode alt rightMode "contour level"

> mousemode rightMode clip

> mousemode alt leftMode "translate selected models"

> mousemode shift leftMode "rotate selected models"

> mousemode alt control leftMode "pick blobs"

> alias cofron cofr centerofview showpivot 7,0.25

> alias cofroff cofr centerofview showpivot false

> alias symclip cofr centerofview; clip near -$1 far $1 position cofr

> alias cootmode set bgColor black; surface cap false; surface style solid;
> lighting flat; graphics silhouettes false; style stick; ~rib; color
> ##num_residues gold; color byhet ; disp; ~disp @H*; style ions ball; style
> solvent ball; size ballscale 0.2; size stickradius 0.07; transparency 70;
> cofr centerofview; clip near -10 far 10 position cofr; color ##~num_residues
> cornflower blue

> alias cootmode_mesh surface cap false; surface style mesh; lighting flat;
> graphics silhouettes false; style stick; ~rib; color ##num_residues gold;
> color byhet ; disp; ~disp @H*; style solvent ball; style ions ball; size
> ballscale 0.2; size stickradius 0.07; cofr centerofview; clip near -10 far
> 10 position cofr; color ##~num_residues #3d60ffff; transparency 50

> alias project_map set bgColor black; lighting depthcue false; volume $1
> style image sdlevel 0,0 color white sdlevel 100,0.15 color white
> projectionmode 3d maximumIntensityProjection false dimTransparentVoxels
> false btcorrection true showOutlineBox false linearinterpolation true

> alias ca_and_sidechains ~rib $1; ~surf $1; ~disp $1; disp @CA&protein&$1;
> disp @P&nucleic&$1; style $1 stick; disp sidechain&$1; disp
> ~backbone&nucleic&$1; size stickradius 0.1; size pseudobondradius 0.1

> alias ca_trace ~rib $1; ~surf $1; ~disp $1; disp @CA&protein&$1; disp
> @P&nucleic&$1; style $1 stick; size stickradius 0.1; size pseudobondradius
> 0.1

> alias map_sphere_15 volume unzone ##~num_residues; sel; close #10000; marker
> #10000 position cofr; sel ~sel; volume zone ##~num_residues nearAtoms sel
> minimalBounds true range 15; close #10000

> alias map_unsphere volume unzone ##~num_residues

> alias default_mol_display ~disp; rib; rainbow chain palette RdYlBu-5;
> lighting soft

> alias hidemaps surface unzone ##~num_residues; sel; close #10000; marker
> #10000 position cofr; sel ~sel; surface zone ##~num_residues nearAtoms sel
> distance 0; close #10000

> alias showmaps surface unzone ##~num_residues

> alias caps_off surface cap false

> alias caps_on surface cap true

> alias open_vseries "open browse vseries true"

> alias selbetween ks ri

> alias helix setattr $1 res is_helix true

> alias strand setattr $1 res is_strand true

> alias coil setattr $1 res is_strand false; setattr $1 res is_helix false

> alias rock_movie cofr showpivot false; movie record; rock y 30; wait 136;
> movie encode ~/Desktop/rock_movie.mp4; stop

> buttonpanel Shortcuts rows 3 columns 5

> buttonpanel Shortcuts add Vol_Viewer command "tool show 'Volume Viewer'"

> buttonpanel Shortcuts add Model_Panel command "tool show Models"

> buttonpanel Shortcuts add Log command "tool show Log"

> buttonpanel Shortcuts add default_disp command default_mol_display

> buttonpanel Shortcuts add map_sphere command map_sphere_15

> buttonpanel Shortcuts add map_unsphere command map_unsphere

> buttonpanel Shortcuts add cofron command cofron

> buttonpanel Shortcuts add cofroff command cofroff

> buttonpanel Shortcuts add cootmode command cootmode

> buttonpanel Shortcuts add mark_cofr command "marker #20000 position cofr"

> buttonpanel Shortcuts add hidemaps command hidemaps

> buttonpanel Shortcuts add showmaps command showmaps

> buttonpanel Shortcuts add reset_mouse command "mousemode alt right contour ;
> mousemode right clip ; mousemode alt left 'translate selected models' ;
> mousemode shift left 'rotate selected models' ; mousemode alt control left
> 'pick blobs'; help https://github.com/olibclarke/chimerax-
> trimmings/blob/main/default_mousemodes.md"

> buttonpanel Shortcuts add previous_model command prevmodel

> buttonpanel Shortcuts add next_model command nextmodel

> volume defaultvalues limitVoxelCount false voxelLimitForPlane
> 1000000000000000 voxelLimitForOpen 1000000000000000 saveSettings true

Saved volume settings  
UCSF ChimeraX version: 1.8.dev202403091657 (2024-03-09)  
© 2016-2024 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> open 1bl8

1bl8 title:  
Potassium channel (KCSA) from streptomyces lividans [more info...]  
  
Chain information for 1bl8 #1  
---  
Chain | Description | UniProt  
A B C D | PROTEIN (POTASSIUM CHANNEL PROTEIN) | KCSA_STRLI 23-119  
  
Non-standard residues in 1bl8 #1  
---  
K — potassium ion  
  

> cofron

> marker #20000 position cofr

> select #20000/M:1@M

1 atom, 1 residue, 1 model selected  

> ui tool show "Side View"

> view matrix models #20000,1,0,0,1.4133,0,1,0,0.63052,0,0,1,-1.3225

> view matrix models #20000,1,0,0,0.25031,0,1,0,3.3439,0,0,1,-1.2716

> view matrix models #20000,1,0,0,0.13636,0,1,0,3.6097,0,0,1,-1.2667

> select #1/D:36

8 atoms, 7 bonds, 1 residue, 1 model selected  

> select up

166 atoms, 166 bonds, 25 residues, 1 model selected  

> select up

705 atoms, 724 bonds, 97 residues, 1 model selected  

> select up

2824 atoms, 2896 bonds, 392 residues, 1 model selected  
Drag select of 6 residues  

> select up

542 atoms, 546 bonds, 79 residues, 1 model selected  

> select up

1410 atoms, 1448 bonds, 194 residues, 1 model selected  

> select up

2824 atoms, 2896 bonds, 392 residues, 1 model selected  

> view matrix models #1,1,0,0,3.5787,0,1,0,-8.3498,0,0,1,-0.15657




OpenGL version: 4.1 Metal - 88
OpenGL renderer: Apple M2 Max
OpenGL vendor: Apple

Python: 3.11.4
Locale: UTF-8
Qt version: PyQt6 6.6.1, Qt 6.6.1
Qt runtime version: 6.6.2
Qt platform: cocoa
Hardware:

    Hardware Overview:

      Model Name: MacBook Pro
      Model Identifier: Mac14,5
      Model Number: Z17J00171LL/A
      Chip: Apple M2 Max
      Total Number of Cores: 12 (8 performance and 4 efficiency)
      Memory: 64 GB
      System Firmware Version: 10151.81.1
      OS Loader Version: 10151.81.1

Software:

    System Software Overview:

      System Version: macOS 14.3.1 (23D60)
      Kernel Version: Darwin 23.3.0
      Time since boot: 11 days, 16 hours, 23 minutes

Graphics/Displays:

    Apple M2 Max:

      Chipset Model: Apple M2 Max
      Type: GPU
      Bus: Built-In
      Total Number of Cores: 30
      Vendor: Apple (0x106b)
      Metal Support: Metal 3
      Displays:
        Color LCD:
          Display Type: Built-in Liquid Retina XDR Display
          Resolution: 3024 x 1964 Retina
          Main Display: Yes
          Mirror: Off
          Online: Yes
          Automatically Adjust Brightness: Yes
          Connection Type: Internal


Installed Packages:
    alabaster: 0.7.16
    appdirs: 1.4.4
    appnope: 0.1.4
    asttokens: 2.4.1
    Babel: 2.14.0
    beautifulsoup4: 4.12.3
    blockdiag: 3.0.0
    blosc2: 2.0.0
    build: 1.1.1
    certifi: 2023.11.17
    cftime: 1.6.3
    charset-normalizer: 3.3.2
    ChimeraX-AddCharge: 1.5.16
    ChimeraX-AddH: 2.2.5
    ChimeraX-AlignmentAlgorithms: 2.0.1
    ChimeraX-AlignmentHdrs: 3.4.3
    ChimeraX-AlignmentMatrices: 2.1
    ChimeraX-Alignments: 2.12.5
    ChimeraX-AlphaFold: 1.0
    ChimeraX-AltlocExplorer: 1.1.1
    ChimeraX-AmberInfo: 1.0
    ChimeraX-Arrays: 1.1
    ChimeraX-Atomic: 1.54.6
    ChimeraX-AtomicLibrary: 14.0.2
    ChimeraX-AtomSearch: 2.0.1
    ChimeraX-AxesPlanes: 2.4
    ChimeraX-BasicActions: 1.1.2
    ChimeraX-BILD: 1.0
    ChimeraX-BlastProtein: 2.1.2
    ChimeraX-BondRot: 2.0.4
    ChimeraX-BugReporter: 1.0.1
    ChimeraX-BuildStructure: 2.12.1
    ChimeraX-Bumps: 1.0
    ChimeraX-BundleBuilder: 1.2.2
    ChimeraX-ButtonPanel: 1.0.1
    ChimeraX-CageBuilder: 1.0.1
    ChimeraX-CellPack: 1.0
    ChimeraX-Centroids: 1.4
    ChimeraX-ChangeChains: 1.1
    ChimeraX-CheckWaters: 1.4
    ChimeraX-ChemGroup: 2.0.1
    ChimeraX-Clashes: 2.2.4
    ChimeraX-ColorActions: 1.0.3
    ChimeraX-ColorGlobe: 1.0
    ChimeraX-ColorKey: 1.5.5
    ChimeraX-CommandLine: 1.2.5
    ChimeraX-ConnectStructure: 2.0.1
    ChimeraX-Contacts: 1.0.1
    ChimeraX-Core: 1.8.dev202403091657
    ChimeraX-CoreFormats: 1.2
    ChimeraX-coulombic: 1.4.3
    ChimeraX-Crosslinks: 1.0
    ChimeraX-Crystal: 1.0
    ChimeraX-CrystalContacts: 1.0.1
    ChimeraX-DataFormats: 1.2.3
    ChimeraX-Dicom: 1.2
    ChimeraX-DistMonitor: 1.4.2
    ChimeraX-DockPrep: 1.1.3
    ChimeraX-Dssp: 2.0
    ChimeraX-EMDB-SFF: 1.0
    ChimeraX-ESMFold: 1.0
    ChimeraX-FileHistory: 1.0.1
    ChimeraX-FunctionKey: 1.0.1
    ChimeraX-Geometry: 1.3
    ChimeraX-gltf: 1.0
    ChimeraX-Graphics: 1.1.1
    ChimeraX-Hbonds: 2.4
    ChimeraX-Help: 1.2.2
    ChimeraX-HKCage: 1.3
    ChimeraX-IHM: 1.1
    ChimeraX-ImageFormats: 1.2
    ChimeraX-IMOD: 1.0
    ChimeraX-IO: 1.0.1
    ChimeraX-ItemsInspection: 1.0.1
    ChimeraX-IUPAC: 1.0
    ChimeraX-Label: 1.1.9
    ChimeraX-ListInfo: 1.2.2
    ChimeraX-Log: 1.1.6
    ChimeraX-LookingGlass: 1.1
    ChimeraX-Maestro: 1.9.1
    ChimeraX-Map: 1.1.4
    ChimeraX-MapData: 2.0
    ChimeraX-MapEraser: 1.0.1
    ChimeraX-MapFilter: 2.0.1
    ChimeraX-MapFit: 2.0
    ChimeraX-MapSeries: 2.1.1
    ChimeraX-Markers: 1.0.1
    ChimeraX-Mask: 1.0.2
    ChimeraX-MatchMaker: 2.1.3
    ChimeraX-MCopy: 1.0
    ChimeraX-MDcrds: 2.7
    ChimeraX-MedicalToolbar: 1.0.2
    ChimeraX-Meeting: 1.0.1
    ChimeraX-MLP: 1.1.1
    ChimeraX-mmCIF: 2.12.2
    ChimeraX-MMTF: 2.2
    ChimeraX-Modeller: 1.5.15
    ChimeraX-ModelPanel: 1.5
    ChimeraX-ModelSeries: 1.0.1
    ChimeraX-Mol2: 2.0.3
    ChimeraX-Mole: 1.0
    ChimeraX-Morph: 1.0.2
    ChimeraX-MouseModes: 1.2
    ChimeraX-Movie: 1.0
    ChimeraX-Neuron: 1.0
    ChimeraX-Nifti: 1.1
    ChimeraX-NMRSTAR: 1.0.2
    ChimeraX-NRRD: 1.1
    ChimeraX-Nucleotides: 2.0.3
    ChimeraX-OpenCommand: 1.13.3
    ChimeraX-PDB: 2.7.5
    ChimeraX-PDBBio: 1.0.1
    ChimeraX-PDBLibrary: 1.0.4
    ChimeraX-PDBMatrices: 1.0
    ChimeraX-PickBlobs: 1.0.1
    ChimeraX-Positions: 1.0
    ChimeraX-PresetMgr: 1.1.1
    ChimeraX-PubChem: 2.1
    ChimeraX-ReadPbonds: 1.0.1
    ChimeraX-Registration: 1.1.2
    ChimeraX-RemoteControl: 1.0
    ChimeraX-RenderByAttr: 1.2.1
    ChimeraX-RenumberResidues: 1.1
    ChimeraX-ResidueFit: 1.0.1
    ChimeraX-RestServer: 1.2
    ChimeraX-RNALayout: 1.0
    ChimeraX-RotamerLibMgr: 4.0
    ChimeraX-RotamerLibsDunbrack: 2.0
    ChimeraX-RotamerLibsDynameomics: 2.0
    ChimeraX-RotamerLibsRichardson: 2.0
    ChimeraX-SaveCommand: 1.5.1
    ChimeraX-SchemeMgr: 1.0
    ChimeraX-SDF: 2.0.2
    ChimeraX-Segger: 1.0
    ChimeraX-Segment: 1.0.1
    ChimeraX-Segmentations: 1.0
    ChimeraX-SelInspector: 1.0
    ChimeraX-SeqView: 2.11.2
    ChimeraX-Shape: 1.0.1
    ChimeraX-Shell: 1.0.1
    ChimeraX-Shortcuts: 1.1.1
    ChimeraX-ShowSequences: 1.0.3
    ChimeraX-SideView: 1.0.1
    ChimeraX-Smiles: 2.1.2
    ChimeraX-SmoothLines: 1.0
    ChimeraX-SpaceNavigator: 1.0
    ChimeraX-StdCommands: 1.16.2
    ChimeraX-STL: 1.0.1
    ChimeraX-Storm: 1.0
    ChimeraX-StructMeasure: 1.2
    ChimeraX-Struts: 1.0.1
    ChimeraX-Surface: 1.0.1
    ChimeraX-SwapAA: 2.0.1
    ChimeraX-SwapRes: 2.5
    ChimeraX-TapeMeasure: 1.0
    ChimeraX-TaskManager: 1.0
    ChimeraX-Test: 1.0
    ChimeraX-Toolbar: 1.1.2
    ChimeraX-ToolshedUtils: 1.2.4
    ChimeraX-Topography: 1.0
    ChimeraX-ToQuest: 1.0
    ChimeraX-Tug: 1.0.1
    ChimeraX-UI: 1.36.1
    ChimeraX-uniprot: 2.3
    ChimeraX-UnitCell: 1.0.1
    ChimeraX-ViewDockX: 1.3.2
    ChimeraX-VIPERdb: 1.0
    ChimeraX-Vive: 1.1
    ChimeraX-VolumeMenu: 1.0.1
    ChimeraX-vrml: 1.0
    ChimeraX-VTK: 1.0
    ChimeraX-WavefrontOBJ: 1.0
    ChimeraX-WebCam: 1.0.2
    ChimeraX-WebServices: 1.1.3
    ChimeraX-Zone: 1.0.1
    colorama: 0.4.6
    comm: 0.2.1
    contourpy: 1.2.0
    cxservices: 1.2.2
    cycler: 0.12.1
    Cython: 3.0.8
    debugpy: 1.8.1
    decorator: 5.1.1
    docutils: 0.20.1
    executing: 2.0.1
    filelock: 3.13.1
    fonttools: 4.49.0
    funcparserlib: 2.0.0a0
    glfw: 2.7.0
    grako: 3.16.5
    h5py: 3.10.0
    html2text: 2020.1.16
    idna: 3.6
    ihm: 0.43
    imagecodecs: 2024.1.1
    imagesize: 1.4.1
    ipykernel: 6.29.2
    ipython: 8.21.0
    ipywidgets: 8.1.2
    jedi: 0.19.1
    Jinja2: 3.1.3
    jupyter-client: 8.6.0
    jupyter-core: 5.7.1
    jupyterlab-widgets: 3.0.10
    kiwisolver: 1.4.5
    line-profiler: 4.1.2
    lxml: 5.1.0
    lz4: 4.3.3
    MarkupSafe: 2.1.5
    matplotlib: 3.8.2
    matplotlib-inline: 0.1.6
    msgpack: 1.0.8
    ndindex: 1.8
    nest-asyncio: 1.6.0
    netCDF4: 1.6.5
    networkx: 3.2.1
    nibabel: 5.0.1
    nptyping: 2.5.0
    numexpr: 2.9.0
    numpy: 1.26.4
    openvr: 1.26.701
    packaging: 23.2
    ParmEd: 4.2.2
    parso: 0.8.3
    pep517: 0.13.1
    pexpect: 4.9.0
    pillow: 10.2.0
    pip: 24.0
    pkginfo: 1.10.0
    platformdirs: 4.2.0
    prompt-toolkit: 3.0.43
    psutil: 5.9.8
    ptyprocess: 0.7.0
    pure-eval: 0.2.2
    py-cpuinfo: 9.0.0
    pycollada: 0.8
    pydicom: 2.3.0
    pygments: 2.17.2
    pynmrstar: 3.3.3
    pynrrd: 1.0.0
    PyOpenGL: 3.1.7
    PyOpenGL-accelerate: 3.1.7
    pyopenxr: 1.0.3302
    pyparsing: 3.1.2
    pyproject-hooks: 1.0.0
    PyQt6-commercial: 6.6.1
    PyQt6-Qt6: 6.6.2
    PyQt6-sip: 13.6.0
    PyQt6-WebEngine-commercial: 6.6.0
    PyQt6-WebEngine-Qt6: 6.6.2
    python-dateutil: 2.8.2
    pytz: 2024.1
    pyzmq: 25.1.2
    qtconsole: 5.5.1
    QtPy: 2.4.1
    RandomWords: 0.4.0
    requests: 2.31.0
    scipy: 1.12.0
    setuptools: 69.1.1
    setuptools-scm: 8.0.4
    sfftk-rw: 0.8.1
    six: 1.16.0
    snowballstemmer: 2.2.0
    sortedcontainers: 2.4.0
    soupsieve: 2.5
    sphinx: 7.2.6
    sphinx-autodoc-typehints: 2.0.0
    sphinxcontrib-applehelp: 1.0.8
    sphinxcontrib-blockdiag: 3.0.0
    sphinxcontrib-devhelp: 1.0.6
    sphinxcontrib-htmlhelp: 2.0.5
    sphinxcontrib-jsmath: 1.0.1
    sphinxcontrib-qthelp: 1.0.7
    sphinxcontrib-serializinghtml: 1.1.10
    stack-data: 0.6.3
    superqt: 0.6.1
    tables: 3.8.0
    tcia-utils: 1.5.1
    tifffile: 2024.1.30
    tinyarray: 1.2.4
    tornado: 6.4
    traitlets: 5.14.1
    typing-extensions: 4.10.0
    tzdata: 2024.1
    urllib3: 2.2.1
    wcwidth: 0.2.13
    webcolors: 1.13
    wheel: 0.42.0
    wheel-filename: 1.4.1
    widgetsnbextension: 4.0.10

Change History (13)

comment:1 by pett, 20 months ago

Cc: Elaine Meng added
Component: UnassignedUI
Owner: set to Tom Goddard
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionUnreliable Z translation in mouse mode

comment:2 by Elaine Meng, 20 months ago

I don't know - if I have the assigned button as right mouse:

1. I hold down the right mouse (two finger press on trackpad), not dragging
2. I additionally press Ctrl, then drag

I get a selection box, no translation. Only if I start translating  in X-Y first prior to adding Ctrl do I reproducibly see Z-translation - maybe it is a quirk of my setup...

Oli

comment:3 by Elaine Meng, 20 months ago

This comment should go before the previous one!  I tried to include both in the previous comment but Trac nuked this part.  Grr.

On Mar 11, 2024, at 2:36\u202fPM, Elaine Meng <meng@cgl.ucsf.edu> wrote:

The documentation does say "assigned button + Ctrl (in that order)" so if XY-translation is assigned to alt-left, you have to be sure to press alt-left (or alt-trackpad click) and then Ctrl.  That is the same as ongoing drag but if you are coordinated, there is no dragging motion between when you press left (trackpad click) and when you press Ctrl.   I tried it very carefully just now and that is true.

I believe when Tom originally explained it on this list, he did say it was very important to press the keys in that order, not all at once.

Elaine

comment:4 by Tom Goddard, 19 months ago

In order to move the selected model in z after enabling the Move Models mouse mode in the toolbar on Mac with the trackpad you need to press the Command key, press the trackpad, then press the ctrl key, and drag vertically. This works 100% of the time in my tests. My guess is you are instead pressing Command, then pressing Ctrl, then pressing the trackpad, then dragging. That 100% of the time gives a drag selection box. The trackpad press must be done before the ctrl key is pressed.

I realize this is confusing and idiotic. It is a limitation of the Mac trackpad and Qt window toolkit. On a Mac if you hold the ctrl key while pressing the left mouse button or the trackpad Qt reports it as the right mouse button. ChimeraX has no way to distinguish ctrl-left mouse click from ctrl-right mouse click -- it always is reported as ctrl-right. But ChimeraX uses ctrl-left-click for selection (historically this was so in predecessors of ChimeraX for more than 40 years), so how can this work on the Mac? The answer is if a ctrl right click is reported to ChimeraX on Mac then it is assumed to be a ctrl-left click. As a consequence ctrl-right mouse click on Mac will never be interpreted as a right click. For clicks on a trackpad Qt also reports ctrl click as a right click which ChimeraX reinterprets as ctrl-left click.

In summary this is a Mac-specific limitation. I suspect if we were using the native Mac window toolkit instead of Qt we would be able to distinguish ctrl-left and ctrl-right mouse clicks and avoid this limitation. But we use the Qt window toolkit so that we do not have to program the user interface on Mac, Windows and Linux using three separate window APIs.

comment:5 by Tom Goddard, 19 months ago

Resolution: not a bug
Status: assignedclosed

The ctrl key must be pressed after the trackpad click on the Mac to get z-translation. And the drag should be in the vertical direction, not horizontal.

We will note this in the documentation. Also the documentation should note the related limitation on Mac that assigning any mouse mode to ctrl-right does not work because ctrl-right is always be interpreted as ctrl-left on Mac.

comment:6 by Elaine Meng, 19 months ago

OK, in the documentation of mousemode functions (mousemode command and Right Mouse toolbar) I changed all "Z-translation" to "Z-translation with vertical drag" except where it was in reference to the mouse wheel. I resisted adding this before because I thought people would just figure this out when they tried dragging, and the description sentences were already quite complex.

Re the warning that Ctrl-right can't be used on Mac, there is already a light gray boxed warning about this near the top of the "mousemode" command docs. It's been there a while, don't remember how long:
<https://rbvi.ucsf.edu/chimerax/docs/user/commands/ui.html#mousemode>

Last edited 19 months ago by Tom Goddard (previous) (diff)

comment:7 by Tom Goddard, 19 months ago

Thanks for looking at the documentation.

I'm not sure how to clarify in the documentation the issue from this ticket that the order has to be click+Ctrl, not Ctrl+click. Currently the mouse mode documentation says

"assigned button + Ctrl (in that order)"

which does not make it entirely clear that Command-click-Ctrl is needed and Command-Ctrl-click won't work (on Mac). Maybe changing it to

"press assigned mouse button and then Ctrl (in that order)"

or another more explicit wording would help.

comment:8 by Elaine Meng, 19 months ago

I'm kind of flabbergasted that "assigned button + Ctrl (in that order)" could possibly mean anything other than that Ctrl has to be pressed last.

However, I just changed all the occurrences of "(in that order)" to "(where Ctrl must be pressed last)" in hopes that that is obvious enough.

Last edited 19 months ago by Tom Goddard (previous) (diff)

comment:9 by olibclarke@…, 19 months ago

Agree it should be obvious the way it was originally, but it is unusual behavior for a keyboard shortcut so I think (over)emphasizing it probably doesn't hurt :)

Might also be worth mentioning that one has to use the mouse vertically (rather than right-left) for Z translation to happen (as this is not the case in "old" Chimera)?

Cheers
Oli

Last edited 19 months ago by Tom Goddard (previous) (diff)

comment:10 by Elaine Meng, 19 months ago

Yes I already added that earlier today.

Last edited 19 months ago by Tom Goddard (previous) (diff)

comment:11 by Tom Goddard, 19 months ago

I think the ambiguity with "assigned button + Ctrl (in that order)" is that there are 3 "buttons" involved when the toolbar is used to assign the mode and the trackpad is used, ie the Command key, the Ctrl key and the trackpad click. It is easy to interpret the documentation as saying press Command and then Ctrl and then click the trackpad by thinking the "assigned button" part means the Command key rather than Command + trackpad click. People probably don't think of the trackpad click as a "button".

At any rate, using multiple modifier keys and trackpad clicks is something almost no software does and for good reason. If we are going to use such a flakey uncommon user interface it is sensible that we explain it as explicitly as possible.

comment:12 by Elaine Meng, 19 months ago

It might be better (or useful in addition to this mechanism) to have a separate mode just for Z-translation, like we had in Chimera.  Our friend Simon (former UCSF grad student) was asking Eric about this recently.  Some of us, looking at myself here, are not good at using multiple modifier keys at once, even when they aren't press-order-dependent.
Version 0, edited 19 months ago by Elaine Meng (next)

comment:13 by Tom Goddard, 19 months ago

I agree separate Z translation modes may be useful. There are 3 translation mouse modes (all models, selected models, selected atoms) so it would need 3 different new z translation modes. I suspect they are going to be rarely used because there are not enough mouse buttons to dedicate one to z-translation. At any rate, it is a separate issue from this report so it would be good to make a new feature request / bug report for it. And it would also be good in that new ticket to describe what combination of mouse bindings would actually allow using a separate dedicated z-translation mode given the limited mouse buttons available so it is clear how it could be useful.

Note: See TracTickets for help on using tickets.