- case MoveToNextChar:
- command = "MoveForward";
- break;
- case MoveToPreviousChar:
- command = "MoveBackward";
- break;
- case MoveToNextWord:
- command = "MoveWordForward";
- break;
- case MoveToPreviousWord:
- command = "MoveWordBackward";
- break;
- case MoveToNextLine:
- command = "MoveDown";
- break;
- case MoveToPreviousLine:
- command = "MoveUp";
- break;
- case MoveToStartOfLine:
- command = "MoveToBeginningOfLine";
- break;
- case MoveToEndOfLine:
- command = "MoveToEndOfLine";
- break;
- case MoveToStartOfBlock:
- command = "MoveToBeginningOfParagraph";
- break;
- case MoveToEndOfBlock:
- command = "MoveToEndOfParagraph";
- break;
- case MoveToStartOfDocument:
- command = "MoveToBeginningOfDocument";
- break;
- case MoveToEndOfDocument:
- command = "MoveToEndOfDocument";
- break;
- case SelectNextChar:
- command = "MoveForwardAndModifySelection";
- break;
- case SelectPreviousChar:
- command = "MoveBackwardAndModifySelection";
- break;
- case SelectNextWord:
- command = "MoveWordForwardAndModifySelection";
- break;
- case SelectPreviousWord:
- command = "MoveWordBackwardAndModifySelection";
- break;
- case SelectNextLine:
- command = "MoveDownAndModifySelection";
- break;
- case SelectPreviousLine:
- command = "MoveUpAndModifySelection";
- break;
- case SelectStartOfLine:
- command = "MoveToBeginningOfLineAndModifySelection";
- break;
- case SelectEndOfLine:
- command = "MoveToEndOfLineAndModifySelection";
- break;
- case SelectStartOfBlock:
- command = "MoveToBeginningOfParagraphAndModifySelection";
- break;
- case SelectEndOfBlock:
- command = "MoveToEndOfParagraphAndModifySelection";
- break;
- case SelectStartOfDocument:
- command = "MoveToBeginningOfDocumentAndModifySelection";
- break;
- case SelectEndOfDocument:
- command = "MoveToEndOfDocumentAndModifySelection";
- break;
- case DeleteStartOfWord:
- command = "DeleteWordBackward";
- break;
- case DeleteEndOfWord:
- command = "DeleteWordForward";
- break;
+ bool handled = false;
+ QWebFrame *frame = mainFrame;
+ WebCore::Editor *editor = frame->d->frame->editor();
+ if (editor->canEdit()) {
+ if (ev == QKeySequence::Cut) {
+ q->triggerAction(QWebPage::Cut);
+ handled = true;
+ } else if (ev == QKeySequence::Copy) {
+ q->triggerAction(QWebPage::Copy);
+ handled = true;
+ } else if (ev == QKeySequence::Paste) {
+ q->triggerAction(QWebPage::Paste);
+ handled = true;
+ } else if (ev == QKeySequence::Undo) {
+ q->triggerAction(QWebPage::Undo);
+ handled = true;
+ } else if (ev == QKeySequence::Redo) {
+ q->triggerAction(QWebPage::Redo);
+ handled = true;
+ } else if(ev == QKeySequence::MoveToNextChar) {
+ q->triggerAction(QWebPage::MoveToNextChar);
+ handled = true;
+ } else if(ev == QKeySequence::MoveToPreviousChar) {
+ q->triggerAction(QWebPage::MoveToPreviousChar);
+ handled = true;
+ } else if(ev == QKeySequence::MoveToNextWord) {
+ q->triggerAction(QWebPage::MoveToNextWord);
+ handled = true;
+ } else if(ev == QKeySequence::MoveToPreviousWord) {
+ q->triggerAction(QWebPage::MoveToPreviousWord);
+ handled = true;
+ } else if(ev == QKeySequence::MoveToNextLine) {
+ q->triggerAction(QWebPage::MoveToNextLine);
+ handled = true;
+ } else if(ev == QKeySequence::MoveToPreviousLine) {
+ q->triggerAction(QWebPage::MoveToPreviousLine);
+ handled = true;
+// } else if(ev == QKeySequence::MoveToNextPage) {
+// } else if(ev == QKeySequence::MoveToPreviousPage) {
+ } else if(ev == QKeySequence::MoveToStartOfLine) {
+ q->triggerAction(QWebPage::MoveToStartOfLine);
+ handled = true;
+ } else if(ev == QKeySequence::MoveToEndOfLine) {
+ q->triggerAction(QWebPage::MoveToEndOfLine);
+ handled = true;
+ } else if(ev == QKeySequence::MoveToStartOfBlock) {
+ q->triggerAction(QWebPage::MoveToStartOfBlock);
+ handled = true;
+ } else if(ev == QKeySequence::MoveToEndOfBlock) {
+ q->triggerAction(QWebPage::MoveToEndOfBlock);
+ handled = true;
+ } else if(ev == QKeySequence::MoveToStartOfDocument) {
+ q->triggerAction(QWebPage::MoveToStartOfDocument);
+ handled = true;
+ } else if(ev == QKeySequence::MoveToEndOfDocument) {
+ q->triggerAction(QWebPage::MoveToEndOfDocument);
+ handled = true;
+ } else if(ev == QKeySequence::SelectNextChar) {
+ q->triggerAction(QWebPage::SelectNextChar);
+ handled = true;
+ } else if(ev == QKeySequence::SelectPreviousChar) {
+ q->triggerAction(QWebPage::SelectPreviousChar);
+ handled = true;
+ } else if(ev == QKeySequence::SelectNextWord) {
+ q->triggerAction(QWebPage::SelectNextWord);
+ handled = true;
+ } else if(ev == QKeySequence::SelectPreviousWord) {
+ q->triggerAction(QWebPage::SelectPreviousWord);
+ handled = true;
+ } else if(ev == QKeySequence::SelectNextLine) {
+ q->triggerAction(QWebPage::SelectNextLine);
+ handled = true;
+ } else if(ev == QKeySequence::SelectPreviousLine) {
+ q->triggerAction(QWebPage::SelectPreviousLine);
+ handled = true;
+// } else if(ev == QKeySequence::SelectNextPage) {
+// } else if(ev == QKeySequence::SelectPreviousPage) {
+ } else if(ev == QKeySequence::SelectStartOfLine) {
+ q->triggerAction(QWebPage::SelectStartOfLine);
+ handled = true;
+ } else if(ev == QKeySequence::SelectEndOfLine) {
+ q->triggerAction(QWebPage::SelectEndOfLine);
+ handled = true;
+ } else if(ev == QKeySequence::SelectStartOfBlock) {
+ q->triggerAction(QWebPage::SelectStartOfBlock);
+ handled = true;
+ } else if(ev == QKeySequence::SelectEndOfBlock) {
+ q->triggerAction(QWebPage::SelectEndOfBlock);
+ handled = true;
+ } else if(ev == QKeySequence::SelectStartOfDocument) {
+ q->triggerAction(QWebPage::SelectStartOfDocument);
+ handled = true;
+ } else if(ev == QKeySequence::SelectEndOfDocument) {
+ q->triggerAction(QWebPage::SelectEndOfDocument);
+ handled = true;
+ } else if(ev == QKeySequence::DeleteStartOfWord) {
+ q->triggerAction(QWebPage::DeleteStartOfWord);
+ handled = true;
+ } else if(ev == QKeySequence::DeleteEndOfWord) {
+ q->triggerAction(QWebPage::DeleteEndOfWord);
+ handled = true;
+// } else if(ev == QKeySequence::DeleteEndOfLine) {
+ }
+ }
+ if (!handled)
+ handled = frame->d->eventHandler->keyEvent(ev);
+ if (!handled) {
+ handled = true;
+ PlatformScrollbar *h, *v;
+ h = mainFrame->d->horizontalScrollBar();
+ v = mainFrame->d->verticalScrollBar();