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

QDialog: modal dialog event loop gets into deadlock with Windows event loop when system context menu is shown from the application system menu

    XMLWordPrintable

Details

    • Bug
    • Resolution: Out of scope
    • P3: Somewhat important
    • Some future release
    • 4.5.3
    • None
    • Windows 7 x64 / Windows XP MS Compilers VS2005 and VS2008 /Qt 4.5.3 and Qt 4.6-rc1

    Description

      To reproduce this issue:

      make the following code change to the examples\dialogs\standarddialogs

      void Dialog::informationMessage()
      {
      QTimer::singleShot(5000,this,SLOT(criticalMessage()));
      return;
      }

      Then recompile and run the program and do the following

      1. Click the "QMessageBox::information" button.
      2. Immediatly after clicking, right click on the "Standard Dialogs" task bar so you see the task bar menu
      3. Wait until the QMessageBox fires
      4. Mouse interaction to the program no longer works, you can't click on the buttons in the MessageBox or the entries in the task bar. Alt-Tab works and can select another program, but if you Alt-Tab back, you still can't interact with the MessageBox via the mouse. Navigating with the keyboard arrow keys work, and you can use the space bar or esc to trigger the end of the QMessageBox, but most users won't figure this out.

      A workaround has been tried and was successful in resolving the problem but is not formally tested.

      To work around: add EndMenu() to enterModal_sys in qapplication_win.cpp

      I've written some test code that reproduces this but am seeing lockups unless input is taken from the user. Using Windows API calls to simulate move move and right clicking for triggering the system context menu and for clicking on the modal dialog I was able to get the test to pass with the fixed code. However, the code (without the change referred to earlier) the test seems to pass (but shouldn't).

      Autotest code is attached. It needs to be modified to get it to pass/fail under all conditions.

      Attachments

        Issue Links

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

          Activity

            People

              Unassigned Unassigned
              cattell Matthew Cattell (Inactive)
              Votes:
              3 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes