summaryrefslogtreecommitdiffstats
path: root/src/plugins/styles/mac
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@qt.io>2017-07-14 17:22:23 +0200
committerTor Arne Vestbø <tor.arne.vestbo@qt.io>2017-07-14 20:16:42 +0000
commit8fad51b7bc1a92916fab7639ca835acce1da2922 (patch)
tree3405b09d2e888a810a483b020ea9219329c0bd5e /src/plugins/styles/mac
parent97d471c99ff43443af17c82638e7b350fb198f52 (diff)
macOS: Fix exception when drawing scrollbars with zero-range
Terminating app due to uncaught exception 'CALayerInvalidGeometry', reason: 'CALayer position contains NaN: [nan nan]' 0 CoreFoundation __exceptionPreprocess 1 libobjc.A.dylib objc_exception_throw 2 CoreFoundation +[NSException raise:format:] 3 QuartzCore _ZN2CA5Layer12set_positionERKNS_4Vec2IdEEb 4 QuartzCore -[CALayer setPosition:] 5 QuartzCore -[CALayer setFrame:] 6 AppKit -[NSScrollerImp _updateLayerGeometry] 7 AppKit -[NSScroller setFloatValue:knobProportion:] 8 libqmacstyle setupScroller(NSScroller*, QStyleOptionSlider const*) 9 libqmacstyle QMacStyle::drawComplexControl(...) Change-Id: I5afe7e7d3e94ff1d9ee34f5a9bc0d229d4f7c4c6 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Diffstat (limited to 'src/plugins/styles/mac')
-rw-r--r--src/plugins/styles/mac/qmacstyle_mac.mm3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/plugins/styles/mac/qmacstyle_mac.mm b/src/plugins/styles/mac/qmacstyle_mac.mm
index 7e54025d6e..1386a98586 100644
--- a/src/plugins/styles/mac/qmacstyle_mac.mm
+++ b/src/plugins/styles/mac/qmacstyle_mac.mm
@@ -300,7 +300,8 @@ static bool setupScroller(NSScroller *scroller, const QStyleOptionSlider *sb)
if (qFuzzyIsNull(length))
return false;
const qreal proportion = sb->pageStep / length;
- qreal value = qreal(sb->sliderValue - sb->minimum) / qreal(sb->maximum - sb->minimum);
+ const qreal range = qreal(sb->maximum - sb->minimum);
+ qreal value = range ? qreal(sb->sliderValue - sb->minimum) / range : 0;
if (sb->orientation == Qt::Horizontal && sb->direction == Qt::RightToLeft)
value = 1.0 - value;