trackeditor: fix entering negative values in slider

git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9287 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 43e23f40b50792c31b8a47354dc72481eb29e7eb
Former-commit-id: 2df3514f9b82b07b0ab8aba1be97cfcc9d9344df
This commit is contained in:
iobyte 2024-01-27 20:14:39 +00:00
parent 393cf1b2ec
commit 2c0a55967a

View file

@ -192,7 +192,16 @@ public class SegmentSlider extends JPanel
try
{
String s = document.getText(0, document.getLength());
if (!s.equals(""))
if (s.equals("-") || s.equals(""))
{
double oldValue = value;
setValueInternal(defaultValue);
if (Math.abs(oldValue - value) >= resolution)
{
valueChanged();
}
}
else if (!s.equals(""))
{
try
{
@ -225,8 +234,8 @@ public class SegmentSlider extends JPanel
{
char c = e.getKeyChar();
// check for valid digit or a single decimal point
if (!(Character.isDigit(c) || (!integerFormat && (c == '.' && !textField.getText().contains(".")))))
// check for valid digit or a single decimal point or a minus when negative number allowed
if (!(Character.isDigit(c) || (min < 0 && c == '-') || (!integerFormat && (c == '.' && !textField.getText().contains(".")))))
{
e.consume();
return;
@ -520,7 +529,7 @@ public class SegmentSlider extends JPanel
value = val;
setSliderValue(value);
double textValue = 0;
if (!getTextField().getText().equals(""))
if (!getTextField().getText().equals("") && !getTextField().getText().equals("-"))
{
try
{
@ -675,6 +684,12 @@ public class SegmentSlider extends JPanel
protected void textFieldChanged()
{
if (!getTextField().getText().equals(""))
{
if (getTextField().getText().equals("-"))
{
setValueInternal(defaultValue);
}
else
{
try
{
@ -688,4 +703,5 @@ public class SegmentSlider extends JPanel
}
}
}
}
} // @jve:decl-index=0:visual-constraint="10,10"