Maybe a use case will make it easier to explain? I was working with a plugin to save the current fold state when a document is being closed. This works just fine, except in a specific case - if the document is being closed and there are unsaved changes, i.e. the 'changed' flag in the document reference is TRUE. In this case I would want to ignore saving the fold state since the next time it is opened all the fold points will likely be wrong. A simple approach to address this would be to not save the fold state on document close if this flag is TRUE. This works when a document is closed when I close a tab in the UI - I see the changed flag is set to TRUE and can therefore ignore trying to save the fold state.

There is a specific case where Geany closes a document and the 'changed' state is always FALSE, even if the document has changes that the user discarded. When Geany calls the 'document_close_all' function, like when Geany is being closed, internally that function calls 'document_account_for_saved' which in turn will always set the 'changed' flag to FALSE before closing a document, so when the document is closed I can never tell if there are unsaved changes or not. This fix changes Geany to close all documents, but to leave the 'changed' flag untouched so a plugin can see whether any unsaved changes are being discarded when a document is being closed.


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.