void (Graphics g) { validateSize(); startOptimizedScrolling(); if (myCursorUpdater != null) { myCursorUpdater.run(); myCursorUpdater = null; } Rectangle clip = getClipBounds(g); if (clip == null) { return; } Rectangle viewRect = getScrollingModel().getVisibleArea(); if (viewRect == null) { return; } if (isReleased) { g.setColor(new Color(128, 255, 128)); g.fillRect(clip.x, clip.y, clip.width, clip.height); return; } Color background = getBackroundColor(); g.setColor(background); g.fillRect(clip.x, clip.y, clip.width, clip.height); paintBackgrounds(g, clip); paintRectangularSelection(g); paintRightMargin(g, clip); final MarkupModel docMarkup = myDocument.getMarkupModel(myProject); if (docMarkup != null) { paintLineMarkersSeparators(g, clip, docMarkup); } paintLineMarkersSeparators(g, clip, myMarkupModel); paintText(g, clip); paintSegmentHighlightersBorderAndAfterEndOfLine(g, clip); BorderEffect borderEffect = new BorderEffect(this, g); borderEffect.paintHighlighters(getHighlighter()); if (docMarkup != null) { borderEffect.paintHighlighters(docMarkup.getAllHighlighters()); } borderEffect.paintHighlighters((getMarkupModel()).getAllHighlighters()); paintCaretCursor(g); paintComposedTextDecoration((Graphics2D)g); }