Skip to content

Commit 5e230fb

Browse files
committed
Merge branch 'next' of https://github.com/rubberduck-vba/Rubberduck into next
2 parents dc08ffc + 10aba34 commit 5e230fb

File tree

2 files changed

+8
-17
lines changed

2 files changed

+8
-17
lines changed

RetailCoder.VBE/UI/SourceControl/SourceControlViewViewModel.cs

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
using System.Linq;
99
using System.Windows.Forms;
1010
using System.Windows.Media.Imaging;
11-
using Microsoft.Vbe.Interop;
1211
using NLog;
1312
using Rubberduck.Parsing.VBA;
1413
using Rubberduck.SettingsProvider;
@@ -17,7 +16,6 @@
1716
using Rubberduck.UI.Command.MenuItems;
1817
using Rubberduck.VBEditor.Events;
1918
using Rubberduck.VBEditor.SafeComWrappers.Abstract;
20-
using Rubberduck.VBEditor.SafeComWrappers.VBA;
2119
using resx = Rubberduck.UI.SourceControl.SourceControl;
2220

2321
namespace Rubberduck.UI.SourceControl
@@ -82,11 +80,8 @@ public SourceControlViewViewModel(
8280

8381
_openCommandPromptCommand = new DelegateCommand(LogManager.GetCurrentClassLogger(), _ => OpenCommandPrompt());
8482

85-
Rubberduck.VBEditor.SafeComWrappers.VBA.VBProjects.ProjectRemoved += ProjectRemoved;
86-
foreach (var project in _vbe.VBProjects.Where(proj => proj.VBComponents != null))
87-
{
88-
AddComponentEventHandlers(project);
89-
}
83+
84+
AddComponentEventHandlers();
9085

9186
TabItems = new ObservableCollection<IControlView>(views);
9287
SetTab(SourceControlTab.Changes);
@@ -108,15 +103,17 @@ public void SetTab(SourceControlTab tab)
108103

109104
private bool _listening = true;
110105

111-
private void AddComponentEventHandlers(IVBProject project)
106+
private void AddComponentEventHandlers()
112107
{
108+
VBEditor.SafeComWrappers.VBA.VBProjects.ProjectRemoved += ProjectRemoved;
113109
VBEditor.SafeComWrappers.VBA.VBComponents.ComponentAdded += ComponentAdded;
114110
VBEditor.SafeComWrappers.VBA.VBComponents.ComponentRemoved += ComponentRemoved;
115111
VBEditor.SafeComWrappers.VBA.VBComponents.ComponentRenamed += ComponentRenamed;
116112
}
117113

118-
private void RemoveComponentEventHandlers(IVBProject project)
114+
private void RemoveComponentEventHandlers()
119115
{
116+
VBEditor.SafeComWrappers.VBA.VBProjects.ProjectRemoved -= ProjectRemoved;
120117
VBEditor.SafeComWrappers.VBA.VBComponents.ComponentAdded -= ComponentAdded;
121118
VBEditor.SafeComWrappers.VBA.VBComponents.ComponentRemoved -= ComponentRemoved;
122119
VBEditor.SafeComWrappers.VBA.VBComponents.ComponentRenamed -= ComponentRenamed;
@@ -185,8 +182,6 @@ private void ComponentRenamed(object sender, ComponentRenamedEventArgs e)
185182

186183
private void ProjectRemoved(object sender, ProjectEventArgs e)
187184
{
188-
RemoveComponentEventHandlers(e.Project);
189-
190185
if (Provider == null || !Provider.HandleVbeSinkEvents)
191186
{
192187
return;
@@ -1090,11 +1085,7 @@ public void Dispose()
10901085
_fileSystemWatcher.Dispose();
10911086
}
10921087

1093-
VBEditor.SafeComWrappers.VBA.VBProjects.ProjectRemoved -= ProjectRemoved;
1094-
foreach (var project in _vbe.VBProjects.Where(proj => proj.VBComponents != null))
1095-
{
1096-
RemoveComponentEventHandlers(project);
1097-
}
1088+
RemoveComponentEventHandlers();
10981089
}
10991090
}
11001091
}

Rubberduck.VBEEditor/Events/VBEEvents.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ private static void OnSelectionChanged(IntPtr hwnd)
136136
if (SelectionChanged != null)
137137
{
138138
var pane = GetCodePaneFromHwnd(hwnd);
139-
SelectionChanged.Invoke(_vbe, new SelectionChangedEventArgs(pane));
139+
if (pane != null) SelectionChanged.Invoke(_vbe, new SelectionChangedEventArgs(pane));
140140
}
141141
}
142142

0 commit comments

Comments
 (0)