Author: lluis
Date: 2007-02-19 18:11:38 -0500 (Mon, 19 Feb 2007)
New Revision: 73140

Modified:
   trunk/monodevelop/Extras/MonoDevelop.GtkCore/ChangeLog
   
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/CombinedDesignView.cs
   
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs
   trunk/monodevelop/Extras/MonoDevelop.GtkCore/lib/libstetic.dll
   trunk/monodevelop/Extras/MonoDevelop.GtkCore/lib/libsteticui.dll
Log:
* lib/libsteticui.dll, lib/libstetic.dll: Updated from SVN. Fixes some
  memory leaks and bug #79453.
* MonoDevelop.GtkCore.GuiBuilder/CombinedDesignView.cs: Explicitely
  destroy notebook children, since notebook doesnt do it because of a
  gtk bug.
* MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs: Some fixes in the
  dispose code.

Modified: trunk/monodevelop/Extras/MonoDevelop.GtkCore/ChangeLog
===================================================================
--- trunk/monodevelop/Extras/MonoDevelop.GtkCore/ChangeLog      2007-02-19 
23:09:04 UTC (rev 73139)
+++ trunk/monodevelop/Extras/MonoDevelop.GtkCore/ChangeLog      2007-02-19 
23:11:38 UTC (rev 73140)
@@ -1,3 +1,13 @@
+2007-02-20  Lluis Sanchez Gual <[EMAIL PROTECTED]> 
+
+       * lib/libsteticui.dll, lib/libstetic.dll: Updated from SVN. Fixes some
+         memory leaks and bug #79453.
+       * MonoDevelop.GtkCore.GuiBuilder/CombinedDesignView.cs: Explicitely
+         destroy notebook children, since notebook doesnt do it because of a
+         gtk bug.
+       * MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs: Some fixes in the
+         dispose code.
+
 2007-02-16  Lluis Sanchez Gual <[EMAIL PROTECTED]> 
 
        * MonoDevelop.GtkCore.NodeBuilders/ProjectFolderNodeBuilderExtension.cs,

Modified: 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/CombinedDesignView.cs
===================================================================
--- 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/CombinedDesignView.cs
   2007-02-19 23:09:04 UTC (rev 73139)
+++ 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/CombinedDesignView.cs
   2007-02-19 23:11:38 UTC (rev 73140)
@@ -104,7 +104,9 @@
                public void RemoveButton (int npage)
                {
                        notebook.RemovePage (npage);
-                       toolbar.Remove (toolbar.Children [npage]);
+                       Gtk.Widget cw = toolbar.Children [npage];
+                       toolbar.Remove (cw);
+                       cw.Destroy ();
                        ShowPage (0);
                }
                
@@ -154,9 +156,19 @@
                        IdeApp.Workbench.ActiveDocumentChanged -= new 
EventHandler (OnActiveDocumentChanged);
                        Gtk.Widget w = content.Control;
                        content.Dispose ();
-                       w.Destroy ();
+       
+                       // Remove and destroy the contents of the Notebook, 
since the destroy event is
+                       // not propagated to pages in some gtk versions.
+                       
+                       foreach (Gtk.Widget cw in notebook.Children) {
+                               Gtk.Widget lw = notebook.GetTabLabel (cw);
+                               notebook.Remove (cw);
+                               cw.Destroy ();
+                               if (lw != null)
+                                       lw.Destroy ();
+                       }
+                       
                        content = null;
-                       box.Destroy ();
                        box = null;
                        base.Dispose ();
                }

Modified: 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs
===================================================================
--- 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs
       2007-02-19 23:09:04 UTC (rev 73139)
+++ 
trunk/monodevelop/Extras/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderView.cs
       2007-02-19 23:11:38 UTC (rev 73140)
@@ -161,17 +161,16 @@
                        designer.ComponentNameChanged -= OnComponentNameChanged;
                        designer.RootComponentChanged -= OnRootComponentChanged;
                        
-                       if (designerPage != null) {
-                               designerPage.Dispose ();
+                       if (designerPage != null)
                                designerPage = null;
-                       }
+                       
                        if (actionsPage != null) {
-                               actionsPage.Dispose ();
-                               actionsBox.Dispose ();
-                               actionsBox.Destroy ();
+                               actionsBox.BindField -= OnBindActionField;
+                               actionsBox.ModifiedChanged -= OnActionshanged;
                                actionsBox = null;
+                               actionsPage = null;
                        }
-                       designer.Dispose ();
+                       // designer.Dispose() will be called when the designer 
is destroyed.
                        designer = null;
                        gproject.Reloaded += OnReloadProject;
                }
@@ -180,6 +179,7 @@
                {
                        CloseDesigner ();
                        gproject.Reloaded -= OnReloadProject;
+                       codeBinder = null;
                        base.Dispose ();
                }
                
@@ -260,8 +260,10 @@
  
                        codeBinder.UpdateBindings (fileName);
                        if (!ErrorMode) {
-                               designer.Save ();
-                               actionsBox.Save ();
+                               if (designer != null)
+                                       designer.Save ();
+                               if (actionsBox != null)
+                                       actionsBox.Save ();
                        }
                        
                        string newBuildFile = 
GuiBuilderService.GetBuildCodeFileName (gproject.Project, window.RootWidget);

Modified: trunk/monodevelop/Extras/MonoDevelop.GtkCore/lib/libstetic.dll
===================================================================
(Binary files differ)

Modified: trunk/monodevelop/Extras/MonoDevelop.GtkCore/lib/libsteticui.dll
===================================================================
(Binary files differ)

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to