summaryrefslogtreecommitdiff
path: root/src/ui/root.c
diff options
context:
space:
mode:
authorJaakko Keränen <jaakko.keranen@iki.fi>2021-09-18 13:21:42 +0300
committerJaakko Keränen <jaakko.keranen@iki.fi>2021-09-18 13:21:42 +0300
commit7d7110c1dfe376334317983b4c2734ddb474ac8c (patch)
treed198c6bc21922639676c9284c3f9fe309f6d54ea /src/ui/root.c
parent95941a8fca886ba258716c535d51d0d68d075993 (diff)
Fixed crash when hovered widget is destroyed
Diffstat (limited to 'src/ui/root.c')
-rw-r--r--src/ui/root.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/ui/root.c b/src/ui/root.c
index 21bed366..b00fab28 100644
--- a/src/ui/root.c
+++ b/src/ui/root.c
@@ -278,6 +278,7 @@ void destroyPending_Root(iRoot *d) {
278 } 278 }
279 if (widget->flags & keepOnTop_WidgetFlag) { 279 if (widget->flags & keepOnTop_WidgetFlag) {
280 removeOne_PtrArray(d->onTop, widget); 280 removeOne_PtrArray(d->onTop, widget);
281 widget->flags &= ~keepOnTop_WidgetFlag;
281 } 282 }
282 iAssert(indexOf_PtrArray(d->onTop, widget) == iInvalidPos); 283 iAssert(indexOf_PtrArray(d->onTop, widget) == iInvalidPos);
283 if (widget->parent) { 284 if (widget->parent) {
@@ -287,6 +288,13 @@ void destroyPending_Root(iRoot *d) {
287 iRelease(widget); 288 iRelease(widget);
288 remove_PtrSetIterator(&i); 289 remove_PtrSetIterator(&i);
289 } 290 }
291#if 0
292 printf("Root %p onTop (%zu):\n", d, size_PtrArray(d->onTop));
293 iConstForEach(PtrArray, t, d->onTop) {
294 const iWidget *p = *t.value;
295 printf(" - %p {%s}\n", p, cstr_String(id_Widget(p)));
296 }
297#endif
290 setCurrent_Root(oldRoot); 298 setCurrent_Root(oldRoot);
291} 299}
292 300