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 - linux
- osx - osx
mono: mono:
- latest - 4.4.2
script: script:
- ./build.sh --target "Travis" --platform "Mono" --configuration "Release" - ./build.sh --target "Travis" --platform "Mono" --configuration "Release"
notifications: notifications:

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

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

29
src/Avalonia.Controls/TextBox.cs

@ -393,8 +393,20 @@ namespace Avalonia.Controls
if (!DeleteSelection() && CaretIndex > 0) if (!DeleteSelection() && CaretIndex > 0)
{ {
SetTextInternal(text.Substring(0, caretIndex - 1) + text.Substring(caretIndex)); var removedCharacters = 1;
--CaretIndex; // 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; break;
@ -407,7 +419,18 @@ namespace Avalonia.Controls
if (!DeleteSelection() && caretIndex < text.Length) 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; break;

Loading…
Cancel
Save