summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--library/qpeapplication.cpp9
1 files changed, 1 insertions, 8 deletions
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp
index c875ff2..86dbe85 100644
--- a/library/qpeapplication.cpp
+++ b/library/qpeapplication.cpp
@@ -1000,173 +1000,166 @@ QPEApplication::InputMethodHint QPEApplication::inputMethodHint( QWidget * w )
1000 as specified by \a mode. 1000 as specified by \a mode.
1001 1001
1002 \sa inputMethodHint() InputMethodHint 1002 \sa inputMethodHint() InputMethodHint
1003*/ 1003*/
1004void QPEApplication::setInputMethodHint( QWidget * w, InputMethodHint mode ) 1004void QPEApplication::setInputMethodHint( QWidget * w, InputMethodHint mode )
1005{ 1005{
1006 createInputMethodDict(); 1006 createInputMethodDict();
1007 if ( mode == Normal ) { 1007 if ( mode == Normal ) {
1008 inputMethodDict->remove 1008 inputMethodDict->remove
1009 ( w ); 1009 ( w );
1010 } 1010 }
1011 else { 1011 else {
1012 inputMethodDict->insert( w, ( void* ) mode ); 1012 inputMethodDict->insert( w, ( void* ) mode );
1013 } 1013 }
1014} 1014}
1015 1015
1016class HackDialog : public QDialog 1016class HackDialog : public QDialog
1017{ 1017{
1018public: 1018public:
1019 void acceptIt() 1019 void acceptIt()
1020 { 1020 {
1021 accept(); 1021 accept();
1022 } 1022 }
1023 void rejectIt() 1023 void rejectIt()
1024 { 1024 {
1025 reject(); 1025 reject();
1026 } 1026 }
1027}; 1027};
1028 1028
1029 1029
1030void QPEApplication::mapToDefaultAction( QWSKeyEvent * ke, int key ) 1030void QPEApplication::mapToDefaultAction( QWSKeyEvent * ke, int key )
1031{ 1031{
1032 // specialised actions for certain widgets. May want to 1032 // specialised actions for certain widgets. May want to
1033 // add more stuff here. 1033 // add more stuff here.
1034 if ( activePopupWidget() && activePopupWidget() ->inherits( "QListBox" ) 1034 if ( activePopupWidget() && activePopupWidget() ->inherits( "QListBox" )
1035 && activePopupWidget() ->parentWidget() 1035 && activePopupWidget() ->parentWidget()
1036 && activePopupWidget() ->parentWidget() ->inherits( "QComboBox" ) ) 1036 && activePopupWidget() ->parentWidget() ->inherits( "QComboBox" ) )
1037 key = Qt::Key_Return; 1037 key = Qt::Key_Return;
1038 1038
1039 if ( activePopupWidget() && activePopupWidget() ->inherits( "QPopupMenu" ) ) 1039 if ( activePopupWidget() && activePopupWidget() ->inherits( "QPopupMenu" ) )
1040 key = Qt::Key_Return; 1040 key = Qt::Key_Return;
1041 1041
1042#ifdef QWS 1042#ifdef QWS
1043 1043
1044 ke->simpleData.keycode = key; 1044 ke->simpleData.keycode = key;
1045#endif 1045#endif
1046} 1046}
1047 1047
1048// class HackWidget : public QWidget
1049// {
1050// public:
1051 // bool needsOk()
1052 // {
1053 // return ( getWState() & WState_Reserved1 );
1054 // }
1055// };
1056 1048
1057/*! 1049/*!
1058 \internal 1050 \internal
1059*/ 1051*/
1060 1052
1061#ifdef QWS 1053#ifdef QWS
1062bool QPEApplication::qwsEventFilter( QWSEvent * e ) 1054bool QPEApplication::qwsEventFilter( QWSEvent * e )
1063{ 1055{
1064 if ( !d->notbusysent && e->type == QWSEvent::Focus ) { 1056 if ( !d->notbusysent && e->type == QWSEvent::Focus ) {
1065 if ( qApp->type() != QApplication::GuiServer ) { 1057 if ( qApp->type() != QApplication::GuiServer ) {
1066 QCopEnvelope e( "QPE/System", "notBusy(QString)" ); 1058 QCopEnvelope e( "QPE/System", "notBusy(QString)" );
1067 e << d->appName; 1059 e << d->appName;
1068 } 1060 }
1069 d->notbusysent = TRUE; 1061 d->notbusysent = TRUE;
1070 } 1062 }
1071 if ( type() == GuiServer ) { 1063 if ( type() == GuiServer ) {
1072 switch ( e->type ) { 1064 switch ( e->type ) {
1073 case QWSEvent::Mouse: 1065 case QWSEvent::Mouse:
1074 if ( e->asMouse() ->simpleData.state && !QWidget::find( e->window() ) ) 1066 if ( e->asMouse() ->simpleData.state && !QWidget::find( e->window() ) )
1075 emit clientMoused(); 1067 emit clientMoused();
1076 break; 1068 break;
1077 default: 1069 default:
1078 break; 1070 break;
1079 } 1071 }
1080 } 1072 }
1081 if ( e->type == QWSEvent::Key ) { 1073 if ( e->type == QWSEvent::Key ) {
1082 QWSKeyEvent *ke = ( QWSKeyEvent * ) e; 1074 QWSKeyEvent *ke = ( QWSKeyEvent * ) e;
1083 if ( ke->simpleData.keycode == Qt::Key_F33 ) { 1075 if ( ke->simpleData.keycode == Qt::Key_F33 ) {
1084 // Use special "OK" key to press "OK" on top level widgets 1076 // Use special "OK" key to press "OK" on top level widgets
1085 QWidget * active = activeWindow(); 1077 QWidget * active = activeWindow();
1086 QWidget *popup = 0; 1078 QWidget *popup = 0;
1087 if ( active && active->isPopup() ) { 1079 if ( active && active->isPopup() ) {
1088 popup = active; 1080 popup = active;
1089 active = active->parentWidget(); 1081 active = active->parentWidget();
1090 } 1082 }
1091 if ( active && ( int ) active->winId() == ke->simpleData.window && 1083 if ( active && ( int ) active->winId() == ke->simpleData.window &&
1092 !active->testWFlags( WStyle_Customize | WType_Popup | WType_Desktop ) ) { 1084 !active->testWFlags( WStyle_Customize | WType_Popup | WType_Desktop ) ) {
1093 if ( ke->simpleData.is_press ) { 1085 if ( ke->simpleData.is_press ) {
1094 if ( popup ) 1086 if ( popup )
1095 popup->close(); 1087 popup->close();
1096 if ( active->inherits( "QDialog" ) ) { 1088 if ( active->inherits( "QDialog" ) ) {
1097 HackDialog * d = ( HackDialog * ) active; 1089 HackDialog * d = ( HackDialog * ) active;
1098 d->acceptIt(); 1090 d->acceptIt();
1099 return TRUE; 1091 return TRUE;
1100 } 1092 }
1101 else if ( ( ( HackWidget * ) active ) ->needsOk() ) { 1093 else if ( ( ( HackWidget * ) active ) ->needsOk() ) {
1102 QSignal s; 1094 QSignal s;
1103 s.connect( active, SLOT( accept() ) ); 1095 s.connect( active, SLOT( accept() ) );
1104 s.activate(); 1096 s.activate();
1105 } 1097 }
1106 else { 1098 else {
1107 // do the same as with the select key: Map to the default action of the widget: 1099 // do the same as with the select key: Map to the default action of the widget:
1108 mapToDefaultAction( ke, Qt::Key_Return ); 1100 mapToDefaultAction( ke, Qt::Key_Return );
1109 } 1101 }
1110 } 1102 }
1111 } 1103 }
1112 } 1104 }
1113 else if ( ke->simpleData.keycode == Qt::Key_F30 ) { 1105 else if ( ke->simpleData.keycode == Qt::Key_F30 ) {
1114 // Use special "select" key to do whatever default action a widget has 1106 // Use special "select" key to do whatever default action a widget has
1115 mapToDefaultAction( ke, Qt::Key_Space ); 1107 mapToDefaultAction( ke, Qt::Key_Space );
1116 } 1108 }
1117 else if ( ke->simpleData.keycode == Qt::Key_Escape && 1109 else if ( ke->simpleData.keycode == Qt::Key_Escape &&
1118 ke->simpleData.is_press ) { 1110 ke->simpleData.is_press ) {
1119 // Escape key closes app if focus on toplevel 1111 // Escape key closes app if focus on toplevel
1120 QWidget * active = activeWindow(); 1112 QWidget * active = activeWindow();
1121 if ( active && active->testWFlags( WType_TopLevel ) && 1113 if ( active && active->testWFlags( WType_TopLevel ) &&
1122 ( int ) active->winId() == ke->simpleData.window && 1114 ( int ) active->winId() == ke->simpleData.window &&
1123 !active->testWFlags( WStyle_Dialog | WStyle_Customize | WType_Popup | WType_Desktop ) ) { 1115 !active->testWFlags( WStyle_Dialog | WStyle_Customize | WType_Popup | WType_Desktop ) ) {
1124 if ( active->inherits( "QDialog" ) ) { 1116 if ( active->inherits( "QDialog" ) ) {
1117 qDebug("dialog hack");
1125 HackDialog * d = ( HackDialog * ) active; 1118 HackDialog * d = ( HackDialog * ) active;
1126 d->rejectIt(); 1119 d->rejectIt();
1127 return TRUE; 1120 return TRUE;
1128 } 1121 }
1129 } 1122 }
1130 } 1123 }
1131 else if ( ke->simpleData.keycode >= Qt::Key_F1 && ke->simpleData.keycode <= Qt::Key_F29 ) { 1124 else if ( ke->simpleData.keycode >= Qt::Key_F1 && ke->simpleData.keycode <= Qt::Key_F29 ) {
1132 // this should be if ( ODevice::inst ( )-> buttonForKeycode ( ... )) 1125 // this should be if ( ODevice::inst ( )-> buttonForKeycode ( ... ))
1133 // but we cannot access libopie function within libqpe :( 1126 // but we cannot access libopie function within libqpe :(
1134 1127
1135 QWidget * active = activeWindow ( ); 1128 QWidget * active = activeWindow ( );
1136 if ( active && ((int) active-> winId ( ) == ke-> simpleData.window )) { 1129 if ( active && ((int) active-> winId ( ) == ke-> simpleData.window )) {
1137 if ( d-> kbgrabbed ) { // we grabbed the keyboard 1130 if ( d-> kbgrabbed ) { // we grabbed the keyboard
1138 QChar ch ( ke-> simpleData.unicode ); 1131 QChar ch ( ke-> simpleData.unicode );
1139 QKeyEvent qke ( ke-> simpleData. is_press ? QEvent::KeyPress : QEvent::KeyRelease, 1132 QKeyEvent qke ( ke-> simpleData. is_press ? QEvent::KeyPress : QEvent::KeyRelease,
1140 ke-> simpleData.keycode, 1133 ke-> simpleData.keycode,
1141 ch. latin1 ( ), 1134 ch. latin1 ( ),
1142 ke-> simpleData.modifiers, 1135 ke-> simpleData.modifiers,
1143 QString ( ch ), 1136 QString ( ch ),
1144 ke-> simpleData.is_auto_repeat, 1 ); 1137 ke-> simpleData.is_auto_repeat, 1 );
1145 1138
1146 QObject *which = QWidget::keyboardGrabber ( ); 1139 QObject *which = QWidget::keyboardGrabber ( );
1147 if ( !which ) 1140 if ( !which )
1148 which = QApplication::focusWidget ( ); 1141 which = QApplication::focusWidget ( );
1149 if ( !which ) 1142 if ( !which )
1150 which = QApplication::activeWindow ( ); 1143 which = QApplication::activeWindow ( );
1151 if ( !which ) 1144 if ( !which )
1152 which = qApp; 1145 which = qApp;
1153 1146
1154 QApplication::sendEvent ( which, &qke ); 1147 QApplication::sendEvent ( which, &qke );
1155 } 1148 }
1156 else { // we didn't grab the keyboard, so send the event to the launcher 1149 else { // we didn't grab the keyboard, so send the event to the launcher
1157 QCopEnvelope e ( "QPE/Launcher", "deviceButton(int,int,int)" ); 1150 QCopEnvelope e ( "QPE/Launcher", "deviceButton(int,int,int)" );
1158 e << int( ke-> simpleData.keycode ) << int( ke-> simpleData. is_press ) << int( ke-> simpleData.is_auto_repeat ); 1151 e << int( ke-> simpleData.keycode ) << int( ke-> simpleData. is_press ) << int( ke-> simpleData.is_auto_repeat );
1159 } 1152 }
1160 } 1153 }
1161 return true; 1154 return true;
1162 } 1155 }
1163 } 1156 }
1164 if ( e->type == QWSEvent::Focus ) { 1157 if ( e->type == QWSEvent::Focus ) {
1165 QWSFocusEvent * fe = ( QWSFocusEvent* ) e; 1158 QWSFocusEvent * fe = ( QWSFocusEvent* ) e;
1166 if ( !fe->simpleData.get_focus ) { 1159 if ( !fe->simpleData.get_focus ) {
1167 QWidget * active = activeWindow(); 1160 QWidget * active = activeWindow();
1168 while ( active && active->isPopup() ) { 1161 while ( active && active->isPopup() ) {
1169 active->close(); 1162 active->close();
1170 active = activeWindow(); 1163 active = activeWindow();
1171 } 1164 }
1172 } 1165 }