Browse Source

Merge branch 'master' into fixes/702_textbox_tab_focus_select_all_text

pull/745/head
robbieknuth 10 years ago
committed by GitHub
parent
commit
0e10b75fd3
  1. 2
      .travis.yml
  2. 2
      src/Avalonia.Controls/Presenters/TextPresenter.cs
  3. 29
      src/Avalonia.Controls/TextBox.cs

2
.travis.yml

@ -3,7 +3,7 @@ os:
- linux
- osx
mono:
- latest
- 4.4.2
script:
- ./build.sh --target "Travis" --platform "Mono" --configuration "Release"
notifications:

2
src/Avalonia.Controls/Presenters/TextPresenter.cs

@ -219,7 +219,7 @@ namespace Avalonia.Controls.Presenters
{
var text = Text;
if (!string.IsNullOrWhiteSpace(text))
if (!string.IsNullOrEmpty(text))
{
return base.MeasureOverride(availableSize);
}

29
src/Avalonia.Controls/TextBox.cs

@ -393,8 +393,20 @@ namespace Avalonia.Controls
if (!DeleteSelection() && CaretIndex > 0)
{
SetTextInternal(text.Substring(0, caretIndex - 1) + text.Substring(caretIndex));
--CaretIndex;
var removedCharacters = 1;
// handle deleting /r/n
// you don't ever want to leave a dangling /r around. So, if deleting /n, check to see if
// a /r should also be deleted.
if (CaretIndex > 1 &&
text[CaretIndex - 1] == '\n' &&
text[CaretIndex - 2] == '\r')
{
removedCharacters = 2;
}
SetTextInternal(text.Substring(0, caretIndex - removedCharacters) + text.Substring(caretIndex));
CaretIndex -= removedCharacters;
SelectionStart = SelectionEnd = CaretIndex;
}
break;
@ -407,7 +419,18 @@ namespace Avalonia.Controls
if (!DeleteSelection() && caretIndex < text.Length)
{
SetTextInternal(text.Substring(0, caretIndex) + text.Substring(caretIndex + 1));
var removedCharacters = 1;
// handle deleting /r/n
// you don't ever want to leave a dangling /r around. So, if deleting /n, check to see if
// a /r should also be deleted.
if (CaretIndex < text.Length - 1 &&
text[caretIndex + 1] == '\n' &&
text[caretIndex] == '\r')
{
removedCharacters = 2;
}
SetTextInternal(text.Substring(0, caretIndex) + text.Substring(caretIndex + removedCharacters));
}
break;

Loading…
Cancel
Save