Community
Participate
Working Groups
This requires launching a runtime in debug mode and setting some breakpoints to see, as the result is "only" visible as a performance issue. Steps to reproduce: 1. Open a table, select an element 2. Open a diagram, select an element 3. Select a (semantic) element in the model explorer 4. In the diagram, move some graphical element Result: 3 TEDCA.Listener (1 for each editor, 1 for the model explorer) are notified of the transaction, and each will trigger an EEFTabbedPropertySheetPage.doSetInput (via refreshPage() called from their associated Updater). Only one of them actually makes sense, the rest is refreshing pages which are obsolete/inactive/invisible. To see it, put a breakpoint in org.eclipse.eef.ide.ui.internal.Updater.apply(List<Notification>). Only enable it right before step 4 which modifies the model. You will see several invocations of Updater.apply(), each for a different EEFTabbedPropertySheetPage, and only one of each is actually relevant. Updater is normally disabled (and the corresponding post-commit listener removed from the TED) on org.eclipse.eef.ide.ui.api.EEFTab.aboutToBeHidden(), but in this scenario this method is never called.
TEDCA == org.eclipse.sirius.ui.properties.internal.TransactionalEditingDomainContextAdapter
Moving to 4.1.2, as this will require changes on the EEF side, and the EEF version for Sirius 4.1.1 is freezed.
I don't think we'll be able to tackle this in the timeframe for 4.1.2 (which we'd like to release in Neon.2). Moving to 5.0 but marking as backport candidate, if we can get a fix that does not have too much impact.