Skip to content

Commit 69b7b09

Browse files
committed
UITools ignores more notifications and OnUIRefresh now checks for UI thread. Fixes #1114.
1 parent 16843fe commit 69b7b09

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

PluginCore/PluginCore/Controls/UITools.cs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,14 @@ public void HandleEvent(object sender, NotifyEvent e, HandlingPriority priority)
137137

138138
case EventType.Command:
139139
string cmd = (e as DataEvent).Action;
140-
if (cmd.StartsWithOrdinal("ProjectManager") || cmd.IndexOfOrdinal("Changed") > 0 || cmd.IndexOfOrdinal("Context") > 0)
140+
if (cmd.IndexOfOrdinal("ProjectManager") > 0
141+
|| cmd.IndexOfOrdinal("Changed") > 0
142+
|| cmd.IndexOfOrdinal("Context") > 0
143+
|| cmd.IndexOfOrdinal("ClassPath") > 0
144+
|| cmd.IndexOfOrdinal("Watcher") > 0
145+
|| cmd.IndexOfOrdinal("Get") > 0
146+
|| cmd.IndexOfOrdinal("Set") > 0
147+
|| cmd.IndexOfOrdinal("SDK") > 0)
141148
return; // ignore notifications
142149
break;
143150
}
@@ -288,6 +295,12 @@ public void UnlockControl()
288295

289296
private void OnUIRefresh(ScintillaControl sci)
290297
{
298+
Form mainForm = PluginBase.MainForm as Form;
299+
if (mainForm.InvokeRequired)
300+
{
301+
mainForm.BeginInvoke((MethodInvoker)delegate { this.OnUIRefresh(sci); });
302+
return;
303+
}
291304
if (sci != null && sci.IsFocus)
292305
{
293306
int position = sci.CurrentPos;

0 commit comments

Comments
 (0)