Не уверен, что это относится к вашей ситуации, но это может относиться к другим, кто просматривает эту тему.
Мое приложение имеет main () и в конце имеет цикл while (! Shell.isDisposed).
Когда приложение запускается, этот цикл идет, и когда приложение закрывается, этот цикл заканчивается, и он падает до того, что когда-либо находится после него в методе main.
Именно здесь я проверяю, не загрязнен ли редактор и не изменились ли предпочтения, и сопоставляю их с условиями.
Мой метод, прикрепленный к файлу close, удаляет оболочку и вызывает метод closeCurrent (), но если кто-то щелкает значок закрытия окна «x», он попадает сюда, и я снова проверяю, не является ли что-то грязным, и сохраняю, если мне нужно.
while (!shlCpbtool.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
// exit
if(dirty){
closeCurrent();
}