@Override public void setCaretOffset(int offset, boolean keepSelection) { viewer.getTextWidget().impl_setCaretOffset(offset, keepSelection); }
@SuppressWarnings("deprecation") private void moveCaretAbsolute(int absoluteOffset, boolean select) { int offset = Math.max(0, absoluteOffset); offset = Math.min(getControl().getCharCount(), offset); // we need to jump 2 chars if windows line endings are in effect if( offset > 0 ) { String textRange = getControl().getContent().getTextRange(offset-1, 1); // check the navigation direction if( getControl().getCaretOffset() > offset ) { if( textRange.equals("\r") ) { //$NON-NLS-1$ offset -= 1; } } else { if( textRange.equals("\r") ) { //$NON-NLS-1$ offset += 1; } } } getControl().impl_setCaretOffset(Math.max(0,offset), select); }
int index = n.getCaretIndexAtPoint(n.sceneToLocal(event.getSceneX(), event.getSceneY())); if (index >= 0) { getControl().impl_setCaretOffset(n.getStartOffset() + index, selection); return; getControl().impl_setCaretOffset(offset, selection);
@SuppressWarnings("unused") int newLine = getControl().getContent().getLineAtOffset(newOffset); getControl().impl_setCaretOffset(newOffset, event.isShiftDown()); event.consume(); String lineContent = getControl().getContent().getLine(currentLine); getControl().impl_setCaretOffset(lineOffset + lineContent.length(), event.isShiftDown()); event.consume(); } else { getControl().impl_setCaretOffset(newOffset, event.isShiftDown()); event.consume(); int maxPosition = lineOffset + getControl().getContent().getLine(rowIndex).length(); getControl().impl_setCaretOffset(Math.min(newCaretPosition, maxPosition), event.isShiftDown()); event.consume(); break; int maxPosition = lineOffset + getControl().getContent().getLine(rowIndex).length(); getControl().impl_setCaretOffset(Math.min(newCaretPosition, maxPosition), event.isShiftDown()); event.consume(); break;