From 195a008c9923d6c0cfbbf54e520077b80e1a32b7 Mon Sep 17 00:00:00 2001 From: Pawel Piech Date: Wed, 18 Mar 2009 05:18:58 +0000 Subject: [PATCH] [269135] - [view model][breadcrumb] Opening a drop-down causes an installed delta to be sent to the tree viewer. --- .../cdt/dsf/ui/viewmodel/AbstractVMProvider.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/ui/viewmodel/AbstractVMProvider.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/ui/viewmodel/AbstractVMProvider.java index 18a6649a25c..1dd92ca3cad 100644 --- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/ui/viewmodel/AbstractVMProvider.java +++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/ui/viewmodel/AbstractVMProvider.java @@ -254,6 +254,17 @@ abstract public class AbstractVMProvider implements IVMProvider, IVMEventListene crm.setDoneCount(activeModelProxies.size()); for (final IVMModelProxy proxyStrategy : activeModelProxies) { + // If the event is generated by the model proxy, only process it for the proxy that created it. + if ( event instanceof ModelProxyInstalledEvent && + !((ModelProxyInstalledEvent)event).getModelProxy().equals(proxyStrategy) ) + { + crm.done(); + continue; + } + + // Process the event only if there are potential delta flags that may be generated. + // Also, process the event if it is a result of the user modifying something + // so that the cache is properly updated. if (proxyStrategy.isDeltaEvent(event) || event instanceof UserEditEvent) { if (DEBUG_DELTA && (DEBUG_PRESENTATION_ID == null || getPresentationContext().getId().equals(DEBUG_PRESENTATION_ID))) { DsfUIPlugin.debug("eventReceived(proxyRoot = " + proxyStrategy .getRootElement() + ", event = " + event + ")" ); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$