diff options
author | Jaakko Keränen <jaakko.keranen@iki.fi> | 2021-09-18 13:21:42 +0300 |
---|---|---|
committer | Jaakko Keränen <jaakko.keranen@iki.fi> | 2021-09-18 13:21:42 +0300 |
commit | 7d7110c1dfe376334317983b4c2734ddb474ac8c (patch) | |
tree | d198c6bc21922639676c9284c3f9fe309f6d54ea /src/ui/root.c | |
parent | 95941a8fca886ba258716c535d51d0d68d075993 (diff) |
Fixed crash when hovered widget is destroyed
Diffstat (limited to 'src/ui/root.c')
-rw-r--r-- | src/ui/root.c | 8 |
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 | ||