Created attachment 8746 Backtrace While investigating bug 15580, I noticed that the xfc4-panel would crash when closing the dialog with the “demand attention” flag. Reason for this is that in the blinking timeout occurs after the window is closed (and hence the corresponding window button is freed), then the panel tries to update a freed widget, which cannot end well. Backtrace attached.
Created attachment 8747 [PATCH] arrow-button: Remove timeout on dispose The blinking source timeout has a GDestroyNotify function associated that will update the button when the timeout is removed. But the timeout is removed on the button finalize, i.e. once the object is freed, which will lead to a crash trying to access memory already freed. I think the original author meant to use `dispose` instead of `finalize` for removing the blinking timeout.
Created attachment 8751 Updated patch
Created attachment 8753 Updated patch
Olivier Fourdan referenced this bugreport in commit 0bf9842cfa78a7e89ab1022f39ce60049ab0203f arrow-button: Remove timeout on dispose (Bug #15696) https://git.xfce.org/xfce/xfce4-panel/commit?id=0bf9842cfa78a7e89ab1022f39ce60049ab0203f
Thanks for the patch! I hadn't even noticed that scenario yet, but most likely that crash would have happened with Gtk+2 as well. (and also for the attention to detail with the commit message - much appreciated!)