From 2eddbeb1640d1714b61b10c5c5aad048bf31e577 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Sun, 29 Jul 2018 20:50:21 +0200 Subject: [PATCH] Use ctrl key to zoom-out using selection range. --- server/TracyView.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/server/TracyView.cpp b/server/TracyView.cpp index 40e4612b..5eaa9904 100644 --- a/server/TracyView.cpp +++ b/server/TracyView.cpp @@ -776,8 +776,22 @@ void View::HandleZoneViewMouse( int64_t timespan, const ImVec2& wpos, float w, d { const auto s = std::min( m_highlightZoom.start, m_highlightZoom.end ); const auto e = std::max( m_highlightZoom.start, m_highlightZoom.end ); + // ZoomToRange disables m_highlightZoom.active - ZoomToRange( s, e ); + if( io.KeyCtrl ) + { + const auto tsOld = m_zvEnd - m_zvStart; + const auto tsNew = e - s; + const auto mul = double( tsOld ) / tsNew; + const auto left = s - m_zvStart; + const auto right = m_zvEnd - e; + + ZoomToRange( m_zvStart - left * mul, m_zvEnd + right * mul ); + } + else + { + ZoomToRange( s, e ); + } } if( ImGui::IsMouseDragging( 1, 0 ) )