Skip to content

Commit

Permalink
Fixed UI hotkeys triggering actions while elements are disabled
Browse files Browse the repository at this point in the history
  • Loading branch information
tomcashman committed Nov 25, 2018
1 parent 1695bad commit 5e58958
Show file tree
Hide file tree
Showing 11 changed files with 55 additions and 0 deletions.
1 change: 1 addition & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
[1.8.2-SNAPSHOT]
- Fixed UI hotkeys triggering actions while elements are disabled

[1.8.1]
- [BREAKING] TileMergeMode modes renamed to Y_THEN_X, X_THEN_X and SQUARE
Expand Down
12 changes: 12 additions & 0 deletions ui/src/main/java/org/mini2Dx/ui/UiContainer.java
Original file line number Diff line number Diff line change
Expand Up @@ -504,6 +504,9 @@ public boolean buttonDown(ControllerUiInput<?> controllerUiInput, ControllerButt
receivedButtonDowns.add(button.getAbsoluteValue());
ActionableRenderNode hotkeyAction = activeNavigation.hotkey(button);
if (hotkeyAction != null) {
if(!hotkeyAction.isEnabled()) {
return true;
}
ControllerEventTriggerParams params = EventTriggerParamsPool.allocateControllerParams();
params.setControllerButton(button);
hotkeyAction.setState(NodeState.ACTION);
Expand Down Expand Up @@ -541,6 +544,9 @@ public boolean buttonUp(ControllerUiInput<?> controllerUiInput, ControllerButton
}
ActionableRenderNode hotkeyAction = activeNavigation.hotkey(button);
if (hotkeyAction != null) {
if(!hotkeyAction.isEnabled()) {
return true;
}
ControllerEventTriggerParams params = EventTriggerParamsPool.allocateControllerParams();
params.setControllerButton(button);
hotkeyAction.setState(NodeState.ACTION);
Expand Down Expand Up @@ -580,6 +586,9 @@ private boolean handleModalKeyDown(int keycode) {
}
}
} else {
if(!hotkeyAction.isEnabled()) {
return true;
}
KeyboardEventTriggerParams params = EventTriggerParamsPool.allocateKeyboardParams();
params.setKey(keycode);
hotkeyAction.setState(NodeState.ACTION);
Expand All @@ -595,6 +604,9 @@ private boolean handleModalKeyUp(int keycode) {
}
ActionableRenderNode hotkeyAction = activeNavigation.hotkey(keycode);
if (hotkeyAction != null) {
if(!hotkeyAction.isEnabled()) {
return true;
}
KeyboardEventTriggerParams params = EventTriggerParamsPool.allocateKeyboardParams();
params.setKey(keycode);
hotkeyAction.setState(NodeState.NORMAL);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,6 @@ public interface ActionableRenderNode extends HoverableRenderNode {
public NodeState getState();

public void setState(NodeState state);

public boolean isEnabled();
}
5 changes: 5 additions & 0 deletions ui/src/main/java/org/mini2Dx/ui/render/ButtonRenderNode.java
Original file line number Diff line number Diff line change
Expand Up @@ -115,4 +115,9 @@ public void beginAction(EventTrigger eventTrigger, EventTriggerParams eventTrigg
public void endAction(EventTrigger eventTrigger, EventTriggerParams eventTriggerParams) {
element.notifyActionListenersOfEndEvent(eventTrigger, eventTriggerParams);
}

@Override
public boolean isEnabled() {
return element.isEnabled();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -201,4 +201,9 @@ protected float determineYOffset(LayoutState layoutState) {
}
}

@Override
public boolean isEnabled() {
return element.isEnabled();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -125,4 +125,9 @@ public boolean mouseMoved(int screenX, int screenY) {
}
return super.mouseMoved(screenX, screenY);
}

@Override
public boolean isEnabled() {
return element.isEnabled();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -418,4 +418,9 @@ protected float determineYOffset(LayoutState layoutState) {
return element.getY();
}
}

@Override
public boolean isEnabled() {
return element.isEnabled();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -509,4 +509,9 @@ public float getBoxHeight() {
public float getScrollContentHeight() {
return contentHeight;
}

@Override
public boolean isEnabled() {
return true;
}
}
5 changes: 5 additions & 0 deletions ui/src/main/java/org/mini2Dx/ui/render/SelectRenderNode.java
Original file line number Diff line number Diff line change
Expand Up @@ -424,4 +424,9 @@ protected SelectStyleRule determineStyleRule(LayoutState layoutState) {
}
return selectStyleRule;
}

@Override
public boolean isEnabled() {
return element.isEnabled();
}
}
5 changes: 5 additions & 0 deletions ui/src/main/java/org/mini2Dx/ui/render/SliderRenderNode.java
Original file line number Diff line number Diff line change
Expand Up @@ -308,4 +308,9 @@ protected float determineYOffset(LayoutState layoutState) {
return element.getY();
}
}

@Override
public boolean isEnabled() {
return element.isEnabled();
}
}
5 changes: 5 additions & 0 deletions ui/src/main/java/org/mini2Dx/ui/render/TextBoxRenderNode.java
Original file line number Diff line number Diff line change
Expand Up @@ -474,4 +474,9 @@ public void setState(NodeState state) {
public LayoutRuleset getLayoutRuleset() {
return layoutRuleset;
}

@Override
public boolean isEnabled() {
return element.isEnabled();
}
}

0 comments on commit 5e58958

Please sign in to comment.