summaryrefslogtreecommitdiffstats
path: root/src/activeqt/control
diff options
context:
space:
mode:
authorKent Hansen <khansen@trolltech.com>2009-04-17 15:04:23 (GMT)
committerKent Hansen <khansen@trolltech.com>2009-04-17 15:04:23 (GMT)
commitc29533ab2094c38bb63d50dd6306cfe6ccacc868 (patch)
treee539b2062c870dd431f522d1d1e0677008eaa717 /src/activeqt/control
parentf15b8a83e2e51955776a3f07cb85ebfc342dd8ef (diff)
parent198efeb27e5c2a87d0a2bb6859446cb1faf45ed8 (diff)
downloadQt-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.cpp15
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;