Allows user to left click to end editing text and right click to change text back to its original and end editing.
This commit is contained in:
@@ -371,6 +371,7 @@ namespace FlaxEditor.GUI.Input
|
|||||||
Parent = this,
|
Parent = this,
|
||||||
Location = new Float2(split, 0),
|
Location = new Float2(split, 0),
|
||||||
Size = new Float2(Height, TextBoxSize),
|
Size = new Float2(Height, TextBoxSize),
|
||||||
|
CanEndEditByClick = true,
|
||||||
};
|
};
|
||||||
_textBox.EditEnd += OnTextBoxEditEnd;
|
_textBox.EditEnd += OnTextBoxEditEnd;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -125,6 +125,7 @@ namespace FlaxEditor.GUI.Input
|
|||||||
_min = min;
|
_min = min;
|
||||||
_max = max;
|
_max = max;
|
||||||
_slideSpeed = sliderSpeed;
|
_slideSpeed = sliderSpeed;
|
||||||
|
CanEndEditByClick = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -173,6 +174,7 @@ namespace FlaxEditor.GUI.Input
|
|||||||
private void EndSliding()
|
private void EndSliding()
|
||||||
{
|
{
|
||||||
_isSliding = false;
|
_isSliding = false;
|
||||||
|
CanEndEditByClick = true;
|
||||||
EndMouseCapture();
|
EndMouseCapture();
|
||||||
if (_cursorChanged)
|
if (_cursorChanged)
|
||||||
{
|
{
|
||||||
@@ -245,6 +247,7 @@ namespace FlaxEditor.GUI.Input
|
|||||||
_startSlideLocation = location;
|
_startSlideLocation = location;
|
||||||
_startSlideValue = _value;
|
_startSlideValue = _value;
|
||||||
StartMouseCapture(true);
|
StartMouseCapture(true);
|
||||||
|
CanEndEditByClick = false;
|
||||||
|
|
||||||
// Hide cursor and cache location
|
// Hide cursor and cache location
|
||||||
Cursor = CursorType.Hidden;
|
Cursor = CursorType.Hidden;
|
||||||
|
|||||||
@@ -139,6 +139,12 @@ namespace FlaxEngine.GUI
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public event Action<KeyboardKeys> KeyUp;
|
public event Action<KeyboardKeys> KeyUp;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets a value indicating whether the text box can end edit via left click outside of the control
|
||||||
|
/// </summary>
|
||||||
|
[HideInEditor]
|
||||||
|
public bool CanEndEditByClick { get; set; } = false;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets a value indicating whether this is a multiline text box control.
|
/// Gets or sets a value indicating whether this is a multiline text box control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -1041,6 +1047,26 @@ namespace FlaxEngine.GUI
|
|||||||
|
|
||||||
// Animate view offset
|
// Animate view offset
|
||||||
_viewOffset = isDeltaSlow ? _targetViewOffset : Float2.Lerp(_viewOffset, _targetViewOffset, deltaTime * 20.0f);
|
_viewOffset = isDeltaSlow ? _targetViewOffset : Float2.Lerp(_viewOffset, _targetViewOffset, deltaTime * 20.0f);
|
||||||
|
|
||||||
|
// Clicking outside of the text box will end text editing. Left will keep the value, right will restore original value
|
||||||
|
if (_isEditing && CanEndEditByClick)
|
||||||
|
{
|
||||||
|
if (!IsMouseOver && RootWindow.ContainsFocus)
|
||||||
|
{
|
||||||
|
if (Input.GetMouseButtonDown(MouseButton.Left))
|
||||||
|
{
|
||||||
|
RemoveFocus();
|
||||||
|
}
|
||||||
|
else if (Input.GetMouseButtonDown(MouseButton.Right))
|
||||||
|
{
|
||||||
|
// Restore text from start
|
||||||
|
SetSelection(-1);
|
||||||
|
_text = _onStartEditValue;
|
||||||
|
OnTextChanged();
|
||||||
|
RemoveFocus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
base.Update(deltaTime);
|
base.Update(deltaTime);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user