From cf3bdf8507f86a8e5d6d4c6f9818c42feef3d82c Mon Sep 17 00:00:00 2001 From: Rayyan Tahir Date: Tue, 3 Jul 2018 17:31:44 +0500 Subject: [PATCH 1/4] When TextBox IsReadOnly property is true, no need to show caret. --- samples/ControlCatalog/Pages/TextBoxPage.xaml | 1 + src/Avalonia.Controls/TextBox.cs | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/samples/ControlCatalog/Pages/TextBoxPage.xaml b/samples/ControlCatalog/Pages/TextBoxPage.xaml index fb0d8fb7b1..96c1665afe 100644 --- a/samples/ControlCatalog/Pages/TextBoxPage.xaml +++ b/samples/ControlCatalog/Pages/TextBoxPage.xaml @@ -9,6 +9,7 @@ Gap="16"> + Date: Wed, 4 Jul 2018 12:11:57 +0500 Subject: [PATCH 2/4] Moved caret visibility decision to helper method and called that method in OnTemplateApplied also --- src/Avalonia.Controls/TextBox.cs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/Avalonia.Controls/TextBox.cs b/src/Avalonia.Controls/TextBox.cs index a4c6a6cdf7..ec32326cd9 100644 --- a/src/Avalonia.Controls/TextBox.cs +++ b/src/Avalonia.Controls/TextBox.cs @@ -262,7 +262,7 @@ namespace Avalonia.Controls if (IsFocused) { - _presenter.ShowCaret(); + DecideCaretVisibility(); } } @@ -282,15 +282,20 @@ namespace Avalonia.Controls } else { - if (!IsReadOnly) - _presenter?.ShowCaret(); - else - _presenter?.HideCaret(); + DecideCaretVisibility(); } e.Handled = true; } + private void DecideCaretVisibility() + { + if (!IsReadOnly || IsReadOnlyCaretVisible) + _presenter?.ShowCaret(); + else + _presenter?.HideCaret(); + } + protected override void OnLostFocus(RoutedEventArgs e) { base.OnLostFocus(e); From 387de6a3f70e3eb87256b29d0ccc4d94555d126d Mon Sep 17 00:00:00 2001 From: "rayyantahir2010@hotmail.com" Date: Wed, 4 Jul 2018 12:29:08 +0500 Subject: [PATCH 3/4] Fix build failure --- src/Avalonia.Controls/TextBox.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Avalonia.Controls/TextBox.cs b/src/Avalonia.Controls/TextBox.cs index ec32326cd9..f5900f99e4 100644 --- a/src/Avalonia.Controls/TextBox.cs +++ b/src/Avalonia.Controls/TextBox.cs @@ -124,7 +124,7 @@ namespace Avalonia.Controls ScrollViewer.HorizontalScrollBarVisibilityProperty, horizontalScrollBarVisibility, BindingPriority.Style); - _undoRedoHelper = new UndoRedoHelper(this); + _undoRedoHelper = new UndoRedoHelper(this); } public bool AcceptsReturn @@ -290,7 +290,7 @@ namespace Avalonia.Controls private void DecideCaretVisibility() { - if (!IsReadOnly || IsReadOnlyCaretVisible) + if (!IsReadOnly) _presenter?.ShowCaret(); else _presenter?.HideCaret(); From 33172127cc04025fb4e6e567d357706a68b367d2 Mon Sep 17 00:00:00 2001 From: "rayyantahir2010@hotmail.com" <=> Date: Wed, 4 Jul 2018 12:54:54 +0500 Subject: [PATCH 4/4] Added the ability to copy from a readonly textbox --- samples/ControlCatalog/Pages/TextBoxPage.xaml | 2 +- src/Avalonia.Controls/Presenters/TextPresenter.cs | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/samples/ControlCatalog/Pages/TextBoxPage.xaml b/samples/ControlCatalog/Pages/TextBoxPage.xaml index 96c1665afe..a717518655 100644 --- a/samples/ControlCatalog/Pages/TextBoxPage.xaml +++ b/samples/ControlCatalog/Pages/TextBoxPage.xaml @@ -9,7 +9,7 @@ Gap="16"> - +