﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	blockedby	blocking	notify_on_close	platform	project
3374	Touch event key modifiers	Tristan Croll	Tristan Croll	"{{{
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

}}}
"	defect	closed	normal		UI		fixed		Tom Goddard				all	ChimeraX
