diff --git a/Source/Editor/Utilities/Utils.cs b/Source/Editor/Utilities/Utils.cs
index 5fdaae91a..0cf8238b1 100644
--- a/Source/Editor/Utilities/Utils.cs
+++ b/Source/Editor/Utilities/Utils.cs
@@ -738,9 +738,10 @@ namespace FlaxEditor.Utilities
var settings = CreateWindowSettings.Default;
settings.ActivateWhenFirstShown = true;
- settings.AllowMaximize = false;
+ settings.AllowMaximize = true;
settings.AllowMinimize = false;
- settings.HasSizingFrame = false;
+ settings.HasSizingFrame = true;
+ settings.HasBorder = true;
settings.StartPosition = WindowStartPosition.CenterParent;
settings.Size = new Float2(500, 600) * (parentWindow?.DpiScale ?? Platform.DpiScale);
settings.Parent = parentWindow;
@@ -753,12 +754,26 @@ namespace FlaxEditor.Utilities
Parent = dialog.GUI,
};
copyButton.Clicked += () => Clipboard.Text = source;
-
- var sourceTextBox = new TextBox(true, 2, copyButton.Bottom + 4, settings.Size.X - 4);
- sourceTextBox.Height = settings.Size.Y - sourceTextBox.Top - 2;
+
+ var backPanel = new Panel
+ {
+ AnchorPreset = AnchorPresets.StretchAll,
+ Offsets = new Margin(0, 0, copyButton.Bottom + 4, 0),
+ ScrollBars = ScrollBars.Both,
+ IsScrollable = true,
+ Parent = dialog.GUI,
+ };
+
+ var sourceTextBox = new TextBox(true, 0, 0, 0);
+ sourceTextBox.Parent = backPanel;
+ sourceTextBox.AnchorPreset = AnchorPresets.HorizontalStretchTop;
sourceTextBox.Text = source;
- sourceTextBox.Parent = dialog.GUI;
-
+ sourceTextBox.Height = sourceTextBox.TextSize.Y;
+ sourceTextBox.Width = sourceTextBox.TextSize.X;
+ sourceTextBox.TextChanged += () => sourceTextBox.Height = sourceTextBox.TextSize.Y;
+ sourceTextBox.CanScrollMultilineText = false;
+ sourceTextBox.IsScrollable = true;
+
dialog.Show();
dialog.Focus();
}
diff --git a/Source/Engine/UI/GUI/Common/TextBoxBase.cs b/Source/Engine/UI/GUI/Common/TextBoxBase.cs
index d78bd3d6b..50b5b0945 100644
--- a/Source/Engine/UI/GUI/Common/TextBoxBase.cs
+++ b/Source/Engine/UI/GUI/Common/TextBoxBase.cs
@@ -229,6 +229,11 @@ namespace FlaxEngine.GUI
[EditorOrder(529)]
public bool ClipText { get; set; } = true;
+ ///
+ /// Gets or sets a value indicating whether you can scroll the text in the text box
+ ///
+ public bool CanScrollMultilineText { get; set; } = true;
+
///
/// Gets or sets textbox background color when the control is selected (has focus).
///
@@ -1157,7 +1162,7 @@ namespace FlaxEngine.GUI
return true;
// Multiline scroll
- if (IsMultiline && _text.Length != 0)
+ if (IsMultiline && _text.Length != 0 && CanScrollMultilineText)
{
TargetViewOffset = Float2.Clamp(_targetViewOffset - new Float2(0, delta * 10.0f), Float2.Zero, new Float2(_targetViewOffset.X, _textSize.Y));
return true;