Fix crash on quit
Fixes crash on exit by applying Nathan's suggestion (#2358 (comment 692546246)) and making desktop widget own and delete CanvasGrid. That logic around ownership there is shaky.
This issue was exposed by merging of improved canvas repaint MR.
Original crash backtrace:
Gtk:ERROR:../gtk/gtkwidget.c:5871:gtk_widget_get_frame_clock: assertion failed: (window != NULL)
Bail out! Gtk:ERROR:../gtk/gtkwidget.c:5871:gtk_widget_get_frame_clock: assertion failed: (window != NULL)
Process 28541 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
frame #0: 0x00000001a87719b8 libsystem_kernel.dylib`__pthread_kill + 8
libsystem_kernel.dylib`__pthread_kill:
-> 0x1a87719b8 <+8>: b.lo 0x1a87719d8 ; <+40>
0x1a87719bc <+12>: pacibsp
0x1a87719c0 <+16>: stp x29, x30, [sp, #-0x10]!
0x1a87719c4 <+20>: mov x29, sp
Target 0: (inkscape) stopped.
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
* frame #0: 0x00000001a87719b8 libsystem_kernel.dylib`__pthread_kill + 8
frame #1: 0x00000001a87a4eb0 libsystem_pthread.dylib`pthread_kill + 288
frame #2: 0x00000001a86e2314 libsystem_c.dylib`abort + 164
frame #3: 0x0000000100f5b6e0 libglib-2.0.0.dylib`g_assertion_message + 464
frame #4: 0x0000000100f5b754 libglib-2.0.0.dylib`g_assertion_message_expr + 116
frame #5: 0x0000000102ab48f0 libgtk-3.0.dylib`gtk_widget_get_frame_clock + 196
frame #6: 0x0000000102ac78cc libgtk-3.0.dylib`unref_tick_callback_info + 124
frame #7: 0x0000000102ab494c libgtk-3.0.dylib`gtk_widget_on_frame_clock_update + 92
frame #8: 0x000000010050e5b8 libgobject-2.0.0.dylib`_g_closure_invoke_va + 320
frame #9: 0x0000000100524380 libgobject-2.0.0.dylib`g_signal_emit_valist + 1220
frame #10: 0x0000000100524b24 libgobject-2.0.0.dylib`g_signal_emit + 28
frame #11: 0x00000001013c3e6c libgdk-3.0.dylib`gdk_frame_clock_paint_idle + 644
frame #12: 0x00000001013ad1bc libgdk-3.0.dylib`gdk_threads_dispatch + 88
frame #13: 0x0000000100f2e370 libglib-2.0.0.dylib`g_timeout_dispatch + 28
frame #14: 0x0000000100f329bc libglib-2.0.0.dylib`g_main_context_dispatch + 336
frame #15: 0x0000000100f32d50 libglib-2.0.0.dylib`g_main_context_iterate + 520
frame #16: 0x0000000100f32e10 libglib-2.0.0.dylib`g_main_context_iteration + 112
frame #17: 0x0000000100dd1340 libgio-2.0.0.dylib`g_application_run + 544
frame #18: 0x000000010000f564 inkscape`main(argc=<unavailable>, argv=<unavailable>) at inkscape-main.cpp:259:60 [opt]
Edited by Mike Kowalski