- case moveLeft:
- m_content->moveCursor(eInputContent::dirLeft);
- break;
- case moveRight:
- m_content->moveCursor(eInputContent::dirRight);
- break;
- case moveHome:
- m_content->moveCursor(eInputContent::dirHome);
- break;
- case moveEnd:
- m_content->moveCursor(eInputContent::dirEnd);
- break;
- case deleteForward:
- m_content->deleteChar(eInputContent::deleteForward);
- break;
- case deleteBackward:
- m_content->deleteChar(eInputContent::deleteBackward);
- break;
- case toggleOverwrite:
- setOverwriteMode(!m_mode);
- break;
- case accept:
- changed();
- mayKillFocus();
+ if ((long)data2 == gotAsciiCode)
+ {
+ if (m_content)
+ {
+ extern int getPrevAsciiCode(); // defined in enigma.cpp
+ return m_content->haveKey(getPrevAsciiCode(), m_mode);
+ }
+ }
+ }
+ else if ((long)data == INPUT_ACTIONS)
+ {
+ switch((long)data2)
+ {
+ case moveLeft:
+ if (m_content)
+ m_content->moveCursor(eInputContent::dirLeft);
+ break;
+ case moveRight:
+ if (m_content)
+ m_content->moveCursor(eInputContent::dirRight);
+ break;
+ case moveHome:
+ if (m_content)
+ m_content->moveCursor(eInputContent::dirHome);
+ break;
+ case moveEnd:
+ if (m_content)
+ m_content->moveCursor(eInputContent::dirEnd);
+ break;
+ case deleteForward:
+ if (m_content)
+ m_content->deleteChar(eInputContent::deleteForward);
+ break;
+ case deleteBackward:
+ if (m_content)
+ m_content->deleteChar(eInputContent::deleteBackward);
+ break;
+ case toggleOverwrite:
+ setOverwriteMode(!m_mode);
+ break;
+ case accept:
+ changed();
+ mayKillFocus();
+ }
+ return 1;