Improve "--quit" option
This MR completes !30 (merged), as discussed in its header. It makes the --quit option behave as follows:
- get the active window if there is one, else exit;
- if it is a
MousepadWindowand if we haven't already tried, try to save all documents; - else, if we haven't already tried, try to close the window gracefully;
- else, as a last resort, destroy the window;
- go to the first point.
When all windows are destroyed, the application switches automatically to shutdown().
To achieve this, I had in particular to add each "child window of a main window" (in practice a dialog window created from a MousepadWindow at some point in its life cycle) to the application windows list. This led me to move some code from mousepad/mousepad-window.c into mousepad/mousepad-dialogs.c, which is probably not a bad thing.
For the loop above, I used a combination of g_timeout_add() and g_signal_connect() to the GtkApplication "window-removed" signal, by delaying save/close/destroy actions so that everything runs smoothly.