allow slight overscrolling in optionsmenu
This commit is contained in:
parent
ac398bf2ad
commit
82bbb4299d
|
@ -61,6 +61,12 @@ public class KineticScrolling {
|
||||||
/** The speed multiplier (divides {@link #TIME_CONST}). */
|
/** The speed multiplier (divides {@link #TIME_CONST}). */
|
||||||
private float speedMultiplier = 1f;
|
private float speedMultiplier = 1f;
|
||||||
|
|
||||||
|
private boolean allowOverScroll;
|
||||||
|
|
||||||
|
public void setAllowOverScroll(boolean allowOverScroll) {
|
||||||
|
this.allowOverScroll = allowOverScroll;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the current position.
|
* Returns the current position.
|
||||||
* @return the position
|
* @return the position
|
||||||
|
@ -94,15 +100,25 @@ public class KineticScrolling {
|
||||||
target = position;
|
target = position;
|
||||||
deltaPosition = 0;
|
deltaPosition = 0;
|
||||||
}
|
}
|
||||||
|
if (allowOverScroll && pressed) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (position > max) {
|
if (position > max) {
|
||||||
|
if (allowOverScroll) {
|
||||||
|
scrollToPosition(max);
|
||||||
|
} else {
|
||||||
amplitude = 0;
|
amplitude = 0;
|
||||||
target = position = max;
|
target = position = max;
|
||||||
}
|
}
|
||||||
if (position < min) {
|
} else if (position < min) {
|
||||||
|
if (allowOverScroll) {
|
||||||
|
scrollToPosition(min);
|
||||||
|
} else {
|
||||||
amplitude = 0;
|
amplitude = 0;
|
||||||
target = position = min;
|
target = position = min;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Scrolls to the position.
|
* Scrolls to the position.
|
||||||
|
|
|
@ -152,6 +152,7 @@ public class OptionsOverlay extends OverlayOpsuState {
|
||||||
listHoverIndex = -1;
|
listHoverIndex = -1;
|
||||||
searchField = new TextField(displayContainer, null, 0, 0, 0, 0);
|
searchField = new TextField(displayContainer, null, 0, 0, 0, 0);
|
||||||
scrollHandler = new KineticScrolling();
|
scrollHandler = new KineticScrolling();
|
||||||
|
scrollHandler.setAllowOverScroll(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setListener(Listener listener) {
|
public void setListener(Listener listener) {
|
||||||
|
@ -326,9 +327,6 @@ public class OptionsOverlay extends OverlayOpsuState {
|
||||||
maxScrollOffset = 0;
|
maxScrollOffset = 0;
|
||||||
}
|
}
|
||||||
scrollHandler.setMinMax(0f, maxScrollOffset);
|
scrollHandler.setMinMax(0f, maxScrollOffset);
|
||||||
if (scrollHandler.getIntPosition() > maxScrollOffset) {
|
|
||||||
scrollHandler.setPosition(maxScrollOffset);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void renderOpenList(Graphics g) {
|
private void renderOpenList(Graphics g) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user