From d0d6b8fd8e8901147d178ac70b0e6038e7f36676 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Fri, 14 Oct 2022 19:49:06 +0200 Subject: Use menus in inline call stack popup. --- server/TracySourceView.cpp | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/server/TracySourceView.cpp b/server/TracySourceView.cpp index a4426b33..aef4a8bd 100644 --- a/server/TracySourceView.cpp +++ b/server/TracySourceView.cpp @@ -2819,24 +2819,8 @@ uint64_t SourceView::RenderSymbolAsmView( const AddrStatData& as, Worker& worker const auto normalized = view.GetShortenName() != ShortenName::Never ? ShortenZoneName( ShortenName::OnlyNormalize, symName ) : symName; const auto fn = worker.GetString( lcs->data[i].file ); const auto srcline = lcs->data[i].line; - if( ImGui::Selectable( normalized ) ) + if( ImGui::BeginMenu( normalized ) ) { - m_targetLine = srcline; - if( m_source.filename() == fn ) - { - SelectLine( srcline, &worker, false ); - m_displayMode = DisplayMixed; - } - else if( SourceFileValid( fn, worker.GetCaptureTime(), view, worker ) ) - { - ParseSource( fn, worker, view ); - SelectLine( srcline, &worker, false ); - SelectViewMode(); - } - } - if( ImGui::IsItemHovered() ) - { - ImGui::BeginTooltip(); if( SourceFileValid( fn, worker.GetCaptureTime(), view, worker ) ) { m_sourceTooltip.Parse( fn, worker, view ); @@ -2855,7 +2839,22 @@ uint64_t SourceView::RenderSymbolAsmView( const AddrStatData& as, Worker& worker { TextDisabledUnformatted( "Source not available" ); } - ImGui::EndTooltip(); + ImGui::EndMenu(); + if( ImGui::IsItemClicked() ) + { + m_targetLine = srcline; + if( m_source.filename() == fn ) + { + SelectLine( srcline, &worker, false ); + m_displayMode = DisplayMixed; + } + else if( SourceFileValid( fn, worker.GetCaptureTime(), view, worker ) ) + { + ParseSource( fn, worker, view ); + SelectLine( srcline, &worker, false ); + SelectViewMode(); + } + } } ImGui::PopID(); } -- cgit v1.2.3