Details
-
Bug
-
Resolution: Invalid
-
Not Evaluated
-
None
-
5.4.1, 5.5.0 Alpha
-
None
-
Mac OS X 10.10.2
Description
Using Qt 5.4 and 5.5a on Mac OS X 10.10 Qt hangs in the following conditions:
Class MyApplication inherits QApplication and overrides the QApplication::notify() function to call processEvents() when receiving the WindowActivate QEvent.
MyApplication spawns a modal dialog.
The modal dialog does exec().
The modal dialog is killed, calling done().
MyApplication becomes the top window and within the resulting notify() call calls processEvents();
Qt hangs. The main window does not respond to any user input. It still receives events via notify (confirmed in debugging mode). If you pause execution in notify and look at the call stack you will see Qt is still in the modal dialog's event loop.
The simple attached project illustrates this. Execute the project and click the only button in the main window, then click the button in the modal dialog that results. The modal dialog's button kills it (you can also just kill the modal dialog using the Mac window little red button). Qt is now effectively hung. The main window will not respond to user input and cannot be killed.
Attachments
Issue Links
- is replaced by
-
QTBUG-55725 ProcessEvents hang
-
- Closed
-