Opened 5 years ago
Closed 5 years ago
#3374 closed defect (fixed)
Touch event key modifiers
Reported by: | Tristan Croll | Owned by: | Tristan Croll |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | UI | Version: | |
Keywords: | Cc: | Tom Goddard | |
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
The following bug report has been submitted: Platform: Darwin-18.7.0-x86_64-i386-64bit ChimeraX Version: 1.0rc202005292300 (2020-05-29 23:00:06 UTC) Description Sorry for the long, repetitive log. Added a logging line to the key_modifiers method in mousemodes.py to probe why modifier keys weren't working. The upshot is that QTouchEvent.modifiers() always reports no modifier keys, no matter what keys are pressed. Found a bug report (unresolved since 2017): https://bugreports.qt.io/browse/QTBUG-60389 This could be worked around fairly trivially with the `keyboard` or `pynput` modules, but neither of these are currently installed in ChimeraX. Somewhat surprisingly, so far I haven't found any "pure Python" solution for detecting which keys are currently pressed. Log: UCSF ChimeraX version: 1.0rc202005292300 (2020-05-29) © 2016-2020 Regents of the University of California. All rights reserved. How to cite UCSF ChimeraX Successfully installed 'ChimeraX_MouseModes-1.0-py3-none-any.whl' Looking in indexes: https://pypi.org/simple, https://cxtoolshed.rbvi.ucsf.edu/pypi/ Processing /Users/tic20/Library/Caches/ChimeraX/1.0/installers/ChimeraX_MouseModes-1.0-py3-none- any.whl Requirement already satisfied, skipping upgrade: ChimeraX-Core~=1.0rc1 in /Applications/ChimeraX.app/Contents/lib/python3.7/site-packages (from ChimeraX-MouseModes==1.0) (1.0rc202005292300) Requirement already satisfied, skipping upgrade: ChimeraX-Geometry~=1.0 in /Applications/ChimeraX.app/Contents/lib/python3.7/site-packages (from ChimeraX-MouseModes==1.0) (1.0) Requirement already satisfied, skipping upgrade: ChimeraX-Graphics~=1.0 in /Applications/ChimeraX.app/Contents/lib/python3.7/site-packages (from ChimeraX-MouseModes==1.0) (1.0) Requirement already satisfied, skipping upgrade: ChimeraX-Arrays~=1.0 in /Applications/ChimeraX.app/Contents/lib/python3.7/site-packages (from ChimeraX-Geometry~=1.0->ChimeraX-MouseModes==1.0) (1.0) Installing collected packages: ChimeraX-MouseModes Attempting uninstall: ChimeraX-MouseModes Found existing installation: ChimeraX-MouseModes 1.0 Uninstalling ChimeraX-MouseModes-1.0: Successfully uninstalled ChimeraX-MouseModes-1.0 Successfully installed ChimeraX-MouseModes-1.0 Lock 4654277456 acquired on /Users/tic20/Library/Caches/ChimeraX/1.0/toolshed/bundle_info.cache.lock Lock 4654277456 released on /Users/tic20/Library/Caches/ChimeraX/1.0/toolshed/bundle_info.cache.lock WARNING: You are using pip version 20.1; however, version 20.1.1 is available. You should consider upgrading via the '/Applications/ChimeraX.app/Contents/MacOS/ChimeraX -m pip install --upgrade pip' command. > open /Users/tic20/Documents/Refine_1/1a0m_refine_1.cif format mmcif Summary of feedback from opening /Users/tic20/Documents/Refine_1/1a0m_refine_1.cif --- warnings | Skipping chem_comp category: Missing column 'type' near line 211 Missing entity information. Treating each chain as a separate entity. Missing second residue in struct_conn "C00001" Missing second residue in struct_conn "C00002" Missing second residue in struct_conn "C00003" Missing second residue in struct_conn "C00004" Invalid residue range for struct_conf "3": invalid entity "B", near line 143 Missing or incomplete entity_poly_seq table. Inferred polymer connectivity. Skipping chem_comp category: Missing column 'type' near line 576 Chain information for 1a0m_refine_1.cif #1 --- Chain | Description A | No description available B | No description available <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QWheelEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: Registered touch event: modifer keys pressed: wheel_value: -0.3422024965286255 two_finger_trans: (-0.0031776407912925443, -0.010060119689614686) two_finger_scale: None two_finger_twist: None three_finger_trans: None four_finger_trans: None <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: shift <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: shift <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: Registered touch event: modifer keys pressed: wheel_value: -0.23372330665588378 two_finger_trans: (0.0026435852809636685, -0.006871032394744733) two_finger_scale: None two_finger_twist: None three_finger_trans: None four_finger_trans: None <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: Registered touch event: modifer keys pressed: wheel_value: -0.0542396068572998 two_finger_trans: (0.0, -0.001594543997888212) two_finger_scale: None two_finger_twist: None three_finger_trans: None four_finger_trans: None <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QTouchEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x12836ded0>: <PyQt5.QtGui.QMouseEvent object at 0x11e9ab0f0>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e8f4550>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e8f4550>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e8f4550>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e8f4550>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e8f4550>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e8f4550>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e8f4550>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e8f4550>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e8f4550>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e8f4550>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e8f4550>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e8f4550>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e8f4550>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e8f4550>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e8f4550>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e8f4550>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e8f4550>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e8f4550>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e8f4550>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e8f4550>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e8f4550>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e8f4550>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e8f4550>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: <PyQt5.QtGui.QMouseEvent object at 0x11e8f4550>, <PyQt5.QtCore.Qt.KeyboardModifiers object at 0x11e9db050>: OpenGL version: 4.1 INTEL-12.10.12 OpenGL renderer: Intel(R) HD Graphics 6000 OpenGL vendor: Intel Inc.Hardware: Hardware Overview: Model Name: MacBook Air Model Identifier: MacBookAir7,2 Processor Name: Intel Core i5 Processor Speed: 1.6 GHz Number of Processors: 1 Total Number of Cores: 2 L2 Cache (per Core): 256 KB L3 Cache: 3 MB Hyper-Threading Technology: Enabled Memory: 8 GB Boot ROM Version: 188.0.0.0.0 SMC Version (system): 2.27f2 Software: System Software Overview: System Version: macOS 10.14.6 (18G95) Kernel Version: Darwin 18.7.0 Time since boot: 73 days 23:56 Graphics/Displays: Intel HD Graphics 6000: Chipset Model: Intel HD Graphics 6000 Type: GPU Bus: Built-In VRAM (Dynamic, Max): 1536 MB Vendor: Intel Device ID: 0x1626 Revision ID: 0x0009 Metal: Supported, feature set macOS GPUFamily1 v4 Displays: Color LCD: Display Type: LCD Resolution: 1440 x 900 (Widescreen eXtended Graphics Array Plus) UI Looks like: 1440 x 900 Framebuffer Depth: 24-Bit Color (ARGB8888) Main Display: Yes Mirror: Off Online: Yes Rotation: Supported Automatically Adjust Brightness: No Connection Type: DisplayPort PyQt version: 5.12.3 Compiled Qt version: 5.12.4 Runtime Qt version: 5.12.8
Attachments (1)
Change History (12)
follow-up: 2 comment:2 by , 5 years ago
... and while pynput "works", it's clearly doing something that Apple considers illegal. While the below snippet correctly reports the currently-pressed function keys to the log: {{{ class FunctionKeyCombo: def __init__(self): self._current_keys = set() import pynput self._listener = pynput.keyboard.Listener(on_press=self._on_press, on_release=self._on_release) self._listener.start() def _on_press(self, key): self._current_keys.add(key) self.print_current_keys() def _on_release(self, key): self._current_keys.discard(key) self.print_current_keys() def print_current_keys(self): print('Currently pressed: {}'.format( ', '.join(str(k) for k in self._current_keys))) fc = FunctionKeyCombo() }}} ... the following message gets printed to stderr when it starts: {{{ ChimeraX[11511:10724218] pid(11511)/euid(501) is calling TIS/TSM in non-main thread environment, ERROR : This is NOT allowed. Please call TIS/TSM in main thread!!! }}} So I can't see a simple solution to this. What a pain. On 2020-06-08 12:23, ChimeraX wrote:
comment:3 by , 5 years ago
Cc: | added |
---|---|
Component: | Unassigned → UI |
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → assigned |
Summary: | ChimeraX bug report submission → Touch event key modifiers |
comment:4 by , 5 years ago
There is a Qt API that tells you the keyboard modifiers that are down right now, independent of any Event. That could be used as a work-around. I don't remember the API, maybe part of QApplication.
comment:5 by , 5 years ago
It may not be good enough if event processing is slow, but it might be good enough. The API is Qt::KeyboardModifiers QGuiApplication::keyboardModifiers()
https://doc.qt.io/qt-5/qguiapplication.html#keyboardModifiers
follow-up: 6 comment:6 by , 5 years ago
So believe it or not, `session.ui.keyboardModifiers` *also* lies (always returns 0) when used during processing of a multitouch event (but not a standard mouse event). Heaven only knows why... The good news is that `session.ui.queryKeyboardModifiers` does tell the truth (the difference between the two is that `keyboardModifiers` queries the state of a running tally that's updated in response to `KeyPress` and `KeyRelease` events, whereas `queryKeyboardModifiers` actually queries the state of the keyboard from scratch. Anyway, back in business... On 2020-06-08 17:06, ChimeraX wrote:
follow-up: 8 comment:8 by , 5 years ago
Heh. I get a bit twitchy when things that *should* be trivial turn out to be... not so much. On 2020-06-09 17:17, ChimeraX wrote:
follow-up: 9 comment:9 by , 5 years ago
OK, this replicates all the two- and three-finger behaviour of the original implementation, and my logging says it's correctly applying the modifier keys (although I haven't tried actually registering a multitouch+modifier mode yet). I haven't yet done the 4-finger swipe (which in the original triggered whatever MouseMode was currently mapped to the mouse wheel). If you want to keep that behaviour, I think the simplest way to do so would be to create a minimal MouseMode to catch the 4-finger swipe event and pass it on. On 2020-06-09 17:22, ChimeraX wrote:
comment:10 by , 5 years ago
Sorry... just realised I sent this to the wrong ticket. Will repost to the older one. On 2020-06-09 18:11, ChimeraX wrote:
follow-up: 10 comment:11 by , 5 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
All seems to be working now.
Note:
See TracTickets
for help on using tickets.