Opened 4 years ago

Last modified 4 years ago

#6487 assigned defect

Mac multitouch sometimes broken with Qt 6

Reported by: goddard@… Owned by: Zach Pearson
Priority: normal Milestone:
Component: Window Toolkit Version:
Keywords: Cc:
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        macOS-12.3-arm64-arm-64bit
ChimeraX Version: 1.4.dev202203271748 (2022-03-27 17:48:18 UTC)
Description
In Qt 6 ChimeraX the Mac multitouch trackpad seems to stop working so that 2,3,4 finger drags do nothing.  It appears to be associated with floating non-docked window such as the AlphaFold Run panel, or maybe the Help viewer.  When multitouch stops working the main window also often stops resizing its panes.  The main window can be resized by hand but none of the panels adjust to the new size.  Docking the floating window fixes that resize problem but does not seem to fix the multitouch problem.  Iconifying and uniconifying also does not fix multitouch.  I vaguely recall that multitouch can be recovered by some trick, but don't recall the trick.

Log:
UCSF ChimeraX version: 1.4.dev202203271748 (2022-03-27)  
© 2016-2022 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> open 30495 fromDatabase emdb

Summary of feedback from opening 30495 fetched from emdb  
---  
note | Fetching compressed map 30495 from
ftp://ftp.wwpdb.org/pub/emdb/structures/EMD-30495/map/emd_30495.map.gz  
  
Opened emdb 30495 as #1, grid size 220,220,220, pixel 1.09, shown at level
0.000223, step 1, values float32  

> volume #1 level 1.059

> lighting soft

> ui tool show AlphaFold

> alphafold predict
> MQPPPPGPLGDCLRDWEDLQQDFQNIQETHRLYRLKLEELTKLQNNCTSSITRQKKRLQELALALKKCKPSLPAEAEGAAQELENQMKERQGLFFDMEAYLPKKNGLYLSLVLGNVNVTLLSKQAKFAYKDEYEKFKLYLTIILILISFTCRFLLNSRVTDAAFNFLLVWYYCTLTIRESILINNGSRIKGWWVFHHYVSTFLSGVMLTWPDGLMYQKFRNQFLSFSMYQSFVQFLQYYYQSGCLYRLRALGERHTMDLTVEGFQSWMWRGLTFLLPFLFFGHFWQLFNALTLFNLAQDPQCKEWQVLMCGFPFLLLFLGNFFTTLRVVHHKFHSQRHGSKKD,MQPPPPGPLGDCLRDWEDLQQDFQNIQETHRLYRLKLEELTKLQNNCTSSITRQKKRLQELALALKKCKPSLPAEAEGAAQELENQMKERQGLFFDMEAYLPKKNGLYLSLVLGNVNVTLLSKQAKFAYKDEYEKFKLYLTIILILISFTCRFLLNSRVTDAAFNFLLVWYYCTLTIRESILINNGSRIKGWWVFHHYVSTFLSGVMLTWPDGLMYQKFRNQFLSFSMYQSFVQFLQYYYQSGCLYRLRALGERHTMDLTVEGFQSWMWRGLTFLLPFLFFGHFWQLFNALTLFNLAQDPQCKEWQVLMCGFPFLLLFLGNFFTTLRVVHHKFHSQRHGSKKD

Running AlphaFold prediction  

> alphafold match
> MQPPPPGPLGDCLRDWEDLQQDFQNIQETHRLYRLKLEELTKLQNNCTSSITRQKKRLQELALALKKCKPSLPAEAEGAAQELENQMKERQGLFFDMEAYLPKKNGLYLSLVLGNVNVTLLSKQAKFAYKDEYEKFKLYLTIILILISFTCRFLLNSRVTDAAFNFLLVWYYCTLTIRESILINNGSRIKGWWVFHHYVSTFLSGVMLTWPDGLMYQKFRNQFLSFSMYQSFVQFLQYYYQSGCLYRLRALGERHTMDLTVEGFQSWMWRGLTFLLPFLFFGHFWQLFNALTLFNLAQDPQCKEWQVLMCGFPFLLLFLGNFFTTLRVVHHKFHSQRHGSKKD

Fetching compressed AlphaFold Q9BXJ8 from
https://alphafold.ebi.ac.uk/files/AF-Q9BXJ8-F1-model_v2.cif  
1 AlphaFold model found using sequence similarity searches: Q9BXJ8 (1
sequences)  
Sequence Similarity  
---  
AlphaFold Model| Query Sequence| Identity %| Coverage %  
TACAN_HUMAN | MQPPP...GSKKD | 100.0 | 100.0  
Opened 1 AlphaFold model  

> ui mousemode right "translate selected models"

> select clear

> select /A:317

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

> view matrix models #2,1,0,0,106.98,0,1,0,112.4,0,0,1,122.55

> view matrix models #2,1,0,0,108.69,0,1,0,112.19,0,0,1,125.47

> zoom 3

> view matrix models
> #2,-0.22271,0.2224,-0.94918,121.77,0.64008,0.76774,0.029702,108.61,0.73532,-0.60093,-0.31334,125.56

> view matrix models
> #2,-0.16713,0.45948,-0.87232,122.06,0.45297,0.82165,0.346,108.62,0.87572,-0.33731,-0.34545,125.91

> view matrix models
> #2,-0.25034,0.23345,-0.93959,121.93,0.18446,0.96422,0.19042,111.32,0.95042,-0.12565,-0.28444,126.05

> view matrix models
> #2,-0.25034,0.23345,-0.93959,116.04,0.18446,0.96422,0.19042,113.9,0.95042,-0.12565,-0.28444,133.82

> fitmap #2 inMap #1

Fit molecule AlphaFold TACAN_HUMAN (#2) to map emdb 30495 (#1) using 2871
atoms  
average map value = 0.2788, steps = 84  
shifted from previous position = 2.54  
rotated from previous position = 4.78 degrees  
atoms outside contour = 2480, contour level = 1.0585  
  
Position of AlphaFold TACAN_HUMAN (#2) relative to emdb 30495 (#1)
coordinates:  
Matrix rotation and translation  
-0.32613799 0.21536686 -0.92046245 115.20557228  
0.15525917 0.97268331 0.17257395 113.77972000  
0.93248518 -0.08662731 -0.35066666 131.40231599  
Axis -0.13846559 -0.98984658 -0.03210959  
Axis point 5.18693463 0.00000000 97.71103570  
Rotation angle (degrees) 110.61340665  
Shift along axis -132.79574931  
  

> view matrix models
> #2,-0.32614,0.21537,-0.92046,127.11,0.15526,0.97268,0.17257,131.2,0.93249,-0.086627,-0.35067,127.96

> view matrix models
> #2,-0.32614,0.21537,-0.92046,136.47,0.15526,0.97268,0.17257,122.73,0.93249,-0.086627,-0.35067,125.48

> fitmap #2 inMap #1

Fit molecule AlphaFold TACAN_HUMAN (#2) to map emdb 30495 (#1) using 2871
atoms  
average map value = 0.1816, steps = 88  
shifted from previous position = 4.29  
rotated from previous position = 3.63 degrees  
atoms outside contour = 2631, contour level = 1.0585  
  
Position of AlphaFold TACAN_HUMAN (#2) relative to emdb 30495 (#1)
coordinates:  
Matrix rotation and translation  
-0.30780896 0.17030736 -0.93608175 137.80606836  
0.17649055 0.97699495 0.11971610 125.33565293  
0.93493568 -0.12835989 -0.33078544 122.55387683  
Axis -0.13143782 -0.99131900 0.00327603  
Axis point 16.59422618 0.00000000 104.09902998  
Rotation angle (degrees) 109.31732261  
Shift along axis -141.95905315  
  

> view matrix models
> #2,-0.30781,0.17031,-0.93608,138.04,0.17649,0.97699,0.11972,123.37,0.93494,-0.12836,-0.33079,125.23

> view matrix models
> #2,-0.69343,-0.1354,-0.70769,138.14,-0.054291,0.98921,-0.13607,125.75,0.71848,-0.055934,-0.6933,128.19

> fitmap #2 inMap #1

Fit molecule AlphaFold TACAN_HUMAN (#2) to map emdb 30495 (#1) using 2871
atoms  
average map value = 0.2608, steps = 128  
shifted from previous position = 5.9  
rotated from previous position = 9.29 degrees  
atoms outside contour = 2541, contour level = 1.0585  
  
Position of AlphaFold TACAN_HUMAN (#2) relative to emdb 30495 (#1)
coordinates:  
Matrix rotation and translation  
-0.75388114 0.00571278 -0.65698599 134.12216283  
0.03862389 0.99861815 -0.03563688 122.18177061  
0.65587455 -0.05224133 -0.75306004 131.04638273  
Axis -0.01264255 -0.99960604 0.02505837  
Axis point 41.18383025 0.00000000 91.88417825  
Rotation angle (degrees) 138.95215875  
Shift along axis -120.54547424  
  

> volume gaussian #1 sDev 2

Opened emdb 30495 gaussian as #3, grid size 220,220,220, pixel 1.09, shown at
step 1, values float32  

> volume #3 level 0.2677

> fitmap #2 inMap #3

Fit molecule AlphaFold TACAN_HUMAN (#2) to map emdb 30495 gaussian (#3) using
2871 atoms  
average map value = 0.2741, steps = 108  
shifted from previous position = 4.46  
rotated from previous position = 10.4 degrees  
atoms outside contour = 1437, contour level = 0.26768  
  
Position of AlphaFold TACAN_HUMAN (#2) relative to emdb 30495 gaussian (#3)
coordinates:  
Matrix rotation and translation  
-0.80102483 0.10351049 -0.58961411 131.38781535  
0.03575221 0.99145122 0.12548409 125.17310161  
0.59756255 0.07943586 -0.79787777 133.04487453  
Axis -0.03869599 -0.99762743 -0.05693973  
Axis point 42.56490128 0.00000000 83.79257727  
Rotation angle (degrees) 143.48736719  
Shift along axis -137.53583979  
  




OpenGL version: 4.1 Metal - 76.3
OpenGL renderer: Apple M1 Max
OpenGL vendor: Apple

Locale: UTF-8
Qt version: PyQt6 6.2.3, Qt 6.2.3
Qt platform: cocoa
Hardware:

    Hardware Overview:

      Model Name: MacBook Pro
      Model Identifier: MacBookPro18,2
      Chip: Apple M1 Max
      Total Number of Cores: 10 (8 performance and 2 efficiency)
      Memory: 32 GB
      System Firmware Version: 7459.101.2
      OS Loader Version: 7459.101.2

Software:

    System Software Overview:

      System Version: macOS 12.3 (21E230)
      Kernel Version: Darwin 21.4.0
      Time since boot: 11 days 16:45

Graphics/Displays:

    Apple M1 Max:

      Chipset Model: Apple M1 Max
      Type: GPU
      Bus: Built-In
      Total Number of Cores: 32
      Vendor: Apple (0x106b)
      Metal Family: Supported, Metal GPUFamily Apple 7
      Displays:
        Color LCD:
          Display Type: Built-in Liquid Retina XDR Display
          Resolution: 3456 x 2234 Retina
          Main Display: Yes
          Mirror: Off
          Online: Yes
          Automatically Adjust Brightness: No
          Connection Type: Internal


Installed Packages:
    alabaster: 0.7.12
    appdirs: 1.4.4
    appnope: 0.1.2
    Babel: 2.9.1
    backcall: 0.2.0
    blockdiag: 3.0.0
    certifi: 2021.10.8
    charset-normalizer: 2.0.12
    ChimeraX-AddCharge: 1.2.3
    ChimeraX-AddH: 2.1.11
    ChimeraX-AlignmentAlgorithms: 2.0
    ChimeraX-AlignmentHdrs: 3.2.1
    ChimeraX-AlignmentMatrices: 2.0
    ChimeraX-Alignments: 2.3
    ChimeraX-AlphaFold: 1.0
    ChimeraX-AltlocExplorer: 1.0.1
    ChimeraX-AmberInfo: 1.0
    ChimeraX-Arrays: 1.0
    ChimeraX-Atomic: 1.36.3
    ChimeraX-AtomicLibrary: 6.1.1
    ChimeraX-AtomSearch: 2.0.1
    ChimeraX-AxesPlanes: 2.1
    ChimeraX-BasicActions: 1.1
    ChimeraX-BILD: 1.0
    ChimeraX-BlastProtein: 2.0
    ChimeraX-BondRot: 2.0
    ChimeraX-BugReporter: 1.0
    ChimeraX-BuildStructure: 2.6.1
    ChimeraX-Bumps: 1.0
    ChimeraX-BundleBuilder: 1.1
    ChimeraX-ButtonPanel: 1.0
    ChimeraX-CageBuilder: 1.0
    ChimeraX-CellPack: 1.0
    ChimeraX-Centroids: 1.2
    ChimeraX-ChemGroup: 2.0
    ChimeraX-Clashes: 2.2.2
    ChimeraX-ColorActions: 1.0
    ChimeraX-ColorGlobe: 1.0
    ChimeraX-ColorKey: 1.5.1
    ChimeraX-CommandLine: 1.2.2
    ChimeraX-ConnectStructure: 2.0.1
    ChimeraX-Contacts: 1.0
    ChimeraX-Core: 1.4.dev202203271748
    ChimeraX-CoreFormats: 1.1
    ChimeraX-coulombic: 1.3.2
    ChimeraX-Crosslinks: 1.0
    ChimeraX-Crystal: 1.0
    ChimeraX-CrystalContacts: 1.0
    ChimeraX-DataFormats: 1.2.2
    ChimeraX-Dicom: 1.0
    ChimeraX-DistMonitor: 1.1.5
    ChimeraX-Dssp: 2.0
    ChimeraX-ExperimentalCommands: 1.0
    ChimeraX-FileHistory: 1.0
    ChimeraX-FunctionKey: 1.0
    ChimeraX-Geometry: 1.1
    ChimeraX-gltf: 1.0
    ChimeraX-Graphics: 1.1
    ChimeraX-Hbonds: 2.1.2
    ChimeraX-Help: 1.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
    ChimeraX-Label: 1.1
    ChimeraX-ListInfo: 1.1.1
    ChimeraX-Log: 1.1.5
    ChimeraX-LookingGlass: 1.1
    ChimeraX-Maestro: 1.8.1
    ChimeraX-Map: 1.1
    ChimeraX-MapData: 2.0
    ChimeraX-MapEraser: 1.0
    ChimeraX-MapFilter: 2.0
    ChimeraX-MapFit: 2.0
    ChimeraX-MapSeries: 2.1
    ChimeraX-Markers: 1.0
    ChimeraX-Mask: 1.0
    ChimeraX-MatchMaker: 2.0.6
    ChimeraX-MDcrds: 2.6
    ChimeraX-MedicalToolbar: 1.0.1
    ChimeraX-Meeting: 1.0
    ChimeraX-MLP: 1.1
    ChimeraX-mmCIF: 2.7
    ChimeraX-MMTF: 2.1
    ChimeraX-Modeller: 1.5.5
    ChimeraX-ModelPanel: 1.3.2
    ChimeraX-ModelSeries: 1.0
    ChimeraX-Mol2: 2.0
    ChimeraX-Morph: 1.0
    ChimeraX-MouseModes: 1.1
    ChimeraX-Movie: 1.0
    ChimeraX-Neuron: 1.0
    ChimeraX-Nucleotides: 2.0.2
    ChimeraX-OpenCommand: 1.8
    ChimeraX-PDB: 2.6.6
    ChimeraX-PDBBio: 1.0
    ChimeraX-PDBLibrary: 1.0.2
    ChimeraX-PDBMatrices: 1.0
    ChimeraX-PickBlobs: 1.0
    ChimeraX-Positions: 1.0
    ChimeraX-PresetMgr: 1.1
    ChimeraX-PubChem: 2.1
    ChimeraX-ReadPbonds: 1.0.1
    ChimeraX-Registration: 1.1
    ChimeraX-RemoteControl: 1.0
    ChimeraX-ResidueFit: 1.0
    ChimeraX-RestServer: 1.1
    ChimeraX-RNALayout: 1.0
    ChimeraX-RotamerLibMgr: 2.0.1
    ChimeraX-RotamerLibsDunbrack: 2.0
    ChimeraX-RotamerLibsDynameomics: 2.0
    ChimeraX-RotamerLibsRichardson: 2.0
    ChimeraX-SaveCommand: 1.5
    ChimeraX-SchemeMgr: 1.0
    ChimeraX-SDF: 2.0
    ChimeraX-Segger: 1.0
    ChimeraX-Segment: 1.0
    ChimeraX-SelInspector: 1.0
    ChimeraX-SeqView: 2.5
    ChimeraX-Shape: 1.0.1
    ChimeraX-Shell: 1.0
    ChimeraX-Shortcuts: 1.1
    ChimeraX-ShowAttr: 1.0
    ChimeraX-ShowSequences: 1.0
    ChimeraX-SideView: 1.0
    ChimeraX-Smiles: 2.1
    ChimeraX-SmoothLines: 1.0
    ChimeraX-SpaceNavigator: 1.0
    ChimeraX-StdCommands: 1.8
    ChimeraX-STL: 1.0
    ChimeraX-Storm: 1.0
    ChimeraX-StructMeasure: 1.0.1
    ChimeraX-Struts: 1.0.1
    ChimeraX-Surface: 1.0
    ChimeraX-SwapAA: 2.0
    ChimeraX-SwapRes: 2.1.1
    ChimeraX-TapeMeasure: 1.0
    ChimeraX-Test: 1.0
    ChimeraX-Toolbar: 1.1
    ChimeraX-ToolshedUtils: 1.2.1
    ChimeraX-Tug: 1.0
    ChimeraX-UI: 1.16.3
    ChimeraX-uniprot: 2.2
    ChimeraX-UnitCell: 1.0
    ChimeraX-ViewDockX: 1.1.2
    ChimeraX-VIPERdb: 1.0
    ChimeraX-Vive: 1.1
    ChimeraX-VolumeMenu: 1.0
    ChimeraX-VTK: 1.0
    ChimeraX-WavefrontOBJ: 1.0
    ChimeraX-WebCam: 1.0
    ChimeraX-WebServices: 1.0
    ChimeraX-Zone: 1.0
    colorama: 0.4.4
    cxservices: 1.1
    cycler: 0.11.0
    Cython: 0.29.26
    debugpy: 1.5.1
    decorator: 5.1.1
    docutils: 0.17.1
    entrypoints: 0.4
    filelock: 3.4.2
    fonttools: 4.31.2
    funcparserlib: 1.0.0a0
    grako: 3.16.5
    html2text: 2020.1.16
    idna: 3.3
    ihm: 0.27
    imagesize: 1.3.0
    ipykernel: 6.6.1
    ipython: 7.31.1
    ipython-genutils: 0.2.0
    jedi: 0.18.1
    Jinja2: 3.0.3
    jupyter-client: 7.1.0
    jupyter-core: 4.9.2
    kiwisolver: 1.4.0
    line-profiler: 3.4.0
    lxml: 4.7.1
    lz4: 3.1.10
    MarkupSafe: 2.1.1
    matplotlib: 3.5.1
    matplotlib-inline: 0.1.3
    msgpack: 1.0.3
    nest-asyncio: 1.5.4
    networkx: 2.6.3
    numpy: 1.22.1
    openvr: 1.16.802
    packaging: 21.0
    ParmEd: 3.4.3
    parso: 0.8.3
    pexpect: 4.8.0
    pickleshare: 0.7.5
    Pillow: 9.0.1
    pip: 21.3.1
    pkginfo: 1.8.2
    prompt-toolkit: 3.0.28
    psutil: 5.9.0
    ptyprocess: 0.7.0
    pycollada: 0.7.2
    pydicom: 2.2.2
    Pygments: 2.11.2
    PyOpenGL: 3.1.5
    PyOpenGL-accelerate: 3.1.5
    pyparsing: 3.0.7
    PyQt6: 6.2.3
    PyQt6-Qt6: 6.2.4
    PyQt6-sip: 13.2.0
    PyQt6-WebEngine: 6.2.1
    PyQt6-WebEngine-Qt6: 6.2.4
    python-dateutil: 2.8.2
    pytz: 2022.1
    pyzmq: 22.3.0
    qtconsole: 5.2.2
    QtPy: 2.0.1
    requests: 2.27.1
    scipy: 1.7.3
    setuptools: 59.8.0
    six: 1.16.0
    snowballstemmer: 2.2.0
    sortedcontainers: 2.4.0
    Sphinx: 4.3.2
    sphinx-autodoc-typehints: 1.15.2
    sphinxcontrib-applehelp: 1.0.2
    sphinxcontrib-blockdiag: 3.0.0
    sphinxcontrib-devhelp: 1.0.2
    sphinxcontrib-htmlhelp: 2.0.0
    sphinxcontrib-jsmath: 1.0.1
    sphinxcontrib-qthelp: 1.0.3
    sphinxcontrib-serializinghtml: 1.1.5
    suds-community: 1.0.0
    tifffile: 2021.11.2
    tinyarray: 1.2.4
    tornado: 6.1
    traitlets: 5.1.1
    urllib3: 1.26.9
    wcwidth: 0.2.5
    webcolors: 1.11.1
    wheel: 0.37.1
    wheel-filename: 1.3.0

Change History (3)

comment:1 by Tom Goddard, 4 years ago

Component: UnassignedWindow Toolkit
Owner: set to Zach Pearson
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionMac multitouch sometimes broken with Qt 6

comment:2 by Zach Pearson, 4 years ago

enablemultitouch_mac.m:20:9: warning: 'setAcceptsTouchEvents:' is deprecated: first deprecated in macOS 10.12.2 - Use allowedTouchTypes instead [-Wdeprecated-declarations]
  [view setAcceptsTouchEvents:YES];
        ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSView.h:227:16: note: property 'acceptsTouchEvents' is declared deprecated here
@property BOOL acceptsTouchEvents API_DEPRECATED("Use allowedTouchTypes instead", macos(10.6,10.12.2));
               ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSView.h:227:16: note: 'setAcceptsTouchEvents:' has been explicitly marked deprecated here
1 warning generated.
enablemultitouch_mac.m:20:9: warning: 'setAcceptsTouchEvents:' is deprecated: first deprecated in macOS 10.12.2 - Use allowedTouchTypes instead [-Wdeprecated-declarations]
  [view setAcceptsTouchEvents:YES];
        ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSView.h:227:16: note: property 'acceptsTouchEvents' is declared deprecated here
@property BOOL acceptsTouchEvents API_DEPRECATED("Use allowedTouchTypes instead", macos(10.6,10.12.2));
               ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSView.h:227:16: note: 'setAcceptsTouchEvents:' has been explicitly marked deprecated here

These build-time warnings may or may not have something to do with it; will investigate.

comment:3 by Tom Goddard, 4 years ago

The Qt 5 multitouch support on Mac was broken -- the Qt APIs to enable it on a QWindow either did not exist or were broken. So ChimeraX resorts to some very ugly hack of running a bit of Objective C code to enable it. Maybe in Qt 6 it is possible to enable multitouch events on the graphics QWindow so that hack is not needed. And that may resolve this bug where multitouch stops working sometimes when floating windows are present.

It would be worth search our tickets for "multitouch" because I may have already tried this, and I may have reported a Qt bug about it years ago.

Note: See TracTickets for help on using tickets.