@@ -125,6 +125,7 @@ private void init(Context context) {
125125 public void setText (CharSequence text , BufferType type ) {
126126 super .setText (text , type );
127127 mNeedUpdateLineNumber = true ;
128+ mPreLineCount = -1 ;
128129 }
129130
130131 @ Override
@@ -153,7 +154,6 @@ public EditorTheme getEditorTheme() {
153154 protected void onDraw (Canvas canvas ) {
154155 super .onDraw (canvas );
155156
156-
157157 drawLineNumber (canvas );
158158 }
159159
@@ -295,9 +295,10 @@ private void drawLineNumber(Canvas canvas) {
295295
296296 List <TextLineNumber .LineInfo > lines = mLineManager .getTextLineNumber ().getLines ();
297297 int x = mLayoutContext .getLineNumberX () + getScrollX ();
298+ int paddingTop = getPaddingTop ();
298299 Paint paint = mLayoutContext .getGutterForegroundPaint ();
299300 for (TextLineNumber .LineInfo line : lines ) {
300- canvas .drawText (line .getText (), x , line .getY (), paint );
301+ canvas .drawText (line .getText (), x , line .getY () + paddingTop , paint );
301302 }
302303 }
303304
@@ -368,7 +369,7 @@ public void setTextSize(int unit, float size) {
368369 @ Override
369370 protected void onTextChanged (CharSequence text , int start , int lengthBefore , int lengthAfter ) {
370371 super .onTextChanged (text , start , lengthBefore , lengthAfter );
371- setNeedUpdateLineNumber ( true );
372+ updateLineNumberCount ( start );
372373 }
373374
374375 /**
@@ -400,7 +401,7 @@ private void updateLayoutContext() {
400401 private void updateGutterSize () {
401402 int numberPadding = SysUtils .dpToPixels (getContext (), 2 );
402403
403- float textWidth = mLayoutContext .getGutterForegroundPaint ().measureText (" " );
404+ float textWidth = mLayoutContext .getGutterForegroundPaint ().measureText ("8 " );
404405 //plus 1 for some case: log(100) = 2, but we need 3
405406 double columnCount = Math .ceil (Math .log10 (mLineManager .getRealLineCount () + 1 )) + 1 ;
406407 mLayoutContext .setGutterWidth (((int ) (textWidth * columnCount )) + numberPadding * 2 /*Left and right*/ );
@@ -411,8 +412,4 @@ private void updateGutterSize() {
411412 setPadding (newPaddingLeft , getPaddingTop (), getPaddingRight (), getPaddingBottom ());
412413 }
413414
414- public void setNeedUpdateLineNumber (boolean needUpdateLineNumber ) {
415- mNeedUpdateLineNumber = needUpdateLineNumber ;
416- mPreLineCount = -1 ;
417- }
418415}
0 commit comments