diff options
author | Kent Hansen <khansen@trolltech.com> | 2009-04-17 15:04:23 (GMT) |
---|---|---|
committer | Kent Hansen <khansen@trolltech.com> | 2009-04-17 15:04:23 (GMT) |
commit | c29533ab2094c38bb63d50dd6306cfe6ccacc868 (patch) | |
tree | e539b2062c870dd431f522d1d1e0677008eaa717 /src/activeqt/control | |
parent | f15b8a83e2e51955776a3f07cb85ebfc342dd8ef (diff) | |
parent | 198efeb27e5c2a87d0a2bb6859446cb1faf45ed8 (diff) | |
download | Qt-c29533ab2094c38bb63d50dd6306cfe6ccacc868.zip Qt-c29533ab2094c38bb63d50dd6306cfe6ccacc868.tar.gz Qt-c29533ab2094c38bb63d50dd6306cfe6ccacc868.tar.bz2 |
Merge branch 'kinetic-animations' into kinetic-statemachine
Diffstat (limited to 'src/activeqt/control')
-rw-r--r-- | src/activeqt/control/qaxserverbase.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/activeqt/control/qaxserverbase.cpp b/src/activeqt/control/qaxserverbase.cpp index b9d73a1..f3e1dff 100644 --- a/src/activeqt/control/qaxserverbase.cpp +++ b/src/activeqt/control/qaxserverbase.cpp @@ -4457,11 +4457,24 @@ bool QAxServerBase::eventFilter(QObject *o, QEvent *e) case QEvent::Resize: updateMask(); break; - case QEvent::WindowBlocked: + case QEvent::WindowBlocked: { if (!m_spInPlaceFrame) break; m_spInPlaceFrame->EnableModeless(FALSE); + MSG msg; + // Visual Basic 6.0 posts the message WM_USER+3078 from the EnableModeless(). + // While handling this message, VB will disable all current top-levels. After + // this we have to re-enable the Qt modal widget to receive input events. + if (PeekMessage(&msg, 0, WM_USER+3078, WM_USER+3078, PM_REMOVE)) { + TranslateMessage(&msg); + DispatchMessage(&msg); + QWidget *modalWidget = QApplication::activeModalWidget(); + if (modalWidget && modalWidget->isVisible() && modalWidget->isEnabled() + && !IsWindowEnabled(modalWidget->effectiveWinId())) + EnableWindow(modalWidget->effectiveWinId(), TRUE); + } break; + } case QEvent::WindowUnblocked: if (!m_spInPlaceFrame) break; |