Hello!
I have Qt4 GUI project. It`s implemented as DLL. The main application which uses my DLL calling interface functions from MainThread. Here is the message loop of main application:
Qt Code:
  1. while(buckets_rendered<numRects && events!=0)
  2. {
  3. while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
  4. {
  5. TranslateMessage(&msg);
  6. DispatchMessage(&msg);
  7. }
  8.  
  9. stat = MsgWaitForMultipleObjects(numHandles, handles, FALSE, INFINITE, QS_ALLINPUT);
  10. if(stat == (WAIT_OBJECT_0 + numHandles))
  11. {
  12. continue;
  13. }
  14. else // message comes from the events
  15. {
  16. id = stat - WAIT_OBJECT_0;
  17. --events;
  18.  
  19. // ...
  20. }
  21. }
To copy to clipboard, switch view to plain text mode 

All works fine with Qt 4.7.3, but when we use Qt 4.5.3 my DLL is ‘blocked’! When I click some button in my GUI app, nothing happens. But when next I click right mouse button some events occure and I see an effect from the first left mouse button click and an effect from right button click…Why only right mouse button click force repaint? I`m confused…