From 209df8040a1105ef5d7f7074e71527f9a97b2ee2 Mon Sep 17 00:00:00 2001
From: Alain Magloire <alain@qnx.com>
Date: Tue, 9 Mar 2004 20:54:55 +0000
Subject: [PATCH] If the changes of the editor were discarded at closing no
 event were sent.

---
 core/org.eclipse.cdt.core/ChangeLog                  | 12 ++++++++++++
 .../eclipse/cdt/internal/core/model/WorkingCopy.java |  9 ++++-----
 2 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/core/org.eclipse.cdt.core/ChangeLog b/core/org.eclipse.cdt.core/ChangeLog
index 730e28742b9..d16ae20d694 100644
--- a/core/org.eclipse.cdt.core/ChangeLog
+++ b/core/org.eclipse.cdt.core/ChangeLog
@@ -1,3 +1,15 @@
+2004-03-08 Alain Magloire
+
+	In the Editor if the changes are discarded i.e.
+	closing the editor whitout saving.  We do not update
+	the working copy or rathe we do not discard the change
+	and fire an event to the listeners.  Now we do but it
+	can still be a problem since the destroy becomes heavy
+	wieght and it is not wrap around a Workspace operation.
+	Fire the event at destroy will have to do for now.
+
+	* model/org/eclipse/cdt/internal/core/model/WorkingCopy.java
+
 2004-03-08 Hoda Amer
 	Partial fix for bug#52948 : Content Assist: typedef-ed types do not appear in the completion list.
 	
diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/WorkingCopy.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/WorkingCopy.java
index f90e4db60dd..3eac0f97f16 100644
--- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/WorkingCopy.java
+++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/WorkingCopy.java
@@ -132,11 +132,10 @@ public class WorkingCopy extends TranslationUnit implements IWorkingCopy {
 			Map perFactoryWorkingCopies = (Map) sharedWorkingCopies.get(this.bufferFactory);
 			if (perFactoryWorkingCopies != null){
 				if (perFactoryWorkingCopies.remove(originalElement) != null) {
-	
-					// report removed java delta
-					//CElementDelta delta = new CElementDelta(this.getCoreModel());
-					//delta.removed(this);
-					//manager.fire(delta, CModelManager.DEFAULT_CHANGE_EVENT);
+					// report C deltas
+					CElementDelta delta = new CElementDelta(this.getCModel());
+					delta.removed(this);
+					CModelManager.getDefault().fire(delta, ElementChangedEvent.POST_RECONCILE);
 				}
 			}		
 		} catch (CModelException e) {