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

Mac Qt modal dialog cannot pickup and handle all the events

    XMLWordPrintable

    Details

    • Platform/s:
      macOS

      Description

      We encountered the following issue:

      1. Create a simple app with QWebEngineView as the main window and open a FIDO2 authentication page, it works fine with the Yubikey.

      2. If we put the QWebEngineView into a QDialog, and do the same FIDO2 authentication test, it does not work.

      Basically, a modal Qt dialog does not work, but the same thing works in a non-modal window.

      After debugging the program, we figured out that the issue is this line of program (as shown in the attached screenshot) in QCocoaEventDispatcher::processEvents. If we change the NSModalPanelRunLoopMode into NSDefaultRunLoopMode, then the issue is fixed.

      Apparently, with NSModalPanelRunLoopMode (currently being used by the Qt modal dialog event loop), the modal dialog cannot process all the events. This is preventing the Qt modal dialog from working correctly for the FIDO2 authentication.

      In general, Qt model dialog cannot pick up and handle all the events does put a limitation on its usage, and this limitation is not well documented, and it is not straightforward to resolve.

      Should this issue be addressed by Qt?

      Thanks,

        Attachments

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

          Activity

            People

            Assignee:
            qt_webengine_team Qt WebEngine Team
            Reporter:
            shugang Shugang Kang
            PM Owner:
            Vladimir Minenko Vladimir Minenko
            RnD Owner:
            Alex Blasche Alex Blasche
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Dates

              Created:
              Updated:

                Gerrit Reviews

                There are no open Gerrit changes