void (int startOffset, int endOffset) { if (checkDirty()) return; boolean purePaintingMode = myEditor.isPurePaintingMode(); boolean foldingEnabled = myEditor.getFoldingModel().isFoldingEnabled(); myEditor.setPurePaintingMode(false); myEditor.getFoldingModel().setFoldingEnabled(true); try { int startVisualLine = myView.offsetToVisualLine(startOffset, false); int endVisualLine = myView.offsetToVisualLine(endOffset, true); boolean sizeInvalidated = false; for (int i = startVisualLine; i <= endVisualLine; i++) { if (myLineWidths.getInt(i) < 0) { myLineWidths.set(i, UNKNOWN_WIDTH); sizeInvalidated = true; } } if (sizeInvalidated) { invalidateWidth(startVisualLine == endVisualLine, startVisualLine); myEditor.getContentComponent().revalidate(); } } finally { myEditor.setPurePaintingMode(purePaintingMode); myEditor.getFoldingModel().setFoldingEnabled(foldingEnabled); } }