From: Soeren Apel Date: Mon, 21 Aug 2017 17:58:49 +0000 (+0200) Subject: AnalogSignal: Prevent threshold bg from spilling beyond extents X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=03d2a4f8cacda8ad1d79b4e6a312ebe30b835a55;p=pulseview.git AnalogSignal: Prevent threshold bg from spilling beyond extents --- diff --git a/pv/views/trace/analogsignal.cpp b/pv/views/trace/analogsignal.cpp index 2c5c82a9..07fc7cf7 100644 --- a/pv/views/trace/analogsignal.cpp +++ b/pv/views/trace/analogsignal.cpp @@ -225,8 +225,10 @@ void AnalogSignal::paint_back(QPainter &p, ViewItemPaintParams &pp) // Draw high/neutral/low areas if (thresholds.size() == 2) { - const double thr_lo = visual_y - thresholds[0] * scale_; - const double thr_hi = visual_y - thresholds[1] * scale_; + int thr_lo = visual_y - thresholds[0] * scale_; + int thr_hi = visual_y - thresholds[1] * scale_; + thr_lo = min(max(thr_lo, top), btm); + thr_hi = min(max(thr_hi, top), btm); p.fillRect(QRectF(pp.left(), top, pp.width(), thr_hi - top), QBrush(ThresholdColorHi)); @@ -235,7 +237,8 @@ void AnalogSignal::paint_back(QPainter &p, ViewItemPaintParams &pp) p.fillRect(QRectF(pp.left(), thr_lo, pp.width(), btm - thr_lo), QBrush(ThresholdColorLo)); } else { - const double thr = visual_y - thresholds[0] * scale_; + int thr = visual_y - thresholds[0] * scale_; + thr = min(max(thr, top), btm); p.fillRect(QRectF(pp.left(), top, pp.width(), thr - top), QBrush(ThresholdColorHi));