Skip to content

Commit 8c322d1

Browse files
committed
labeled slider event fixes
1 parent 85e8259 commit 8c322d1

File tree

3 files changed

+31
-16
lines changed

3 files changed

+31
-16
lines changed

Intersect.Client.Framework/Gwen/Control/LabeledSlider.cs

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,23 @@ public LabeledSlider(Base parent, string? name = default) : base(parent: parent,
5454
if (_rounding > -1)
5555
{
5656
newValue = Math.Round(newValue, _rounding);
57-
_slider.SetValue(newValue, skipEvents: true);
5857
}
5958

59+
if (newValue.Equals(_sliderValue.Value))
60+
{
61+
return;
62+
}
63+
64+
_slider.SetValue(newValue, skipEvents: true);
6065
_sliderValue.SetValue(newValue, skipEvents: true);
61-
ValueChanged?.Invoke(sender, arguments);
66+
67+
ValueChanged?.Invoke(
68+
sender,
69+
new ValueChangedEventArgs<double>
70+
{
71+
Value = newValue,
72+
}
73+
);
6274
};
6375

6476
_sliderValue.TextChanged += (sender, _) =>
@@ -72,11 +84,12 @@ public LabeledSlider(Base parent, string? name = default) : base(parent: parent,
7284

7385
_slider.Value = clampedValue;
7486
_slider.SetValue(clampedValue, skipEvents: true);
87+
7588
ValueChanged?.Invoke(
7689
sender,
7790
new ValueChangedEventArgs<double>
7891
{
79-
Value = newValue,
92+
Value = clampedValue,
8093
}
8194
);
8295
};

Intersect.Client.Framework/Gwen/Control/Slider.cs

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,7 @@ protected override void Render(Skin.Base skin)
405405
);
406406
}
407407

408-
protected virtual void SetValueInternal(double newInternalValue, bool forceUpdate = false)
408+
protected virtual void SetValueInternal(double newInternalValue, bool forceUpdate = false, bool skipEvents = false)
409409
{
410410
if (_snapToNotches)
411411
{
@@ -430,13 +430,16 @@ protected virtual void SetValueInternal(double newInternalValue, bool forceUpdat
430430
if (!_value.Equals(newInternalValue))
431431
{
432432
_value = newInternalValue;
433-
ValueChanged?.Invoke(
434-
this,
435-
new ValueChangedEventArgs<double>
436-
{
437-
Value = ScaleValueToExternal(newInternalValue),
438-
}
439-
);
433+
if (!skipEvents)
434+
{
435+
ValueChanged?.Invoke(
436+
this,
437+
new ValueChangedEventArgs<double>
438+
{
439+
Value = ScaleValueToExternal(newInternalValue),
440+
}
441+
);
442+
}
440443
}
441444
else if (!forceUpdate)
442445
{
@@ -557,7 +560,7 @@ public void SetValue(double value, bool skipEvents = false)
557560
}
558561

559562
var normalizedValue = (value - _minimumValue) / Math.Max(1, _maximumValue - _minimumValue);
560-
SetValueInternal(normalizedValue);
563+
SetValueInternal(normalizedValue, skipEvents: skipEvents);
561564
Redraw();
562565
}
563566
}

Intersect.Client.Framework/Gwen/Control/TextBoxNumeric.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ namespace Intersect.Client.Framework.Gwen.Control;
88
/// </summary>
99
public partial class TextBoxNumeric : TextBox, INumericInput
1010
{
11-
12-
protected double _value;
11+
private double _value;
1312

1413
private double _maximum = double.NaN;
1514
private double _minimum = double.NaN;
@@ -158,7 +157,7 @@ public override void SetText(string? text, bool doEvents = true)
158157
}
159158
}
160159

161-
public virtual void SetValue(double value, bool skipEvents = false)
160+
public void SetValue(double value, bool skipEvents = false)
162161
{
163162
var clampedValue = value;
164163

@@ -180,7 +179,7 @@ public virtual void SetValue(double value, bool skipEvents = false)
180179
}
181180

182181
_value = clampedValue;
183-
Text = clampedValue.ToString(CultureInfo.CurrentCulture);
182+
SetText(text: clampedValue.ToString(CultureInfo.CurrentCulture), doEvents: !skipEvents);
184183

185184
if (skipEvents)
186185
{

0 commit comments

Comments
 (0)