diff options
author | Mike Krüger <mikkrg@microsoft.com> | 2019-07-16 13:34:10 +0300 |
---|---|---|
committer | Mike Krüger <mikkrg@microsoft.com> | 2019-07-16 13:34:10 +0300 |
commit | 487a7b83669aa4b20e7663f0c45f60e56a8718b4 (patch) | |
tree | 4a20e75ebe24b91398e3dcc0261aa977e976eea3 | |
parent | 85af902b1a58cbee1a0d1770bf5290e303db6199 (diff) |
[Ide] Fixed editing text during ExtensibleTreeView refresh.master-vsts933992
Update is now only done for a node when the node is not edited. An
update is done always (even on cancel) on the node edited.
+ Removed the "delay" from folder node builder "add folder" command.
3 files changed, 8 insertions, 5 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs index aa0a970ac5..70bbbaaff1 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs @@ -66,8 +66,9 @@ namespace MonoDevelop.Ide.Gui.Components TreeBuilderContext builderContext; Dictionary<object, List<TreeNodeCallback>> callbacks = new Dictionary<object, List<TreeNodeCallback>> (); bool editingText = false; + Gtk.TreeIter editingIter;
- TreePadOption[] options; + TreePadOption [] options; TreeOptions globalOptions; TreeNodeNavigator workNode; @@ -1406,7 +1407,8 @@ namespace MonoDevelop.Ide.Gui.Components // Ensure we set all our state variables before calling SetCursor // as this may directly invoke HandleOnEditCancelled text_render.Editable = true; - editingText = true; + editingText = true;
+ editingIter = iter; tree.SetCursor (store.GetPath (iter), complete_column, true); } diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/TreeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/TreeBuilder.cs index ed9a5c74ae..55d4f37cf4 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/TreeBuilder.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/TreeBuilder.cs @@ -270,7 +270,8 @@ namespace MonoDevelop.Ide.Gui.Components void UpdateNode (NodeBuilder[] chain, NodeAttributes ats, object dataObject) { bool isNew = false; - + if (pad.editingText && currentIter.Equals (pad.editingIter)) + return; var ni = (NodeInfo)store.GetValue (currentIter, ExtensibleTreeView.NodeInfoColumn); if (ni == null || ni.IsShared) { ni = new NodeInfo (); diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs index a5f7838ad4..01238edb04 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs @@ -553,13 +553,13 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad newFolder.Subtype = Subtype.Directory; project.Files.Add (newFolder); - await IdeApp.ProjectOperations.SaveAsync (project); - Tree.AddNodeInsertCallback (new ProjectFolder (newFolderPath, project), nav => { nav.Selected = true; nav.Expanded = true; Tree.StartLabelEdit (); }); + + await IdeApp.ProjectOperations.SaveAsync (project); } static bool AddNewFolder (FilePath directoryPath) |