@@ -61,7 +61,7 @@ class MacToolbox : NSStackView, IPropertyPadProvider, IToolboxConfiguration
6161 public event EventHandler < Gtk . TargetEntry [ ] > DragSourceSet ;
6262 public event EventHandler ContentFocused ;
6363
64- public ItemToolboxNode selectedNode ;
64+ public ItemToolboxNode SelectedNode => toolboxWidget . SelectedItem ? . Node ;
6565
6666 NativeViews . ToggleButton catToggleButton ;
6767 NativeViews . ToggleButton compactModeToggleButton ;
@@ -179,7 +179,6 @@ public MacToolbox (ToolboxService toolboxService, IPadWindow container)
179179
180180 filterEntry . Changed += FilterEntry_Changed ;
181181
182- toolboxWidget . SelectedItemChanged += ToolboxWidget_SelectedItemChanged ;
183182 toolboxWidget . DragBegin += ToolboxWidget_DragBegin ;
184183 toolboxWidget . MouseDownActivated += ToolboxWidget_MouseDownActivated ;
185184 toolboxWidget . ActivateSelectedItem += ToolboxWidget_ActivateSelectedItem ;
@@ -204,15 +203,13 @@ void ToolboxService_ToolboxContentsChanged (object sender, EventArgs e)
204203 Refresh ( ) ;
205204 }
206205
207- void ToolboxWidget_SelectedItemChanged ( object sender , EventArgs e )
208- {
209- selectedNode = this . toolboxWidget . SelectedItem != null ? this . toolboxWidget . SelectedItem . Tag as ItemToolboxNode : null ;
210- toolboxService . SelectItem ( selectedNode ) ;
211- }
212-
213206 void ToolboxWidget_ActivateSelectedItem ( object sender , EventArgs e )
214207 {
215- toolboxService . UseSelectedItem ( ) ;
208+ var selectedNode = SelectedNode ;
209+ if ( selectedNode != null ) {
210+ DesignerSupport . Service . ToolboxService . SelectItem ( selectedNode ) ;
211+ toolboxService . UseSelectedItem ( ) ;
212+ }
216213 }
217214
218215 void FilterEntry_Changed ( object sender , EventArgs e )
@@ -437,13 +434,17 @@ void ToolboxWidget_MenuOpened (object sender, CGPoint e)
437434 [ CommandHandler ( MonoDevelop . Ide . Commands . EditCommands . Delete ) ]
438435 internal void OnDeleteItem ( )
439436 {
440- if ( MessageService . Confirm ( GettextCatalog . GetString ( "Are you sure you want to remove the selected Item?" ) , AlertButton . Delete ) )
441- toolboxService . RemoveUserItem ( selectedNode ) ;
437+ var selectedNode = SelectedNode ;
438+ if ( selectedNode != null ) {
439+ if ( MessageService . Confirm ( GettextCatalog . GetString ( "Are you sure you want to remove the selected Item?" ) , AlertButton . Delete ) )
440+ toolboxService . RemoveUserItem ( selectedNode ) ;
441+ }
442442 }
443443
444444 [ CommandUpdateHandler ( MonoDevelop . Ide . Commands . EditCommands . Delete ) ]
445445 internal void OnUpdateDeleteItem ( CommandInfo info )
446446 {
447+ var selectedNode = SelectedNode ;
447448 // Hack manually filter out gtk# widgets & container since they cannot be re added
448449 // because they're missing the toolbox attributes.
449450 info . Enabled = selectedNode != null
@@ -539,7 +540,6 @@ protected override void Dispose (bool disposing)
539540 toolboxAddButton . Activated -= ToolboxAddButton_Clicked ;
540541 toolboxAddButton . Focused -= ToolboxAddButton_Focused ;
541542
542- toolboxWidget . SelectedItemChanged -= ToolboxWidget_SelectedItemChanged ;
543543 toolboxWidget . ActivateSelectedItem -= ToolboxWidget_ActivateSelectedItem ;
544544 toolboxWidget . MenuOpened -= ToolboxWidget_MenuOpened ;
545545 toolboxWidget . MouseDownActivated -= ToolboxWidget_MouseDownActivated ;
@@ -559,12 +559,12 @@ protected override void Dispose (bool disposing)
559559
560560 object IPropertyPadProvider . GetActiveComponent ( )
561561 {
562- return selectedNode ;
562+ return SelectedNode ;
563563 }
564564
565565 object IPropertyPadProvider . GetProvider ( )
566566 {
567- return selectedNode ;
567+ return SelectedNode ;
568568 }
569569
570570 void IPropertyPadProvider . OnEndEditing ( object obj )
0 commit comments