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 or view it on GitHub:
https://github.com/geany/geany/pull/1857#issuecomment-388686531

Reply via email to