Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-67194

Qt::Tool widget crashes when performing Exposé or Mission Control gestures with mouse down.

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P2: Important
    • Resolution: Done
    • Affects Version/s: 5.6.3, 5.11
    • Fix Version/s: 5.11.0
    • Component/s: QPA
    • Labels:
      None
    • Environment:
      macOS High Sierra
      Version 10.13.2 (17C205)
    • Platform/s:
      macOS
    • Commits:
      992f673782ac7b8edea0dc7b4498eb7f970b4ba8

      Description

      Tested using a trackpad, not sure if you can reproduce using other input devices.

      In a widget with the Qt::Tool window flag ("Tool Widget" in the attached example):

      1. press and hold finger down, then swipe up with three fingers;
      2. release all fingers at the end of the gesture.

      The application crashes.

      Cause of the crash:

      • NSEvent locationInWindow property for the LeftMouseUp event returns an NSPoint with NaN values;
      • QGuiApplicationPrivate::processMouseEvent detects this event changes the cursor position and buttons, so splits it in two, sending the position change first;
      • QGuiApplicationPrivate::processMouseEvent stores the last event position and uses it for the check above, however NaN values cannot be compared and so QGuiApplicationPrivate::processMouseEvent is called recursively until the buttons change;
      • The application then crashes with EXC_BAD_ACCESS.

        Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

            Assignee:
            nathan.collins Nathan Collins
            Reporter:
            nathan.collins Nathan Collins
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Gerrit Reviews

                There are no open Gerrit changes