mirror of
https://github.com/Ellpeck/MLEM.git
synced 2024-11-25 05:58:35 +01:00
Fixed TextInput and Slider still reacting to input when they are selected, but not part of the active root
This commit is contained in:
parent
b289bbd98e
commit
230f2e954c
4 changed files with 10 additions and 3 deletions
|
@ -44,6 +44,7 @@ Fixes
|
||||||
- Fixed images not updating their hidden state properly when the displayed texture changes
|
- Fixed images not updating their hidden state properly when the displayed texture changes
|
||||||
- Fixed AutoInline elements overflowing into their parent if it's taller
|
- Fixed AutoInline elements overflowing into their parent if it's taller
|
||||||
- Fixed Paragraph and Checkbox not reacting to SquishingGroup sizing properly
|
- Fixed Paragraph and Checkbox not reacting to SquishingGroup sizing properly
|
||||||
|
- Fixed TextInput and Slider still reacting to input when they are selected, but not part of the active root
|
||||||
|
|
||||||
## 6.1.0
|
## 6.1.0
|
||||||
|
|
||||||
|
|
|
@ -320,9 +320,15 @@ namespace MLEM.Ui.Elements {
|
||||||
public bool IsMouseOver => this.Controls.MousedElement == this || this.Controls.TouchedElement == this;
|
public bool IsMouseOver => this.Controls.MousedElement == this || this.Controls.TouchedElement == this;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns whether this element is its <see cref="Root"/>'s <see cref="RootElement.SelectedElement"/>.
|
/// Returns whether this element is its <see cref="Root"/>'s <see cref="RootElement.SelectedElement"/>.
|
||||||
|
/// Note that, unlike <see cref="IsSelectedActive"/>, this property will be <see langword="true"/> even if this element's <see cref="Root"/> is not the <see cref="UiControls.ActiveRoot"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool IsSelected => this.Root.SelectedElement == this;
|
public bool IsSelected => this.Root.SelectedElement == this;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// Returns whether this element is its <see cref="Controls"/>'s <see cref="UiControls.SelectedElement"/>.
|
||||||
|
/// Note that <see cref="IsSelected"/> can be used to query whether this element is its <see cref="Root"/>'s <see cref="RootElement.SelectedElement"/> instead.
|
||||||
|
/// </summary>
|
||||||
|
public bool IsSelectedActive => this.Controls.SelectedElement == this;
|
||||||
|
/// <summary>
|
||||||
/// Returns whether this element's <see cref="SetAreaDirty"/> method has been recently called and its area has not been updated since then using <see cref="UpdateAreaIfDirty"/> or <see cref="ForceUpdateArea"/>.
|
/// Returns whether this element's <see cref="SetAreaDirty"/> method has been recently called and its area has not been updated since then using <see cref="UpdateAreaIfDirty"/> or <see cref="ForceUpdateArea"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool AreaDirty { get; private set; }
|
public bool AreaDirty { get; private set; }
|
||||||
|
|
|
@ -29,7 +29,7 @@ namespace MLEM.Ui.Elements {
|
||||||
public override void Update(GameTime time) {
|
public override void Update(GameTime time) {
|
||||||
base.Update(time);
|
base.Update(time);
|
||||||
|
|
||||||
if (this.IsSelected) {
|
if (this.IsSelectedActive) {
|
||||||
if (this.CurrentValue > 0 && this.Controls.LeftButtons.TryConsumePressed(this.Input, this.Controls.GamepadIndex)) {
|
if (this.CurrentValue > 0 && this.Controls.LeftButtons.TryConsumePressed(this.Input, this.Controls.GamepadIndex)) {
|
||||||
this.CurrentValue -= this.StepPerScroll;
|
this.CurrentValue -= this.StepPerScroll;
|
||||||
} else if (this.CurrentValue < this.MaxValue && this.Controls.RightButtons.TryConsumePressed(this.Input, this.Controls.GamepadIndex)) {
|
} else if (this.CurrentValue < this.MaxValue && this.Controls.RightButtons.TryConsumePressed(this.Input, this.Controls.GamepadIndex)) {
|
||||||
|
|
|
@ -192,7 +192,7 @@ namespace MLEM.Ui.Elements {
|
||||||
this.SetText(this.Multiline ? result : result.Replace('\n', ' '), true);
|
this.SetText(this.Multiline ? result : result.Replace('\n', ' '), true);
|
||||||
};
|
};
|
||||||
this.OnTextInput += (element, key, character) => {
|
this.OnTextInput += (element, key, character) => {
|
||||||
if (this.IsSelected && !this.IsHidden)
|
if (this.IsSelectedActive && !this.IsHidden)
|
||||||
this.textInput.OnTextInput(key, character);
|
this.textInput.OnTextInput(key, character);
|
||||||
};
|
};
|
||||||
this.OnDeselected += e => this.CaretPos = 0;
|
this.OnDeselected += e => this.CaretPos = 0;
|
||||||
|
@ -209,7 +209,7 @@ namespace MLEM.Ui.Elements {
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public override void Update(GameTime time) {
|
public override void Update(GameTime time) {
|
||||||
base.Update(time);
|
base.Update(time);
|
||||||
if (this.IsSelected && !this.IsHidden)
|
if (this.IsSelectedActive && !this.IsHidden)
|
||||||
this.textInput.Update(time, this.Input);
|
this.textInput.Update(time, this.Input);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue