Only issue currentWorkareaChanged() if the work area really changed.

(this function can be called repeatedly while the work area doesn't
change any further)
This commit is contained in:
Juergen Spitzmueller 2024-06-23 14:52:02 +02:00
parent 026c4bd726
commit fd78a25a7c

View File

@ -1947,12 +1947,15 @@ void TabWorkArea::on_currentTabChanged(int i)
if (i == -1) if (i == -1)
return; return;
GuiWorkArea * wa = workArea(i); GuiWorkArea * wa = workArea(i);
// is it really a different work area?
bool real_change = wa == currentWorkArea();
LASSERT(wa, return); LASSERT(wa, return);
wa->setUpdatesEnabled(true); wa->setUpdatesEnabled(true);
wa->scheduleRedraw(true); wa->scheduleRedraw(true);
wa->setFocus(); wa->setFocus();
/// ///
currentWorkAreaChanged(wa); if (real_change)
currentWorkAreaChanged(wa);
LYXERR(Debug::GUI, "currentTabChanged " << i LYXERR(Debug::GUI, "currentTabChanged " << i
<< " File: " << wa->bufferView().buffer().absFileName()); << " File: " << wa->bufferView().buffer().absFileName());