minor bug fixes

This commit is contained in:
斟酌 鵬兄 2016-04-05 06:05:53 +08:00
parent 11dbf01ddf
commit 3ed8135791
3 changed files with 18 additions and 6 deletions

View File

@ -45,6 +45,13 @@
var cur = this.__cursor; var cur = this.__cursor;
var feeder = cur.feeder; var feeder = cur.feeder;
// Do nothing if content is considered empty
if( feeder.firstBuffer.next.placeholder && feeder.content.length < 2 )
{
debug.Info( "Content is empty" );
return true;
}
var Triggered = false; var Triggered = false;
if( sp == undefined ) if( sp == undefined )
@ -134,7 +141,8 @@
} }
} }
var c = feeder.content; // last "\n" padding
var c = feeder.content.slice( 0, -1 );
var s = sp; var s = sp;
var e = cur.aPos; var e = cur.aPos;
@ -151,6 +159,7 @@
this.__nline = occurence( removed, "\n" ); this.__nline = occurence( removed, "\n" );
feeder.content = c.substring( 0, s ) + c.substring( e + 1 ); feeder.content = c.substring( 0, s ) + c.substring( e + 1 );
if( feeder.content === "" ) feeder.content = "\n";
// Try to keep the original panning if possible // Try to keep the original panning if possible
feeder.pan( undefined feeder.pan( undefined

View File

@ -110,9 +110,7 @@
var oY = feeder.panY + cur.Y; var oY = feeder.panY + cur.Y;
if( cur.X == 0 && feeder.panY == 0 && cur.Y == 0 ) return; if( cur.X == 0 && feeder.panY == 0 && cur.Y == 0 ) return;
cur.moveX( -1, true, true ); var f = cur.aPos - 1;
var f = cur.aPos;
if( this.__punch <= this.__minReach ) if( this.__punch <= this.__minReach )
{ {
@ -123,6 +121,10 @@
feeder.content.substring( 0, f ) feeder.content.substring( 0, f )
+ feeder.content.substring( f + 1 ); + feeder.content.substring( f + 1 );
feeder.pan();
cur.moveX( -1, true, true );
if( 0 < this.__insertLen ) this.__insertLen --; if( 0 < this.__insertLen ) this.__insertLen --;
this.__punch --; this.__punch --;
} }
@ -135,10 +137,11 @@
feeder.content = feeder.content =
feeder.content.substring( 0, f ) feeder.content.substring( 0, f )
+ feeder.content.substring( f + 1 ); + feeder.content.substring( f + 1 );
feeder.pan();
} }
else return; else return;
feeder.pan();
feeder.dispatcher.dispatchEvent( new BotanEvent( "VisualUpdate" ) ); feeder.dispatcher.dispatchEvent( new BotanEvent( "VisualUpdate" ) );
}; };

View File

@ -217,7 +217,7 @@
if( boundary ) if( boundary )
{ {
x = 0 < d ? lineEnd : 0; x = 0 < x ? lineEnd : 0;
} }
else if( c == "\n" ) else if( c == "\n" )
{ {