See also 89a85da52c
* Fix deflection when using percent (use sqrt/pow2)
* Simplify linear deflection when using semitones
* Allow deflection of > 200% when using semitones
* keep shuttle and mouse position in sync when dragging
* do not show speed options above max-transport-speed
* use quadratic deflection with speed percentage
* reduce knob width since the slider is rather narrow these days
This allows to fit complete text "> 100.1%",
which is useful when chasing external transport, and yet
still have a reasonable shuttle width when using semi-tones.
This reverts most of 50c555f1a1
* Never render from `map_transport_state()` callback
* re-instantiate deadzone, only update when last_speed_displayed
differs by 0.5%
* Fix Pool OOM due to mapping state doing direct UI changes
instead of delegating this to lower priority render()
* localize speed changes into varispeed dialog
* make speed-changes idempotent
* remember window position (do not overlap with button)
ideally the window would show up below the "Vari" button
When switching to Semitones, round speed to nearest semitone.
This fixes an issue when rolling forward at < 25% which is
less that -24st and then scrolling right (increase pitch).
The result may still be < -24st and playback reverses.
When changing max-speed, directly constrain speed.
Previously it was not possible to return from reverse playback
since left-scroll decreased pitch, even during reverse playback.
This also fixes an edge-case when quickly scrolling through
zero. use_shuttle_fract() ignores rapid events, map_transport_state()
can round speed to zero and next scroll-event set the default +1st
speed (really should have been 0st).This is solved by starting at
-24st, similar to how percentage does not start at 100%.
Copyright-holder and year information is extracted from git log.
git history begins in 2005. So (C) from 1998..2005 is lost. Also some
(C) assignment of commits where the committer didn't use --author.
A Gtk::manage()d widget will be deleted when its parent container
is destroyed. Top-level context menus are not inside a container and
hence need to be manually deallocated.
This adds explicit delete calls for menus where there is a
member variable reference to the Menu.
This fixes an -Woverloaded-virtual ambiguity introduced in b5e613d45
void render (cairo_t*, cairo_rectagle*)
void render (Cairo::RefPtr<Cairo::Context> const&, cairo_rectangle_t*)
ArdourCanvas prefers cairomm and CairoWidget itself uses Cairo::Context,
this improves overall API consistency.