diff --git a/Source/Editor/Utilities/Utils.cs b/Source/Editor/Utilities/Utils.cs
index 5fdaae91a..74ffb721b 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;
@@ -754,10 +755,25 @@ namespace FlaxEditor.Utilities
};
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.IsReadOnly = true;
+ sourceTextBox.IsMultilineScrollable = false;
+ sourceTextBox.IsScrollable = true;
+
+ backPanel.SizeChanged += control => { sourceTextBox.Width = (control.Size.X >= sourceTextBox.TextSize.X) ? control.Width : sourceTextBox.TextSize.X + 30; };
dialog.Show();
dialog.Focus();
diff --git a/Source/Engine/UI/GUI/Common/TextBoxBase.cs b/Source/Engine/UI/GUI/Common/TextBoxBase.cs
index d78bd3d6b..340459c8f 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 (eg. with a mouse wheel).
+ ///
+ public bool IsMultilineScrollable { 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 && IsMultilineScrollable)
{
TargetViewOffset = Float2.Clamp(_targetViewOffset - new Float2(0, delta * 10.0f), Float2.Zero, new Float2(_targetViewOffset.X, _textSize.Y));
return true;