@b4n requested changes on this pull request.

Great work investigating and fixing this!

I came to the same conclusion as you did trying to see how I'd fix that.
Logic looks good to me, and I couldn't find a case of bad behavior when actually trying it 👍

I'd just like a few small fixups and we should be good to go.


In src/document.c:

> @@ -704,7 +704,7 @@ static gboolean remove_page(guint page_num)
 
 	g_return_val_if_fail(doc != NULL, FALSE);
 
-	if (doc->changed && ! dialogs_show_unsaved_file(doc))
+	if (! main_status.closing_all && doc->changed && ! dialogs_show_unsaved_file(doc))

Please add a comment above, like /* if we're closing all, document_account_for_unsaved() has been called already, no need to ask again. */


In src/document.c:

> @@ -3387,11 +3387,7 @@ gboolean document_account_for_unsaved(void)
 				return FALSE;
 		}
 	}
-	/* all documents should now be accounted for, so ignore any changes */
-	foreach_document (i)
-	{
-		documents[i]->changed = FALSE;
-	}
+

Now you removed this, maybe remove the comment stating that If successful, this should always be followed up with a call to document_close_all() right above the function.


In src/document.c:

> @@ -3387,11 +3387,7 @@ gboolean document_account_for_unsaved(void)
 				return FALSE;
 		}
 	}
-	/* all documents should now be accounted for, so ignore any changes */
-	foreach_document (i)
-	{
-		documents[i]->changed = FALSE;
-	}
+

Variable i is now unused and should be removed.


In src/document.c:

> @@ -3400,14 +3396,6 @@ static void force_close_all(void)
 {
 	guint i, len = documents_array->len;

len is now unused and should be removed.


In src/libmain.c:

> @@ -1262,16 +1262,20 @@ static void queue_free(GQueue *queue)
 }
 
 
-static void do_main_quit(void)
+static gboolean do_main_quit(void)
 {
 	geany_debug("Quitting...");

Could you move the debug info after docuent_close_all()? now it'd be kind of confusing if the user aborted the quitting process.


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