diff options
author | David Robillard <d@drobilla.net> | 2008-12-21 17:31:15 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2008-12-21 17:31:15 +0000 |
commit | 1c97ea40ba7b2affbb14fe2b6a4ab6bffb2ae67d (patch) | |
tree | 6a4da1b2eefaf1b598fe5a4ab1df6b86f116d2bd | |
parent | 62ad851a3614c64207961dcc26ddce052ae9f573 (diff) | |
download | ingen-1c97ea40ba7b2affbb14fe2b6a4ab6bffb2ae67d.tar.gz ingen-1c97ea40ba7b2affbb14fe2b6a4ab6bffb2ae67d.tar.bz2 ingen-1c97ea40ba7b2affbb14fe2b6a4ab6bffb2ae67d.zip |
Don't allow setting port range to values that don't include the current port value (fix #298. again.)
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@1888 a436a847-0d15-0410-975c-d299462d15a1
-rw-r--r-- | src/gui/PortPropertiesWindow.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/gui/PortPropertiesWindow.cpp b/src/gui/PortPropertiesWindow.cpp index aa5f8060..89d17154 100644 --- a/src/gui/PortPropertiesWindow.cpp +++ b/src/gui/PortPropertiesWindow.cpp @@ -106,9 +106,15 @@ PortPropertiesWindow::variable_change(const string& key, const Atom& value) void PortPropertiesWindow::min_changed() { - const float min = _min_spinner->get_value(); - float max = _max_spinner->get_value(); + const float val = _port_model->value().get_float(); + float min = _min_spinner->get_value(); + float max = _max_spinner->get_value(); + if (min > val) { + _min_spinner->set_value(val); + return; // avoid recursion + } + if (max <= min) { max = min + 1.0; _max_spinner->set_value(max); @@ -122,9 +128,15 @@ PortPropertiesWindow::min_changed() void PortPropertiesWindow::max_changed() { - float min = _min_spinner->get_value(); - const float max = _max_spinner->get_value(); + const float val = _port_model->value().get_float(); + float min = _min_spinner->get_value(); + float max = _max_spinner->get_value(); + if (max < val) { + _max_spinner->set_value(val); + return; // avoid recursion + } + if (min >= max) { min = max - 1.0; _min_spinner->set_value(min); |