EA-76958 - IAE: VisualPosition.<init>

This commit is contained in:
Dmitry Batrak
2015-12-23 11:59:39 +03:00
parent 8fa67c4230
commit ed307768ca
2 changed files with 12 additions and 0 deletions
@@ -242,6 +242,9 @@ class EditorCoordinateMapper {
int maxOffset = 0;
for (VisualLineFragmentsIterator.Fragment fragment : VisualLineFragmentsIterator.create(myView, visualLineStartOffset, false)) {
if (p.x <= fragment.getStartX()) {
if (fragment.getStartVisualColumn() == 0) {
return new VisualPosition(visualLine, 0);
}
int markerWidth = myView.getEditor().getSoftWrapModel().getMinDrawingWidthInPixels(SoftWrapDrawingType.AFTER_SOFT_WRAP);
float indent = fragment.getStartX() - markerWidth;
if (p.x <= indent) {
@@ -22,7 +22,9 @@ import com.intellij.openapi.editor.FoldRegion;
import com.intellij.openapi.editor.LogicalPosition;
import com.intellij.openapi.editor.VisualPosition;
import com.intellij.openapi.editor.ex.DocumentEx;
import com.intellij.openapi.editor.ex.EditorEx;
import com.intellij.openapi.editor.ex.util.EditorUtil;
import com.intellij.openapi.editor.markup.TextAttributes;
import com.intellij.testFramework.EditorTestUtil;
import java.awt.*;
@@ -230,4 +232,11 @@ public class EditorImplTest extends AbstractEditorTest {
mouse().clickAt(0, 10);
assertEquals(new VisualPosition(0, 7), myEditor.getCaretModel().getVisualPosition());
}
public void testXYToVisualPositionWhenPrefixIsSet() throws Exception {
initText("abc");
configureSoftWraps(1000); // to make sure soft wrap character width is properly mocked
((EditorEx)myEditor).setPrefixTextAndAttributes(">", new TextAttributes());
assertEquals(new VisualPosition(0, 0), myEditor.xyToVisualPosition(new Point(1, 0)));
}
}