fix delete behaviour
This commit is contained in:
parent
30157f1f5d
commit
e2022ef80e
|
|
@ -172,85 +172,84 @@ public static class KeyHelper
|
||||||
Add(Key.NumLock);
|
Add(Key.NumLock);
|
||||||
Add(Key.Scroll);
|
Add(Key.Scroll);
|
||||||
Add(Key.LeftShift);
|
Add(Key.LeftShift);
|
||||||
Add(Key.RightShift);
|
Add(Key.RightShift);
|
||||||
Add(Key.LeftCtrl);
|
Add(Key.LeftCtrl);
|
||||||
Add(Key.RightCtrl);
|
Add(Key.RightCtrl);
|
||||||
Add(Key.LeftAlt);
|
Add(Key.LeftAlt);
|
||||||
Add(Key.RightAlt);
|
Add(Key.RightAlt);
|
||||||
Add(Key.BrowserBack);
|
Add(Key.BrowserBack);
|
||||||
Add(Key.BrowserForward);
|
Add(Key.BrowserForward);
|
||||||
Add(Key.BrowserRefresh);
|
Add(Key.BrowserRefresh);
|
||||||
Add(Key.BrowserStop);
|
Add(Key.BrowserStop);
|
||||||
Add(Key.BrowserSearch);
|
Add(Key.BrowserSearch);
|
||||||
Add(Key.BrowserFavorites);
|
Add(Key.BrowserFavorites);
|
||||||
Add(Key.BrowserHome);
|
Add(Key.BrowserHome);
|
||||||
Add(Key.VolumeMute);
|
Add(Key.VolumeMute);
|
||||||
Add(Key.VolumeDown);
|
Add(Key.VolumeDown);
|
||||||
Add(Key.VolumeUp);
|
Add(Key.VolumeUp);
|
||||||
Add(Key.MediaNextTrack);
|
Add(Key.MediaNextTrack);
|
||||||
Add(Key.MediaPreviousTrack);
|
Add(Key.MediaPreviousTrack);
|
||||||
Add(Key.MediaStop);
|
Add(Key.MediaStop);
|
||||||
Add(Key.MediaPlayPause);
|
Add(Key.MediaPlayPause);
|
||||||
Add(Key.LaunchMail);
|
Add(Key.LaunchMail);
|
||||||
Add(Key.SelectMedia);
|
Add(Key.SelectMedia);
|
||||||
Add(Key.LaunchApplication1);
|
Add(Key.LaunchApplication1);
|
||||||
Add(Key.LaunchApplication2);
|
Add(Key.LaunchApplication2);
|
||||||
Add(Key.Oem1, 'ü', 'Ü');
|
Add(Key.Oem1, 'ü', 'Ü');
|
||||||
Add(Key.OemSemicolon, ',', ';');
|
Add(Key.OemSemicolon, ',', ';');
|
||||||
Add(Key.OemPlus, '+', '*', '~');
|
Add(Key.OemPlus, '+', '*', '~');
|
||||||
Add(Key.OemComma, ',', ';');
|
Add(Key.OemComma, ',', ';');
|
||||||
Add(Key.OemMinus, '-', '_');
|
Add(Key.OemMinus, '-', '_');
|
||||||
Add(Key.OemPeriod, '.', ':');
|
Add(Key.OemPeriod, '.', ':');
|
||||||
Add(Key.Oem2);
|
Add(Key.Oem2);
|
||||||
Add(Key.OemQuestion, '#', '\'');
|
Add(Key.OemQuestion, '#', '\'');
|
||||||
Add(Key.Oem3, 'ö', 'Ö');
|
Add(Key.Oem3, 'ö', 'Ö');
|
||||||
Add(Key.OemTilde);
|
Add(Key.OemTilde);
|
||||||
Add(Key.AbntC1);
|
Add(Key.AbntC1);
|
||||||
Add(Key.AbntC2);
|
Add(Key.AbntC2);
|
||||||
Add(Key.Oem4);
|
Add(Key.Oem4);
|
||||||
Add(Key.OemOpenBrackets);
|
Add(Key.OemOpenBrackets);
|
||||||
Add(Key.Oem5, '^', '°');
|
Add(Key.Oem5, '^', '°');
|
||||||
Add(Key.OemPipe);
|
Add(Key.OemPipe);
|
||||||
Add(Key.Oem6, '´', '`');
|
Add(Key.Oem6, '´', '`');
|
||||||
Add(Key.OemCloseBrackets);
|
Add(Key.OemCloseBrackets);
|
||||||
Add(Key.Oem7, 'ß', '?');
|
Add(Key.Oem7);
|
||||||
Add(Key.OemQuotes, 'ä', 'Ä');
|
Add(Key.OemQuotes, 'ä', 'Ä');
|
||||||
Add(Key.Oem8);
|
Add(Key.Oem8);
|
||||||
Add(Key.Oem102);
|
Add(Key.Oem102);
|
||||||
Add(Key.OemBackslash, '<', '>', '|');
|
Add(Key.OemBackslash, '<', '>', '|');
|
||||||
Add(Key.ImeProcessed);
|
Add(Key.ImeProcessed);
|
||||||
Add(Key.System);
|
Add(Key.System);
|
||||||
Add(Key.DbeAlphanumeric);
|
Add(Key.DbeAlphanumeric);
|
||||||
Add(Key.OemAttn);
|
Add(Key.OemAttn);
|
||||||
Add(Key.DbeKatakana);
|
Add(Key.DbeKatakana);
|
||||||
Add(Key.OemFinish);
|
Add(Key.OemFinish);
|
||||||
Add(Key.DbeHiragana);
|
Add(Key.DbeHiragana);
|
||||||
Add(Key.OemCopy);
|
Add(Key.OemCopy);
|
||||||
Add(Key.DbeSbcsChar);
|
Add(Key.DbeSbcsChar);
|
||||||
Add(Key.OemAuto);
|
Add(Key.OemAuto);
|
||||||
Add(Key.DbeDbcsChar);
|
Add(Key.DbeDbcsChar);
|
||||||
Add(Key.OemEnlw);
|
Add(Key.OemEnlw);
|
||||||
Add(Key.DbeRoman);
|
Add(Key.DbeRoman);
|
||||||
Add(Key.OemBackTab);
|
Add(Key.OemBackTab);
|
||||||
Add(Key.Attn);
|
Add(Key.Attn);
|
||||||
Add(Key.DbeNoRoman);
|
Add(Key.DbeNoRoman);
|
||||||
Add(Key.CrSel);
|
Add(Key.CrSel);
|
||||||
Add(Key.DbeEnterWordRegisterMode);
|
Add(Key.DbeEnterWordRegisterMode);
|
||||||
Add(Key.DbeEnterImeConfigureMode);
|
Add(Key.DbeEnterImeConfigureMode);
|
||||||
Add(Key.ExSel);
|
Add(Key.ExSel);
|
||||||
Add(Key.DbeFlushString);
|
Add(Key.DbeFlushString);
|
||||||
Add(Key.EraseEof);
|
Add(Key.EraseEof);
|
||||||
Add(Key.DbeCodeInput);
|
Add(Key.DbeCodeInput);
|
||||||
Add(Key.Play);
|
Add(Key.Play);
|
||||||
Add(Key.DbeNoCodeInput);
|
Add(Key.DbeNoCodeInput);
|
||||||
Add(Key.Zoom);
|
Add(Key.Zoom);
|
||||||
Add(Key.DbeDetermineString);
|
Add(Key.DbeDetermineString);
|
||||||
Add(Key.NoName);
|
Add(Key.NoName);
|
||||||
Add(Key.DbeEnterDialogConversionMode);
|
Add(Key.DbeEnterDialogConversionMode);
|
||||||
Add(Key.Pa1);
|
Add(Key.Pa1);
|
||||||
Add(Key.OemClear);
|
Add(Key.OemClear);
|
||||||
Add(Key.DeadCharProcessed);
|
Add(Key.DeadCharProcessed);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void Add(Key key, params char[] chars)
|
private static void Add(Key key, params char[] chars)
|
||||||
|
|
|
||||||
|
|
@ -11,20 +11,35 @@
|
||||||
Title="MainWindow" Height="450" Width="800">
|
Title="MainWindow" Height="450" Width="800">
|
||||||
<Grid>
|
<Grid>
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="50" />
|
|
||||||
<ColumnDefinition Width="*" />
|
<ColumnDefinition Width="*" />
|
||||||
|
<ColumnDefinition Width="5*" />
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
<Grid Grid.Column="1">
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="5*" />
|
||||||
|
<RowDefinition Height="*" />
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<Grid Grid.Row="0">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="32" />
|
||||||
|
<ColumnDefinition Width="*" />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<ListBox Grid.Column="0"
|
<ListBox Grid.Column="0"
|
||||||
ItemsSource="{Binding Lines.Count}"
|
ItemsSource="{Binding Lines.Count}"
|
||||||
IsHitTestVisible="False"
|
IsHitTestVisible="False"
|
||||||
Background="#252525" Foreground="#707070"
|
Background="#242628"
|
||||||
BorderThickness="0"
|
Foreground="#969696"
|
||||||
Padding="0,0,5,0"
|
BorderThickness="0"
|
||||||
VerticalContentAlignment="Top"
|
Padding="0,0,5,0"
|
||||||
HorizontalContentAlignment="Right"/>
|
VerticalContentAlignment="Top"
|
||||||
|
HorizontalContentAlignment="Right"/>
|
||||||
|
|
||||||
<controls:EditorFrame Grid.Column="1" />
|
<controls:EditorFrame Grid.Column="1" />
|
||||||
|
</Grid>
|
||||||
|
<Grid Grid.Row="1" Background="#161718">
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Window>
|
</Window>
|
||||||
|
|
|
||||||
|
|
@ -89,21 +89,20 @@ public class EditorFrameViewModel : ObservableObject
|
||||||
CurrentLineBuffer.Slice(0));
|
CurrentLineBuffer.Slice(0));
|
||||||
Lines.RemoveAt(CursorLine);
|
Lines.RemoveAt(CursorLine);
|
||||||
SetCursor(CursorLine - 1, position);
|
SetCursor(CursorLine - 1, position);
|
||||||
return;
|
} else {
|
||||||
} else
|
|
||||||
MoveCursor(0, -count);
|
MoveCursor(0, -count);
|
||||||
|
CurrentLineBuffer.Delete(CursorColumn, count);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if (CursorColumn + count >= CurrentLineBuffer.Tail &&
|
if (CursorColumn + count > CurrentLineBuffer.Tail &&
|
||||||
CursorLine < Lines.Count - 1) {
|
CursorLine < Lines.Count - 1) {
|
||||||
CurrentLineBuffer.Insert(
|
CurrentLineBuffer.Insert(
|
||||||
CurrentLineBuffer.Tail,
|
CurrentLineBuffer.Tail,
|
||||||
Lines[CursorLine + 1].Slice(0));
|
Lines[CursorLine + 1].Slice(0));
|
||||||
Lines.RemoveAt(CursorLine + 1);
|
Lines.RemoveAt(CursorLine + 1);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
CurrentLineBuffer.Delete(CursorColumn, count);
|
||||||
}
|
}
|
||||||
|
|
||||||
CurrentLineBuffer.Delete(CursorColumn, count);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
|
|
@ -82,11 +82,7 @@ public abstract class TailBuffer<T> : ICloneable
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
protected virtual void SetTail(int tail)
|
||||||
/// Sets the tail, or, if omitted, seeks the tail by finding the first null terminator.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="tail"></param>
|
|
||||||
protected virtual void SetTail(int tail = -1)
|
|
||||||
{
|
{
|
||||||
Tail = tail;
|
Tail = tail;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue