I am looking for a way to differentiate the following two events:
- Closing a view by clicking the ‘X’ icon on its tab
- Closing Sublime Text
According to my tests, both events trigger the on_close
method in an EventListener
class. (The only way I could test this was to write to a file upon closure or quitting.) I need to separate these events because I want a specific file that is a part of the rest of the plugin to be deleted when closed. At the moment, the file is also deleted when I exit the application as the on_close
method is still called.
I’ve tested the plugin_unloaded
function, but it seems as if it called after the files are closed as I tried creating a global flag exiting
(boolean) which can be checked inside on_close
and there was no difference.
Are there any ways around this?
EDIT:
I’ve changed the hook to on_pre_close
and added a yes_no_cancel_dialog
to interrupt the file closing so that the method ends if ‘Don’t Save’ (sublime.DIALOG_NO
) is clicked. The view is then cloned to prevent it from ‘closong’.