Priority: P1: Critical
Affects Version/s: 5.5.1
Fix Version/s: 5.6.0 RC
Environment:Qt 5.5.1, Visual Studio 2013, 64bit, Windows 7
A Qt 5.5.1 program apparently no longer processes socket events while a native file dialog is open. This used to work with Qt 5.5.0. Standard events like paint events or timer events still fire, but socket event processing only resumes after closing the native file dialog.
The attached program illustrates the issue. It sets up
1. A TCP server which listens on localhost:4711 and prints any received data
2. A TCP client which connects to localhost:4711 and writes a 'ping!' message every second.
3. A QPushButton which, when pressed, opens a native file dialog.
After starting the program, two debug messages are printed every second - one indicating that the timer event fired, and the other confirming that a 'ping!' message was received.
With Qt 5.5.0, this behaviour is consistent and persists no matter whether a native file dialog is opened or not.
With Qt 5.5.1, the observed behaviour is that as soon as the QPushButton is clicked (and thus the native file dialog is shown), the timer message continues being printed every second but the 'ping!' message indicating that socket message arrived is no longer shown. Once the native dialog is closed, the buffered socket messages are shown all at once.
|For Gerrit Dashboard: QTBUG-49782|
|143262,7||Allow socket events processing with a foreign event loop on Windows||5.5||qt/qtbase||Status: MERGED||+2||0|