Author: jpobst
Date: 2007-08-24 17:03:58 -0400 (Fri, 24 Aug 2007)
New Revision: 84819

Modified:
   trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
   trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TreeNode.cs
   trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TreeView.cs
Log:
2007-08-24  Jonathan Pobst  <[EMAIL PROTECTED]>

        * TreeView.cs: Create a CancelEdit method.  Clone the edit_args in 
EndEdit
        before calling AfterLabelEdit.  If the user calls BeginEdit in that 
event,
        it resets the edit_args.
        * TreeNode.cs: Call CancelEdit if the user passes cancel = true to 
EndEdit.
        [Fixes bug #82577]

Modified: trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog        
2007-08-24 19:47:27 UTC (rev 84818)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog        
2007-08-24 21:03:58 UTC (rev 84819)
@@ -1,3 +1,11 @@
+2007-08-24  Jonathan Pobst  <[EMAIL PROTECTED]>
+
+       * TreeView.cs: Create a CancelEdit method.  Clone the edit_args in 
EndEdit
+       before calling AfterLabelEdit.  If the user calls BeginEdit in that 
event,
+       it resets the edit_args.
+       * TreeNode.cs: Call CancelEdit if the user passes cancel = true to 
EndEdit.
+       [Fixes bug #82577]
+
 2007-08-24  Gert Driesen  <[EMAIL PROTECTED]>
 
        * FolderBrowserDialog.cs: Modifies form caption and text of new folder

Modified: trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TreeNode.cs
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TreeNode.cs      
2007-08-24 19:47:27 UTC (rev 84818)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TreeNode.cs      
2007-08-24 21:03:58 UTC (rev 84819)
@@ -771,6 +771,8 @@
                        TreeView tv = TreeView;
                        if (!cancel && tv != null)
                                tv.EndEdit (this);
+                       else if (cancel && tv != null)
+                               tv.CancelEdit (this);
                }
 
                public void Expand () {

Modified: trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TreeView.cs
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TreeView.cs      
2007-08-24 19:47:27 UTC (rev 84818)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TreeView.cs      
2007-08-24 21:03:58 UTC (rev 84819)
@@ -1657,19 +1657,32 @@
                        }
 
                        if (edit_node != null && edit_node == node) {
-                               
-                               OnAfterLabelEdit (edit_args);
+                               NodeLabelEditEventArgs e = new 
NodeLabelEditEventArgs (edit_args.Node, edit_args.Label);
 
-                               if (!edit_args.CancelEdit) {
-                                       if (edit_args.Label != null)
-                                               edit_node.Text = 
edit_args.Label;
-                               }
+                               OnAfterLabelEdit (e);
+
+                               if (e.CancelEdit)
+                                       return;
+
+                               if (e.Label != null)
+                                       edit_node.Text = e.Label;
                        }
                        
                        edit_node = null;
                        UpdateNode (node);
                }
 
+               internal void CancelEdit (TreeNode node)
+               {
+                       edit_args.SetLabel (null);
+                       
+                       if (edit_text_box != null && edit_text_box.Visible)
+                               edit_text_box.Visible = false;
+
+                       edit_node = null;
+                       UpdateNode (node);
+               }
+
                internal int GetNodeWidth (TreeNode node)
                {
                        Font font = node.NodeFont;

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

Reply via email to