-rw-r--r-- | library/qpeapplication.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp index 5d05ed5..3370264 100644 --- a/library/qpeapplication.cpp +++ b/library/qpeapplication.cpp | |||
@@ -965,65 +965,65 @@ bool QPEApplication::qwsEventFilter( QWSEvent * e ) | |||
965 | ke-> simpleData.is_auto_repeat, 1 ); | 965 | ke-> simpleData.is_auto_repeat, 1 ); |
966 | 966 | ||
967 | QObject *which = QWidget::keyboardGrabber ( ); | 967 | QObject *which = QWidget::keyboardGrabber ( ); |
968 | if ( !which ) | 968 | if ( !which ) |
969 | which = QApplication::focusWidget ( ); | 969 | which = QApplication::focusWidget ( ); |
970 | if ( !which ) | 970 | if ( !which ) |
971 | which = QApplication::activeWindow ( ); | 971 | which = QApplication::activeWindow ( ); |
972 | if ( !which ) | 972 | if ( !which ) |
973 | which = qApp; | 973 | which = qApp; |
974 | 974 | ||
975 | QApplication::sendEvent ( which, &qke ); | 975 | QApplication::sendEvent ( which, &qke ); |
976 | } | 976 | } |
977 | else { // we didn't grab the keyboard, so send the event to the launcher | 977 | else { // we didn't grab the keyboard, so send the event to the launcher |
978 | QCopEnvelope e ( "QPE/Launcher", "deviceButton(int,int,int)" ); | 978 | QCopEnvelope e ( "QPE/Launcher", "deviceButton(int,int,int)" ); |
979 | e << int( ke-> simpleData.keycode ) << int( ke-> simpleData. is_press ) << int( ke-> simpleData.is_auto_repeat ); | 979 | e << int( ke-> simpleData.keycode ) << int( ke-> simpleData. is_press ) << int( ke-> simpleData.is_auto_repeat ); |
980 | } | 980 | } |
981 | } | 981 | } |
982 | return true; | 982 | return true; |
983 | } | 983 | } |
984 | } | 984 | } |
985 | if ( e->type == QWSEvent::Focus ) { | 985 | if ( e->type == QWSEvent::Focus ) { |
986 | QWSFocusEvent * fe = ( QWSFocusEvent* ) e; | 986 | QWSFocusEvent * fe = ( QWSFocusEvent* ) e; |
987 | if ( !fe->simpleData.get_focus ) { | 987 | if ( !fe->simpleData.get_focus ) { |
988 | QWidget * active = activeWindow(); | 988 | QWidget * active = activeWindow(); |
989 | while ( active && active->isPopup() ) { | 989 | while ( active && active->isPopup() ) { |
990 | active->close(); | 990 | active->close(); |
991 | active = activeWindow(); | 991 | active = activeWindow(); |
992 | } | 992 | } |
993 | } | 993 | } |
994 | else { | 994 | else { |
995 | // make sure our modal widget is ALWAYS on top | 995 | // make sure our modal widget is ALWAYS on top |
996 | QWidget *topm = activeModalWidget(); | 996 | QWidget *topm = activeModalWidget(); |
997 | if ( topm ) { | 997 | if ( topm && static_cast<int>( topm->winId() ) != fe->simpleData.window) { |
998 | topm->raise(); | 998 | topm->raise(); |
999 | } | 999 | } |
1000 | } | 1000 | } |
1001 | if ( fe->simpleData.get_focus && inputMethodDict ) { | 1001 | if ( fe->simpleData.get_focus && inputMethodDict ) { |
1002 | InputMethodHint m = inputMethodHint( QWidget::find( e->window() ) ); | 1002 | InputMethodHint m = inputMethodHint( QWidget::find( e->window() ) ); |
1003 | if ( m == AlwaysOff ) | 1003 | if ( m == AlwaysOff ) |
1004 | Global::hideInputMethod(); | 1004 | Global::hideInputMethod(); |
1005 | if ( m == AlwaysOn ) | 1005 | if ( m == AlwaysOn ) |
1006 | Global::showInputMethod(); | 1006 | Global::showInputMethod(); |
1007 | } | 1007 | } |
1008 | } | 1008 | } |
1009 | 1009 | ||
1010 | 1010 | ||
1011 | return QApplication::qwsEventFilter( e ); | 1011 | return QApplication::qwsEventFilter( e ); |
1012 | } | 1012 | } |
1013 | #endif | 1013 | #endif |
1014 | 1014 | ||
1015 | /*! | 1015 | /*! |
1016 | Destroys the QPEApplication. | 1016 | Destroys the QPEApplication. |
1017 | */ | 1017 | */ |
1018 | QPEApplication::~QPEApplication() | 1018 | QPEApplication::~QPEApplication() |
1019 | { | 1019 | { |
1020 | ungrabKeyboard(); | 1020 | ungrabKeyboard(); |
1021 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) | 1021 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) |
1022 | // Need to delete QCopChannels early, since the display will | 1022 | // Need to delete QCopChannels early, since the display will |
1023 | // be gone by the time we get to ~QObject(). | 1023 | // be gone by the time we get to ~QObject(). |
1024 | delete sysChannel; | 1024 | delete sysChannel; |
1025 | delete pidChannel; | 1025 | delete pidChannel; |
1026 | #endif | 1026 | #endif |
1027 | 1027 | ||
1028 | delete d; | 1028 | delete d; |
1029 | } | 1029 | } |
@@ -1436,65 +1436,65 @@ bool QPEApplication::raiseAppropriateWindow() | |||
1436 | // are raised before and after this loop). Order from most | 1436 | // are raised before and after this loop). Order from most |
1437 | // recently raised as deepest to least recently as top, so | 1437 | // recently raised as deepest to least recently as top, so |
1438 | // that repeated calls cycle through widgets. | 1438 | // that repeated calls cycle through widgets. |
1439 | QWidgetList *list = topLevelWidgets(); | 1439 | QWidgetList *list = topLevelWidgets(); |
1440 | if ( list ) { | 1440 | if ( list ) { |
1441 | bool foundlast = FALSE; | 1441 | bool foundlast = FALSE; |
1442 | QWidget* topsub = 0; | 1442 | QWidget* topsub = 0; |
1443 | if ( d->lastraised ) { | 1443 | if ( d->lastraised ) { |
1444 | for (QWidget* w = list->first(); w; w = list->next()) { | 1444 | for (QWidget* w = list->first(); w; w = list->next()) { |
1445 | if ( !w->parentWidget() && w != topm && w->isVisible() && !w->isDesktop() ) { | 1445 | if ( !w->parentWidget() && w != topm && w->isVisible() && !w->isDesktop() ) { |
1446 | if ( w == d->lastraised ) | 1446 | if ( w == d->lastraised ) |
1447 | foundlast = TRUE; | 1447 | foundlast = TRUE; |
1448 | if ( foundlast ) { | 1448 | if ( foundlast ) { |
1449 | w->raise(); | 1449 | w->raise(); |
1450 | topsub = w; | 1450 | topsub = w; |
1451 | } | 1451 | } |
1452 | } | 1452 | } |
1453 | } | 1453 | } |
1454 | } | 1454 | } |
1455 | for (QWidget* w = list->first(); w; w = list->next()) { | 1455 | for (QWidget* w = list->first(); w; w = list->next()) { |
1456 | if ( !w->parentWidget() && w != topm && w->isVisible() && !w->isDesktop() ) { | 1456 | if ( !w->parentWidget() && w != topm && w->isVisible() && !w->isDesktop() ) { |
1457 | if ( w == d->lastraised ) | 1457 | if ( w == d->lastraised ) |
1458 | break; | 1458 | break; |
1459 | w->raise(); | 1459 | w->raise(); |
1460 | topsub = w; | 1460 | topsub = w; |
1461 | } | 1461 | } |
1462 | } | 1462 | } |
1463 | d->lastraised = topsub; | 1463 | d->lastraised = topsub; |
1464 | delete list; | 1464 | delete list; |
1465 | } | 1465 | } |
1466 | 1466 | ||
1467 | // 3. Raise the active modal widget. | 1467 | // 3. Raise the active modal widget. |
1468 | if ( topm && topm != top ) { | 1468 | if ( topm ) { |
1469 | topm->show(); | 1469 | topm->show(); |
1470 | topm->raise(); | 1470 | topm->raise(); |
1471 | // If we haven't already handled the fastAppShowing message | 1471 | // If we haven't already handled the fastAppShowing message |
1472 | if (!top && d->preloaded) { | 1472 | if (!top && d->preloaded) { |
1473 | #ifndef QT_NO_COP | 1473 | #ifndef QT_NO_COP |
1474 | QCopEnvelope e("QPE/System", "fastAppShowing(QString)"); | 1474 | QCopEnvelope e("QPE/System", "fastAppShowing(QString)"); |
1475 | e << d->appName; | 1475 | e << d->appName; |
1476 | #endif | 1476 | #endif |
1477 | } | 1477 | } |
1478 | r = FALSE; | 1478 | r = FALSE; |
1479 | } | 1479 | } |
1480 | 1480 | ||
1481 | return r; | 1481 | return r; |
1482 | } | 1482 | } |
1483 | 1483 | ||
1484 | 1484 | ||
1485 | void QPEApplication::pidMessage( const QCString& msg, const QByteArray& data) | 1485 | void QPEApplication::pidMessage( const QCString& msg, const QByteArray& data) |
1486 | { | 1486 | { |
1487 | #ifdef Q_WS_QWS | 1487 | #ifdef Q_WS_QWS |
1488 | 1488 | ||
1489 | if ( msg == "quit()" ) { | 1489 | if ( msg == "quit()" ) { |
1490 | tryQuit(); | 1490 | tryQuit(); |
1491 | } | 1491 | } |
1492 | else if ( msg == "quitIfInvisible()" ) { | 1492 | else if ( msg == "quitIfInvisible()" ) { |
1493 | if ( d->qpe_main_widget && !d->qpe_main_widget->isVisible() ) | 1493 | if ( d->qpe_main_widget && !d->qpe_main_widget->isVisible() ) |
1494 | quit(); | 1494 | quit(); |
1495 | } | 1495 | } |
1496 | else if ( msg == "close()" ) { | 1496 | else if ( msg == "close()" ) { |
1497 | hideOrQuit(); | 1497 | hideOrQuit(); |
1498 | } | 1498 | } |
1499 | else if ( msg == "disablePreload()" ) { | 1499 | else if ( msg == "disablePreload()" ) { |
1500 | d->preloaded = FALSE; | 1500 | d->preloaded = FALSE; |