Merge branch '1.1' into 1.2
# Conflicts: # Source/Platforms/DotNet/Newtonsoft.Json.dll # Source/Platforms/DotNet/Newtonsoft.Json.pdb # Source/Platforms/UWP/Binaries/Newtonsoft.Json.dll # Source/Platforms/XboxOne/Binaries/Newtonsoft.Json.dll
This commit is contained in:
@@ -39,9 +39,6 @@ namespace FlaxEngine.GUI
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether use progress value smoothing.
|
||||
/// </summary>
|
||||
/// <value>
|
||||
/// <c>true</c> if use progress value smoothing; otherwise, <c>false</c>.
|
||||
/// </value>
|
||||
public bool UseSmoothing => !Mathf.IsZero(SmoothingScale);
|
||||
|
||||
/// <summary>
|
||||
@@ -91,8 +88,6 @@ namespace FlaxEngine.GUI
|
||||
if (!Mathf.NearEqual(value, _value))
|
||||
{
|
||||
_value = value;
|
||||
|
||||
// Check if skip smoothing
|
||||
if (!UseSmoothing)
|
||||
{
|
||||
_current = _value;
|
||||
@@ -138,22 +133,22 @@ namespace FlaxEngine.GUI
|
||||
/// <inheritdoc />
|
||||
public override void Update(float deltaTime)
|
||||
{
|
||||
bool isDeltaSlow = deltaTime > (1 / 20.0f);
|
||||
|
||||
// Ensure progress bar is visible
|
||||
if (Visible)
|
||||
{
|
||||
// Value smoothing
|
||||
var value = _value;
|
||||
if (Mathf.Abs(_current - _value) > 0.01f)
|
||||
{
|
||||
// Lerp or not if running slow
|
||||
float value;
|
||||
bool isDeltaSlow = deltaTime > (1 / 20.0f);
|
||||
if (!isDeltaSlow && UseSmoothing)
|
||||
value = Mathf.Lerp(_current, _value, Mathf.Saturate(deltaTime * 5.0f * SmoothingScale));
|
||||
else
|
||||
value = _value;
|
||||
_current = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
_current = _value;
|
||||
}
|
||||
}
|
||||
|
||||
base.Update(deltaTime);
|
||||
|
||||
@@ -274,7 +274,7 @@ namespace FlaxEngine.GUI
|
||||
public int GetChildIndexAt(Vector2 point)
|
||||
{
|
||||
int result = -1;
|
||||
for (int i = 0; i < _children.Count; i++)
|
||||
for (int i = _children.Count - 1; i >= 0; i--)
|
||||
{
|
||||
var child = _children[i];
|
||||
|
||||
@@ -296,7 +296,7 @@ namespace FlaxEngine.GUI
|
||||
public Control GetChildAt(Vector2 point)
|
||||
{
|
||||
Control result = null;
|
||||
for (int i = 0; i < _children.Count; i++)
|
||||
for (int i = _children.Count - 1; i >= 0; i--)
|
||||
{
|
||||
var child = _children[i];
|
||||
|
||||
@@ -322,7 +322,7 @@ namespace FlaxEngine.GUI
|
||||
throw new ArgumentNullException(nameof(isValid));
|
||||
|
||||
Control result = null;
|
||||
for (int i = 0; i < _children.Count; i++)
|
||||
for (int i = _children.Count - 1; i >= 0; i--)
|
||||
{
|
||||
var child = _children[i];
|
||||
|
||||
@@ -344,7 +344,7 @@ namespace FlaxEngine.GUI
|
||||
public Control GetChildAtRecursive(Vector2 point)
|
||||
{
|
||||
Control result = null;
|
||||
for (int i = 0; i < _children.Count; i++)
|
||||
for (int i = _children.Count - 1; i >= 0; i--)
|
||||
{
|
||||
var child = _children[i];
|
||||
|
||||
|
||||
@@ -73,13 +73,18 @@ namespace FlaxEngine.GUI
|
||||
Vector2 locationWS = target.PointToWindow(location);
|
||||
Vector2 locationSS = parentWin.PointToScreen(locationWS);
|
||||
Vector2 screenSize = Platform.VirtualDesktopSize;
|
||||
Vector2 parentWinLocationSS = parentWin.PointToScreen(Vector2.Zero);
|
||||
float parentWinRightSS = parentWinLocationSS.Y + parentWin.Size.Y;
|
||||
float parentWinBottomSS = parentWinLocationSS.X + parentWin.Size.X;
|
||||
Vector2 rightBottomLocationSS = locationSS + dpiSize;
|
||||
if (screenSize.Y < rightBottomLocationSS.Y)
|
||||
|
||||
// Prioritize tooltip placement within parent window, fall back to virtual desktop
|
||||
if (parentWinRightSS < rightBottomLocationSS.Y || screenSize.Y < rightBottomLocationSS.Y)
|
||||
{
|
||||
// Direction: up
|
||||
locationSS.Y -= dpiSize.Y;
|
||||
}
|
||||
if (screenSize.X < rightBottomLocationSS.X)
|
||||
if (parentWinBottomSS < rightBottomLocationSS.X || screenSize.X < rightBottomLocationSS.X)
|
||||
{
|
||||
// Direction: left
|
||||
locationSS.X -= dpiSize.X;
|
||||
@@ -155,7 +160,7 @@ namespace FlaxEngine.GUI
|
||||
/// <param name="dt">The delta time.</param>
|
||||
public void OnMouseOverControl(Control target, float dt)
|
||||
{
|
||||
if (!Visible)
|
||||
if (!Visible && _timeToPopupLeft > 0.0f)
|
||||
{
|
||||
_lastTarget = target;
|
||||
_timeToPopupLeft -= dt;
|
||||
|
||||
Reference in New Issue
Block a user