diff --git a/python/edu/learn-python/src/com/jetbrains/python/edu/StudyDocumentListener.java b/python/edu/learn-python/src/com/jetbrains/python/edu/StudyDocumentListener.java index f72135d7f181..9fdcf704a29b 100644 --- a/python/edu/learn-python/src/com/jetbrains/python/edu/StudyDocumentListener.java +++ b/python/edu/learn-python/src/com/jetbrains/python/edu/StudyDocumentListener.java @@ -51,7 +51,7 @@ public class StudyDocumentListener extends DocumentAdapter { int change = event.getNewLength() - event.getOldLength(); if (myTaskWindow != null) { int newLength = myTaskWindow.getLength() + change; - myTaskWindow.setLength(newLength); + myTaskWindow.setLength(newLength <= 0 ? 0 : newLength); } int newEnd = offset + event.getNewLength(); int newLine = document.getLineNumber(newEnd); diff --git a/python/edu/learn-python/src/com/jetbrains/python/edu/course/TaskFile.java b/python/edu/learn-python/src/com/jetbrains/python/edu/course/TaskFile.java index ed4f2bfe80da..aa6a5becddb3 100644 --- a/python/edu/learn-python/src/com/jetbrains/python/edu/course/TaskFile.java +++ b/python/edu/learn-python/src/com/jetbrains/python/edu/course/TaskFile.java @@ -112,7 +112,8 @@ public class TaskFile implements Stateful{ for (TaskWindow tw : taskWindows) { if (tw.getLine() <= line) { int twStartOffset = tw.getRealStartOffset(document); - int twEndOffset = twStartOffset + tw.getLength(); + final int length = tw.getLength() > 0 ? tw.getLength() : 0; + int twEndOffset = twStartOffset + length; if (twStartOffset <= offset && offset <= twEndOffset) { return tw; }