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

(this function can be called repeatedly while the work area doesn't
change any further)

(cherry picked from commit fd78a25a7c)
This commit is contained in:
Juergen Spitzmueller 2024-06-23 14:52:02 +02:00
parent 2cc5ca27fd
commit f9dccb9afb

View File

@ -1950,11 +1950,14 @@ 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();
/// ///
if (real_change)
currentWorkAreaChanged(wa); currentWorkAreaChanged(wa);
LYXERR(Debug::GUI, "currentTabChanged " << i LYXERR(Debug::GUI, "currentTabChanged " << i