Godot version:
7899b3e7
OS/device including version:
Windows 10, Chrome Browser
Issue description:
Two browser tabs open when any of the website menu items are clicked from the editor Help menu tab, rather than just one. This happens every time one is clicked.
Steps to reproduce:
In the editor, click the Help menu item and select any of the sub menu items that take you to a web link, for example Online Docs. You should see two browser tabs open with the same page.
Minimal reproduction project:
You mean those?

I can't reproduce it in Godot 3.2.1.stable.mono on Windows 10
(Which means it could be a regression bug)
Yep exactly those. I'll jump back to 3.2.1 and see if I still see it.
I'm not seeing this behavior when I run from 3.2.1-stable. I do still see it running from master (7899b3e)
Looks like the second opening stems from the DestroyWindow call in DisplayServerWindows::delete_sub_window
Down from that call to DestroyWindow, it ends up running InputFilter::flush_accumulated_events again, and since the event wasn't removed from the list yet, it's serviced again.
void InputFilter::flush_accumulated_events() {
while (accumulated_events.front()) {
parse_input_event(accumulated_events.front()->get());
accumulated_events.pop_front();
}
}
Changing it to remove it from the list before servicing gets rid of this behavior.
void InputFilter::flush_accumulated_events() {
while (accumulated_events.front()) {
Ref<InputEvent> p_event = accumulated_events.front()->get();
accumulated_events.pop_front();
parse_input_event(p_event);
}
}
However, I'm not sure what unintended behaviors this change would produce, if the event needs to stay in the list until the return from parse_input_event. There may be another way to prevent this from happening.
Seems to be the same issue as #37331
There's already a PR fixing this.