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
MousepadWindow
and 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.