The options page is inteded to update immediately if a user has changed any setting.
This works well for every control type except input fields which are governed by CInput.cpp.
There is only the event when the return key is pressed currently, so the options page does weird things to compensate.
It subscribes to the mouse leave event. However that is unrelated, because the mouse can have left the field before it was edited. Also the window can be closed without having the mouse leave the field.
Another workaround that was added is the registerChanges function that does the checking manually when closing the page for everything that the other two wrong subscriptions missed.
Instead, the GUI should just be informed about the text edit event.