private void enter(Key key) {
        if (limitReached()) {
            return;
        }

        TextGrid.DataGridCel cel = grid.getCel(currentRow + rowOffset,
                currentCol + colOffset);

        if (cel == null) {
            grid.appendChar((char) 0x0a);
        } else {
            if (cel.getBufferIndex() != -1) {
                grid.insertChar(cel.getBufferIndex(), (char) 0x0a);
            } else {
                grid.appendChar((char) 0x0a);
            }
        }
        colOffset = 0;
        currentCol = 0;
        if (currentRow == numberOfRows - 1) {
            scrollDown();
        } else {
            currentRow++;
        }
    }