Skip to content

Commit f112d04

Browse files
committed
Add extra UIA event threading check (for Excel 2016 delay)
1 parent 8a5507a commit f112d04

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

Source/ExcelDna.IntelliSense/UIMonitor/PopupListWatcher.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,15 @@ void PopupListBoundsChanged(object sender, AutomationPropertyChangedEventArgs e)
178178
void PopupListElementSelectedHandler(object sender, AutomationEventArgs e)
179179
{
180180
Logger.WindowWatcher.Verbose($"PopupList PopupListElementSelectedHandler on thread {Thread.CurrentThread.ManagedThreadId}");
181+
182+
// Ensure we really are never on the main thread
183+
if (Thread.CurrentThread.ManagedThreadId == 1)
184+
{
185+
Logger.WindowWatcher.Warn($"PopupList PopupListElementSelectedHandler on main thread - scheduling on automation thread");
186+
_syncContextAuto.Post(si => UpdateSelectedItem((AutomationElement)si), sender);
187+
return;
188+
}
189+
181190
var selectedItem = (AutomationElement)sender;
182191
UpdateSelectedItem(selectedItem);
183192
}

0 commit comments

Comments
 (0)