/**
 * Override QMultiLineEdit to notify Java peer of traversal out.
 *
 * @param keyEvent key event to handle
 */
void TextFieldBody::keyReleaseEvent(QKeyEvent *key)
{
    int k = key->key();
    // always handle select event because it switches 
    // between the modal and non-modal modes
#ifdef QT_KEYPAD_MODE
    if (k == Qt::Key_Select) {
        QMultiLineEdit::keyReleaseEvent(key);
    } else if (isModalEditing()) {
#endif
        int line;
        int col;
        QMultiLineEdit::getCursorPosition(&line, &col);
        if (k == Qt::Key_Up && line == 0)  {
            PlatformMScreen * mscreen = PlatformMScreen::getMScreen();
            mscreen->keyReleaseEvent(key);
        } else if (k == Qt::Key_Down && line == numLines() - 1) {
            PlatformMScreen * mscreen = PlatformMScreen::getMScreen();
            mscreen->keyReleaseEvent(key);
        } else {
            QMultiLineEdit::keyReleaseEvent(key);
        }
#ifdef QT_KEYPAD_MODE
    } else {
        // not handle events while it's in not modal state
        key->ignore();
    }
#endif
}
void CustomItem::keyReleaseEvent(QKeyEvent *key)
{
  PlatformMScreen * mscreen = PlatformMScreen::getMScreen();
  mscreen->keyReleaseEvent(key);
}