projects
/
ardour.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
0ffeaa6
)
exclude fader-reserve from range
author
Robin Gareus
<robin@gareus.org>
Mon, 1 Dec 2014 16:36:17 +0000
(17:36 +0100)
committer
Robin Gareus
<robin@gareus.org>
Mon, 1 Dec 2014 16:45:27 +0000
(17:45 +0100)
libs/gtkmm2ext/pixfader.cc
patch
|
blob
|
history
diff --git
a/libs/gtkmm2ext/pixfader.cc
b/libs/gtkmm2ext/pixfader.cc
index 6c4e18429e49f9cdfb566c3178f28654e0087389..d46f1226b07a9cc3c9e2729af0cdc76e743d6f44 100644
(file)
--- a/
libs/gtkmm2ext/pixfader.cc
+++ b/
libs/gtkmm2ext/pixfader.cc
@@
-540,7
+540,9
@@
PixFader::on_motion_notify_event (GdkEventMotion* ev)
double const delta = ev_pos - _grab_loc;
_grab_loc = ev_pos;
double const delta = ev_pos - _grab_loc;
_grab_loc = ev_pos;
- double fract = (delta / _span);
+ const double off = FADER_RESERVE + ((_orien == VERT) ? CORNER_OFFSET : 0);
+ const double span = _span - off;
+ double fract = (delta / span);
fract = min (1.0, fract);
fract = max (-1.0, fract);
fract = min (1.0, fract);
fract = max (-1.0, fract);
@@
-572,9
+574,13
@@
PixFader::display_span ()
float fract = (_adjustment.get_value () - _adjustment.get_lower()) / ((_adjustment.get_upper() - _adjustment.get_lower()));
int ds;
if (_orien == VERT) {
float fract = (_adjustment.get_value () - _adjustment.get_lower()) / ((_adjustment.get_upper() - _adjustment.get_lower()));
int ds;
if (_orien == VERT) {
- ds = (int)rint (_span * (1.0 - fract));
+ const double off = FADER_RESERVE + CORNER_OFFSET;
+ const double span = _span - off;
+ ds = (int)rint (span * (1.0 - fract));
} else {
} else {
- ds = (int)rint (_span * fract);
+ const double off = FADER_RESERVE;
+ const double span = _span - off;
+ ds = (int)rint (span * fract + off);
}
return ds;
}
return ds;
@@
-584,9
+590,11
@@
void
PixFader::update_unity_position ()
{
if (_orien == VERT) {
PixFader::update_unity_position ()
{
if (_orien == VERT) {
- _unity_loc = (int) rint (_span * (1 - ((_default_value - _adjustment.get_lower()) / (_adjustment.get_upper() - _adjustment.get_lower())))) - 1;
+ const double span = _span - FADER_RESERVE - CORNER_OFFSET;
+ _unity_loc = (int) rint (span * (1 - ((_default_value - _adjustment.get_lower()) / (_adjustment.get_upper() - _adjustment.get_lower())))) - 1;
} else {
} else {
- _unity_loc = (int) rint ((_default_value - _adjustment.get_lower()) * _span / (_adjustment.get_upper() - _adjustment.get_lower()));
+ const double span = _span - FADER_RESERVE;
+ _unity_loc = (int) rint (FADER_RESERVE + (_default_value - _adjustment.get_lower()) * span / (_adjustment.get_upper() - _adjustment.get_lower()));
}
queue_draw ();
}
queue_draw ();
@@
-619,7
+627,9
@@
PixFader::on_leave_notify_event (GdkEventCrossing*)
void
PixFader::set_adjustment_from_event (GdkEventButton* ev)
{
void
PixFader::set_adjustment_from_event (GdkEventButton* ev)
{
- double fract = (_orien == VERT) ? (1.0 - (ev->y / _span)) : (ev->x / _span);
+ const double off = FADER_RESERVE + ((_orien == VERT) ? CORNER_OFFSET : 0);
+ const double span = _span - off;
+ double fract = (_orien == VERT) ? (1.0 - ((ev->y - off) / span)) : ((ev->x - off) / span);
fract = min (1.0, fract);
fract = max (0.0, fract);
fract = min (1.0, fract);
fract = max (0.0, fract);