diff options
Diffstat (limited to 'AutoSizingList.cpp')
-rw-r--r-- | AutoSizingList.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/AutoSizingList.cpp b/AutoSizingList.cpp index c9ea14c..5899f75 100644 --- a/AutoSizingList.cpp +++ b/AutoSizingList.cpp @@ -51,24 +51,25 @@ void AutoSizingList::rowChange() m_suggestedRatio3 = (double)suggestedWidth3 / (double)suggestedWidthTotal; bool b; double remain; - #define MAX .42 + #define DELTA .000000001 + #define MAX (.42 - DELTA) do { b = false; - if(m_suggestedRatio1 > MAX) { + if(m_suggestedRatio1 > MAX + DELTA) { remain = m_suggestedRatio1 + m_suggestedRatio2 + m_suggestedRatio3 - MAX; m_suggestedRatio1 = MAX; m_suggestedRatio2 = (m_suggestedRatio2 / (m_suggestedRatio2 + m_suggestedRatio3)) * remain; m_suggestedRatio3 = (m_suggestedRatio3 / (m_suggestedRatio2 + m_suggestedRatio3)) * remain; b = true; } - if(m_suggestedRatio2 > MAX) { + if(m_suggestedRatio2 > MAX + DELTA) { remain = m_suggestedRatio1 + m_suggestedRatio2 + m_suggestedRatio3 - MAX; m_suggestedRatio2 = MAX; m_suggestedRatio1 = (m_suggestedRatio1 / (m_suggestedRatio1 + m_suggestedRatio3)) * remain; m_suggestedRatio3 = (m_suggestedRatio3 / (m_suggestedRatio1 + m_suggestedRatio3)) * remain; b = true; } - if(m_suggestedRatio3 > MAX) { + if(m_suggestedRatio3 > MAX + DELTA) { remain = m_suggestedRatio1 + m_suggestedRatio2 + m_suggestedRatio3 - MAX; m_suggestedRatio3 = MAX; m_suggestedRatio2 = (m_suggestedRatio2 / (m_suggestedRatio2 + m_suggestedRatio1)) * remain; @@ -76,6 +77,7 @@ void AutoSizingList::rowChange() b = true; } } while(b); + #undef DELTA #undef MAX fixColumnSizes(); } |