diff options
Diffstat (limited to 'x11-toolkits/qt33/files/qapplication.cpp.diff')
-rw-r--r-- | x11-toolkits/qt33/files/qapplication.cpp.diff | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/x11-toolkits/qt33/files/qapplication.cpp.diff b/x11-toolkits/qt33/files/qapplication.cpp.diff new file mode 100644 index 000000000000..b84fd01f8f74 --- /dev/null +++ b/x11-toolkits/qt33/files/qapplication.cpp.diff @@ -0,0 +1,74 @@ +=================================================================== +RCS file: /home2/webcvs/mirror/qt-copy/src/kernel/qapplication.cpp,v +retrieving revision 1.61 +retrieving revision 1.62 +diff -u -p -r1.61 -r1.62 +--- qt-copy/src/kernel/qapplication.cpp 2002/11/13 16:46:34 1.61 ++++ qt-copy/src/kernel/qapplication.cpp 2002/11/14 08:57:34 1.62 +@@ -3257,6 +3257,66 @@ Q_EXPORT void qt_dispatchEnterLeave( QWi + } + + ++#ifdef Q_WS_MACX ++extern QWidget *qt_tryModalHelperMac( QWidget * top ); //qapplication_mac.cpp ++#endif ++ ++ ++/*!\internal ++ ++ Called from qapplication_<platform>.cpp, returns TRUE ++ if the widget should accept the event. ++ */ ++bool qt_tryModalHelper( QWidget *widget, QWidget **rettop ) { ++ QWidget *modal=0, *top=QApplication::activeModalWidget(); ++ if ( rettop ) *rettop = top; ++ ++ if ( qApp->activePopupWidget() ) ++ return TRUE; ++ ++#ifdef Q_WS_MACX ++ top = qt_tryModalHelperMac( top ); ++ if ( rettop ) *rettop = top; ++#endif ++ ++ QWidget* groupLeader = widget; ++ widget = widget->topLevelWidget(); ++ ++ if ( widget->testWFlags(Qt::WShowModal) ) // widget is modal ++ modal = widget; ++ if ( !top || modal == top ) // don't block event ++ return TRUE; ++ ++ QWidget * p = widget->parentWidget(); // Check if the active modal widget is a parent of our widget ++ while ( p ) { ++ if ( p == top ) ++ return TRUE; ++ p = p->parentWidget(); ++ } ++ ++ while ( groupLeader && !groupLeader->testWFlags( Qt::WGroupLeader ) ) ++ groupLeader = groupLeader->parentWidget(); ++ ++ if ( groupLeader ) { ++ // Does groupLeader have a child in qt_modal_stack? ++ bool unrelated = TRUE; ++ modal = qt_modal_stack->first(); ++ while (modal && unrelated) { ++ QWidget* p = modal->parentWidget(); ++ while ( p && p != groupLeader && !p->testWFlags( Qt::WGroupLeader) ) { ++ p = p->parentWidget(); ++ } ++ modal = qt_modal_stack->next(); ++ if ( p == groupLeader ) unrelated = FALSE; ++ } ++ ++ if ( unrelated ) ++ return TRUE; // don't block event ++ } ++ return FALSE; ++} ++ ++ + /*! + Returns the desktop widget (also called the root window). + |