Explicitly call QCoreApplication::exit()
In Qt 5, QCoreApplication::quit() was equivalent to calling QCoreApplication::exit(). This just exited the main event loop. In Qt 6, the method will instead try to close all top-level windows by posting a close event. The windows are free to cancel the shutdown process by ignoring the event. Call QCoreApplication::exit() to keep the non-conditional behavior.
Kate already does its own cleanup and close handling when the event loop
exits, now leading to double prompts when Qt sends a close event and then
Kate tries to close them. Instead, just call exit()
.
https://doc.qt.io/qt-6/qtcore-changes-qt6.html#other-classes
Ran Kate, typed something, Ctrl+Q, got only a single “Save?” prompt on Qt 6.
(I have no idea what this KateWaiter
does but I ported it, too)