diff --git a/debugger/interfaces/ivariablecontroller.cpp b/debugger/interfaces/ivariablecontroller.cpp --- a/debugger/interfaces/ivariablecontroller.cpp +++ b/debugger/interfaces/ivariablecontroller.cpp @@ -79,8 +79,6 @@ { IFrameStackModel *sm = session()->frameStackModel(); if (sm->currentThread() != m_activeThread || sm->currentFrame() != m_activeFrame) { - m_activeThread = sm->currentThread(); - m_activeFrame = sm->currentFrame(); variableCollection()->root()->resetChanged(); update(); } @@ -103,6 +101,11 @@ if (m_autoUpdate != UpdateNone) { updateIfFrameOrThreadChanged(); } + + // update our cache of active thread/frame regardless of m_autoUpdate + // to keep them synced when user currently hides the variable list + m_activeThread = session()->frameStackModel()->currentThread(); + m_activeFrame = session()->frameStackModel()->currentFrame(); break; default: