From 84ae26e8086a6ee6a74c5763b808a5fb17f34f19 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Mon, 18 May 2015 13:07:30 +0200 Subject: [PATCH] Timeline: If range moves out of window, completely rebuild the window The previous code miraculously moved window and range to the right places, but went through a series of invalid states in between. Change-Id: Id6b1fd6d615d7900beda914a0415720a57d464b5 Reviewed-by: Joerg Bornemann --- src/libs/timeline/timelinezoomcontrol.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libs/timeline/timelinezoomcontrol.cpp b/src/libs/timeline/timelinezoomcontrol.cpp index 7e087c60908..6833c227628 100644 --- a/src/libs/timeline/timelinezoomcontrol.cpp +++ b/src/libs/timeline/timelinezoomcontrol.cpp @@ -100,7 +100,8 @@ void TimelineZoomControl::rebuildWindow() m_windowStart = m_traceStart; m_windowEnd = m_traceEnd; } else if (windowDuration() / shownDuration > MAX_ZOOM_FACTOR || - windowDuration() / shownDuration * 2 < MAX_ZOOM_FACTOR) { + windowDuration() / shownDuration * 2 < MAX_ZOOM_FACTOR || + m_rangeStart < m_windowStart || m_rangeEnd > m_windowEnd) { qint64 keep = shownDuration * MAX_ZOOM_FACTOR / 2 - shownDuration; m_windowStart = m_rangeStart - keep; if (m_windowStart < m_traceStart) {