diff --git a/src/Artemis.UI/Screens/Debugger/Tabs/Logs/LogsDebugView.axaml b/src/Artemis.UI/Screens/Debugger/Tabs/Logs/LogsDebugView.axaml
index 5a5c6d457..f41b9b272 100644
--- a/src/Artemis.UI/Screens/Debugger/Tabs/Logs/LogsDebugView.axaml
+++ b/src/Artemis.UI/Screens/Debugger/Tabs/Logs/LogsDebugView.axaml
@@ -2,13 +2,16 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:aedit="https://github.com/avaloniaui/avaloniaedit"
- xmlns:controls="clr-namespace:Artemis.UI.Controls"
xmlns:logs="clr-namespace:Artemis.UI.Screens.Debugger.Logs"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Artemis.UI.Screens.Debugger.Logs.LogsDebugView"
x:DataType="logs:LogsDebugViewModel">
-
+
\ No newline at end of file
diff --git a/src/Artemis.UI/Screens/Debugger/Tabs/Logs/LogsDebugView.axaml.cs b/src/Artemis.UI/Screens/Debugger/Tabs/Logs/LogsDebugView.axaml.cs
index 219215877..26d8ab003 100644
--- a/src/Artemis.UI/Screens/Debugger/Tabs/Logs/LogsDebugView.axaml.cs
+++ b/src/Artemis.UI/Screens/Debugger/Tabs/Logs/LogsDebugView.axaml.cs
@@ -10,50 +10,17 @@ namespace Artemis.UI.Screens.Debugger.Logs;
public partial class LogsDebugView : ReactiveUserControl
{
- private int _lineCount;
-
public LogsDebugView()
{
- _lineCount = 0;
InitializeComponent();
}
-
protected override void OnInitialized()
{
base.OnInitialized();
Dispatcher.UIThread.Post(() => LogsScrollViewer.ScrollToEnd(), DispatcherPriority.ApplicationIdle);
}
- // private void OnTextChanged(object? sender, EventArgs e)
- // {
- // if (LogTextEditor.ExtentHeight == 0)
- // return;
- //
- // int linesAdded = LogTextEditor.LineCount - _lineCount;
- // double lineHeight = LogTextEditor.ExtentHeight / LogTextEditor.LineCount;
- // double outOfScreenTextHeight = LogTextEditor.ExtentHeight - LogTextEditor.VerticalOffset - LogTextEditor.ViewportHeight;
- // double outOfScreenLines = outOfScreenTextHeight / lineHeight;
- //
- // //we need this help distance because of rounding.
- // //if we scroll slightly above the end, we still want it
- // //to scroll down to the new lines.
- // const double GRACE_DISTANCE = 1d;
- //
- // //if we were at the bottom of the log and
- // //if the last log event was 5 lines long
- // //we will be 5 lines out sync.
- // //if this is the case, scroll down.
- //
- // //if we are more than that out of sync,
- // //the user scrolled up and we should not
- // //mess with anything.
- // if (_lineCount == 0 || linesAdded + GRACE_DISTANCE > outOfScreenLines)
- // {
- // Dispatcher.UIThread.Post(() => LogTextEditor.ScrollToEnd(), DispatcherPriority.ApplicationIdle);
- // _lineCount = LogTextEditor.LineCount;
- // }
- // }
private void Control_OnSizeChanged(object? sender, SizeChangedEventArgs e)
{
if (!(LogsScrollViewer.Extent.Height - LogsScrollViewer.Offset.Y - LogsScrollViewer.Bounds.Bottom <= 60))
diff --git a/src/Artemis.UI/Screens/Debugger/Tabs/Logs/LogsDebugViewModel.cs b/src/Artemis.UI/Screens/Debugger/Tabs/Logs/LogsDebugViewModel.cs
index 4df1be54e..47309a3ad 100644
--- a/src/Artemis.UI/Screens/Debugger/Tabs/Logs/LogsDebugViewModel.cs
+++ b/src/Artemis.UI/Screens/Debugger/Tabs/Logs/LogsDebugViewModel.cs
@@ -7,7 +7,9 @@ using ReactiveUI;
using Serilog.Events;
using Serilog.Formatting.Display;
using System.IO;
+using System.Linq;
using System.Reactive.Disposables;
+using System.Text;
using Avalonia.Controls.Documents;
using Avalonia.Media;
@@ -54,8 +56,14 @@ public class LogsDebugViewModel : ActivatableViewModelBase
_formatter.Format(logEvent, writer);
string line = writer.ToString();
+ StringBuilder builder = new();
- Lines.Add(new Run(line.TrimEnd('\r', '\n') + '\n')
+ //hack: https://github.com/AvaloniaUI/Avalonia/issues/10913
+ string paddedLine2 = line.Split(Environment.NewLine, StringSplitOptions.RemoveEmptyEntries)
+ .Aggregate(builder, (sb, s) => sb.Append(s).Append(' ', 400 - s.Length).AppendLine())
+ .ToString();
+
+ Lines.Add(new Run(paddedLine2)
{
Foreground = logEvent.Level switch
{