# HG changeset patch
# User Chris Cannam
# Date 1168613358 0
# Node ID fb8ddd00f44010430c724c9042313cdf3d7c71d9
# Parent  e2bbb58e6df6095932d84962d1a1d44e668b1a08
* better icon
* support range mappers in thumbwheel
* supply range mapper for vertical zoom from spectrogram
* fix bug in fftmodel for scaled ffts
* make the various widgets all respond to double-click for edit, middle-click
  for reset, ctrl-left-click for reset

diff -r e2bbb58e6df6 -r fb8ddd00f440 data/model/FFTModel.h
--- a/data/model/FFTModel.h	Thu Jan 11 13:29:58 2007 +0000
+++ b/data/model/FFTModel.h	Fri Jan 12 14:49:18 2007 +0000
@@ -59,7 +59,13 @@
         return m_server->getWidth() >> m_xshift;
     }
     virtual size_t getHeight() const {
-        return m_server->getHeight() >> m_yshift;
+        // If there is no y-shift, the server's height (based on its
+        // fftsize/2 + 1) is correct.  If there is a shift, then the
+        // server is using a larger fft size than we want, so we shift
+        // it right as many times as necessary, but then we need to
+        // re-add the "+1" part (because ((fftsize*2)/2 + 1) / 2 !=
+        // fftsize/2 + 1).
+        return (m_server->getHeight() >> m_yshift) + (m_yshift > 0 ? 1 : 0);
     }
     virtual float getValueAt(size_t x, size_t y) const {
         return const_cast<FFTModel *>(this)->getMagnitudeAt(x, y);