diff options
author | Lluis Sanchez <llsan@microsoft.com> | 2019-02-05 21:53:47 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-05 21:53:47 +0300 |
commit | aa93aa6666a35d6f9135db35103c34178d85a75e (patch) | |
tree | 25292b8a5461ceacfcc7e47c76294a967f13350e | |
parent | 87b877c88ad36e1587a10bf97a4bcb522d747509 (diff) | |
parent | d1dd2519662d6808f098e72d9bc021f5d6cbb520 (diff) |
Merge pull request #7052 from mono/release-7.8-fix-783919monodevelop-7.8.0.1607
[release-7.8] [Toolbox] Fixes toolboxService is allways in sync with toolbox selected item
4 files changed, 17 insertions, 20 deletions
diff --git a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/IToolboxWidget.cs b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/IToolboxWidget.cs index 23045937ef..ae61656bc9 100644 --- a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/IToolboxWidget.cs +++ b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/IToolboxWidget.cs @@ -40,7 +40,6 @@ namespace MonoDevelop.DesignerSupport.Toolbox IEnumerable<ToolboxWidgetCategory> Categories { get; } IEnumerable<ToolboxWidgetItem> AllItems { get; } - event EventHandler SelectedItemChanged; event EventHandler ActivateSelectedItem; void AddCategory (ToolboxWidgetCategory category); diff --git a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/MacToolbox.cs b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/MacToolbox.cs index 56abd9b0b0..b114aede25 100644 --- a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/MacToolbox.cs +++ b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/MacToolbox.cs @@ -61,7 +61,7 @@ namespace MonoDevelop.DesignerSupport.Toolbox public event EventHandler<Gtk.TargetEntry []> DragSourceSet; public event EventHandler ContentFocused; - public ItemToolboxNode selectedNode; + public ItemToolboxNode SelectedNode => toolboxWidget.SelectedItem?.Node; NativeViews.ToggleButton catToggleButton; NativeViews.ToggleButton compactModeToggleButton; @@ -179,7 +179,6 @@ namespace MonoDevelop.DesignerSupport.Toolbox filterEntry.Changed += FilterEntry_Changed; - toolboxWidget.SelectedItemChanged += ToolboxWidget_SelectedItemChanged; toolboxWidget.DragBegin += ToolboxWidget_DragBegin; toolboxWidget.MouseDownActivated += ToolboxWidget_MouseDownActivated; toolboxWidget.ActivateSelectedItem += ToolboxWidget_ActivateSelectedItem; @@ -204,15 +203,13 @@ namespace MonoDevelop.DesignerSupport.Toolbox Refresh (); } - void ToolboxWidget_SelectedItemChanged (object sender, EventArgs e) - { - selectedNode = this.toolboxWidget.SelectedItem != null ? this.toolboxWidget.SelectedItem.Tag as ItemToolboxNode : null; - toolboxService.SelectItem (selectedNode); - } - void ToolboxWidget_ActivateSelectedItem (object sender, EventArgs e) { - toolboxService.UseSelectedItem (); + var selectedNode = SelectedNode; + if (selectedNode != null) { + DesignerSupport.Service.ToolboxService.SelectItem (selectedNode); + toolboxService.UseSelectedItem (); + } } void FilterEntry_Changed (object sender, EventArgs e) @@ -437,13 +434,17 @@ namespace MonoDevelop.DesignerSupport.Toolbox [CommandHandler (MonoDevelop.Ide.Commands.EditCommands.Delete)] internal void OnDeleteItem () { - if (MessageService.Confirm (GettextCatalog.GetString ("Are you sure you want to remove the selected Item?"), AlertButton.Delete)) - toolboxService.RemoveUserItem (selectedNode); + var selectedNode = SelectedNode; + if (selectedNode != null) { + if (MessageService.Confirm (GettextCatalog.GetString ("Are you sure you want to remove the selected Item?"), AlertButton.Delete)) + toolboxService.RemoveUserItem (selectedNode); + } } [CommandUpdateHandler (MonoDevelop.Ide.Commands.EditCommands.Delete)] internal void OnUpdateDeleteItem (CommandInfo info) { + var selectedNode = SelectedNode; // Hack manually filter out gtk# widgets & container since they cannot be re added // because they're missing the toolbox attributes. info.Enabled = selectedNode != null @@ -539,7 +540,6 @@ namespace MonoDevelop.DesignerSupport.Toolbox toolboxAddButton.Activated -= ToolboxAddButton_Clicked; toolboxAddButton.Focused -= ToolboxAddButton_Focused; - toolboxWidget.SelectedItemChanged -= ToolboxWidget_SelectedItemChanged; toolboxWidget.ActivateSelectedItem -= ToolboxWidget_ActivateSelectedItem; toolboxWidget.MenuOpened -= ToolboxWidget_MenuOpened; toolboxWidget.MouseDownActivated -= ToolboxWidget_MouseDownActivated; @@ -559,12 +559,12 @@ namespace MonoDevelop.DesignerSupport.Toolbox object IPropertyPadProvider.GetActiveComponent () { - return selectedNode; + return SelectedNode; } object IPropertyPadProvider.GetProvider () { - return selectedNode; + return SelectedNode; } void IPropertyPadProvider.OnEndEditing (object obj) diff --git a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/MacToolboxWidget.cs b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/MacToolboxWidget.cs index 4ad140def1..a058ff7b67 100644 --- a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/MacToolboxWidget.cs +++ b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/MacToolboxWidget.cs @@ -56,7 +56,6 @@ namespace MonoDevelop.DesignerSupport.Toolbox public event EventHandler Focused; public event EventHandler DragBegin; public event EventHandler<CGPoint> MenuOpened; - public event EventHandler SelectedItemChanged; public event EventHandler ActivateSelectedItem; public Action<NSEvent> MouseDownActivated { get; set; } @@ -74,8 +73,6 @@ namespace MonoDevelop.DesignerSupport.Toolbox internal void PerformActivateSelectedItem () => OnActivateSelectedItem (EventArgs.Empty); void OnActivateSelectedItem (EventArgs args) => ActivateSelectedItem?.Invoke (this, args); - - void OnSelectedItemChanged (EventArgs args) => SelectedItemChanged?.Invoke (this, args); NSIndexPath selectedIndexPath; public NSIndexPath SelectedIndexPath { @@ -85,7 +82,6 @@ namespace MonoDevelop.DesignerSupport.Toolbox set { if (selectedIndexPath != value) { selectedIndexPath = value; - OnSelectedItemChanged (EventArgs.Empty); } } } diff --git a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/ToolboxPad.cs b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/ToolboxPad.cs index baf61bb908..2adff6028a 100644 --- a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/ToolboxPad.cs +++ b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/ToolboxPad.cs @@ -82,7 +82,9 @@ namespace MonoDevelop.DesignerSupport targets.AddTable (e); }; toolbox.DragBegin += (object sender, EventArgs e) => { - if (!isDragging) { + var selectedNode = toolbox.SelectedNode; + if (!isDragging && selectedNode != null) { + DesignerSupport.Service.ToolboxService.SelectItem (selectedNode); Gtk.Drag.SourceUnset (widget); |