<!--
See our full bug reporting guidelines at https://inkscape.org/contribute/report-bugs/
Writing a good bug report will ensure we'll be able to help efficiently. 🙂
-->
#### Summary:
<!-- Summarize the issue/suggestion concisely: -->
There is a rare crash on desktop removal which could be related to signals.
#### Steps to reproduce:
<!-- Describe what you did (step-by-step) so we can reproduce: -->
The crash steps is pretty involved:
- Open a lot of dialogs.
- Close them all.
- Spam Ctrl+Shift+{W,E,R,T,Y,U}, occasionally lifting Ctrl or Shift.
#### What happened?
<pre>
0# Inkscape::Application::crash_handler(int) in /usr/bin/../lib64/inkscape/libinkscape_base.so.1.4.3.0
1# 0x0000000000044190 in /lib64/libc.so.6
2# sigc::internal::signal_emit0<void, sigc::nil>::emit(sigc::internal::signal_impl*) in /usr/bin/../lib64/inkscape/libinkscape_base.so.1.4.3.0
3# Inkscape::Selection::_emitChanged(bool) in /usr/bin/../lib64/inkscape/libinkscape_base.so.1.4.3.0
4# Inkscape::Application::remove_desktop(SPDesktop*) in /usr/bin/../lib64/inkscape/libinkscape_base.so.1.4.3.0
5# SPDesktopWidget::on_unrealize() in /usr/bin/../lib64/inkscape/libinkscape_base.so.1.4.3.0
6# Gtk::Widget_Class::unrealize_callback(_GtkWidget*) in /usr/lib64/libgtkmm-3.0.so.1
7# 0x000000000001884E in /usr/lib64/libgobject-2.0.so.0
8# 0x000000000002DA64 in /usr/lib64/libgobject-2.0.so.0
9# g_signal_emit_valist in /usr/lib64/libgobject-2.0.so.0
10# g_signal_emit in /usr/lib64/libgobject-2.0.so.0
11# gtk_widget_unrealize in /usr/lib64/libgtk-3.so.0
12# 0x00000000000D9DB0 in /usr/lib64/libgtk-3.so.0
13# 0x0000000000350FFC in /usr/lib64/libgtk-3.so.0
14# 0x000000000001884E in /usr/lib64/libgobject-2.0.so.0
15# 0x000000000002DA64 in /usr/lib64/libgobject-2.0.so.0
16# g_signal_emit_valist in /usr/lib64/libgobject-2.0.so.0
17# g_signal_emit in /usr/lib64/libgobject-2.0.so.0
18# gtk_widget_unrealize in /usr/lib64/libgtk-3.so.0
19# 0x000000000035BCA9 in /usr/lib64/libgtk-3.so.0
20# Gtk::Container_Class::forall_vfunc_callback(_GtkContainer*, int, void (*)(_GtkWidget*, void*), void*) in /usr/lib64/libgtkmm-3.0.so.1
21# 0x0000000000350FFC in /usr/lib64/libgtk-3.so.0
22# 0x000000000035F3D7 in /usr/lib64/libgtk-3.so.0
23# Gtk::Widget_Class::unrealize_callback(_GtkWidget*) in /usr/lib64/libgtkmm-3.0.so.1
24# g_closure_invoke in /usr/lib64/libgobject-2.0.so.0
25# 0x000000000002C4B4 in /usr/lib64/libgobject-2.0.so.0
26# 0x000000000002D8E2 in /usr/lib64/libgobject-2.0.so.0
27# g_signal_emit_valist in /usr/lib64/libgobject-2.0.so.0
28# g_signal_emit in /usr/lib64/libgobject-2.0.so.0
29# gtk_widget_unrealize in /usr/lib64/libgtk-3.so.0
30# 0x000000000034F428 in /usr/lib64/libgtk-3.so.0
31# 0x0000000000362D62 in /usr/lib64/libgtk-3.so.0
32# 0x00000000000CD77F in /usr/lib64/libgtk-3.so.0
33# g_object_run_dispose in /usr/lib64/libgobject-2.0.so.0
34# Gtk::Window::_release_c_instance() in /usr/lib64/libgtkmm-3.0.so.1
35# Gtk::ApplicationWindow::~ApplicationWindow() in /usr/lib64/libgtkmm-3.0.so.1
36# InkscapeWindow::~InkscapeWindow() in /usr/bin/../lib64/inkscape/libinkscape_base.so.1.4.3.0
37# InkscapeWindow::~InkscapeWindow() in /usr/bin/../lib64/inkscape/libinkscape_base.so.1.4.3.0
38# InkscapeApplication::destroy_window(InkscapeWindow*, bool) in /usr/bin/../lib64/inkscape/libinkscape_base.so.1.4.3.0
39# InkscapeWindow::on_delete_event(_GdkEventAny*) in /usr/bin/../lib64/inkscape/libinkscape_base.so.1.4.3.0
40# Gtk::Widget_Class::delete_event_callback(_GtkWidget*, _GdkEventAny*) in /usr/lib64/libgtkmm-3.0.so.1
41# 0x000000000009FCE2 in /usr/lib64/libgtk-3.so.0
42# 0x0000000000018914 in /usr/lib64/libgobject-2.0.so.0
43# 0x000000000002CCC4 in /usr/lib64/libgobject-2.0.so.0
44# g_signal_emit_valist in /usr/lib64/libgobject-2.0.so.0
45# g_signal_emit in /usr/lib64/libgobject-2.0.so.0
46# 0x0000000000345C1C in /usr/lib64/libgtk-3.so.0
47# gtk_main_do_event in /usr/lib64/libgtk-3.so.0
48# 0x0000000000041825 in /usr/lib64/libgdk-3.so.0
49# 0x00000000000762B2 in /usr/lib64/libgdk-3.so.0
50# 0x000000000005EB96 in /usr/lib64/libglib-2.0.so.0
51# 0x0000000000061C9F in /usr/lib64/libglib-2.0.so.0
52# g_main_context_iteration in /usr/lib64/libglib-2.0.so.0
53# g_application_run in /usr/lib64/libgio-2.0.so.0
54# main in /usr/bin/inkscape
55# 0x000000000002AD14 in /lib64/libc.so.6
56# __libc_start_main in /lib64/libc.so.6
57# _start in /usr/bin/inkscape
</pre>
<details><summary>System info</summary>
Inkscape 1.4.3 (168cca90f1, 2026-04-12)
Compile (Run)
GLib version: 2.86.4
GTK version: 3.24.51 (3.24.51)
glibmm version: 2.66.7
gtkmm version: 3.24.10
libxml2 version: 2.15.1
libxslt version: 1.1.45
Cairo version: 1.18.4 (1.18.4)
Pango version: 1.57.0 (1.57.0)
HarfBuzz version: 12.3.2 (12.3.2)
OS version: Slackware 15.0 x86_64 (post 15.0 -current)
</details>
#### What should have happened?
No crash
#### Version info
<!--
Open 'Help > About' and click on the little bug icon in the bottom right corner that copies the debug information to your clipboard. For command line users, run 'inkscape --debug-info'.
-->
```
Inkscape 1.4.3 (168cca90f1, 2026-04-12)
Compile (Run)
GLib version: 2.86.4
GTK version: 3.24.51 (3.24.51)
glibmm version: 2.66.7
gtkmm version: 3.24.10
libxml2 version: 2.15.1
libxslt version: 1.1.45
Cairo version: 1.18.4 (1.18.4)
Pango version: 1.57.0 (1.57.0)
HarfBuzz version: 12.3.2 (12.3.2)
OS version: Slackware 15.0 x86_64 (post 15.0 -current)
```
<!--
❤️ Thank you for filling in a new bug report, we appreciate the help! ❤️
Please be patient while we try to find the time to look into your issue.
Remember that Inkscape is developed by volunteers in their spare time, we'll try our best to respond to all reports.
-->
<!--
Please be careful when/after writing # for example in logs, code, or versions of linux
- use inline code span - single backticks (`) before and after it, like this - `#1618`
- use multi-line code block - triple backticks (```) to fence/enclose console logs
- attach long logs as a text file.
-->


























