#578 closed defect (fixed)
events weird behavior
Reported by: | ilia | Owned by: | alex |
---|---|---|---|
Priority: | high | Milestone: | |
Component: | Core | Version: | 0.3 |
Keywords: | Cc: | ||
Blocked By: | Blocking: |
Description (last modified by )
See test_Tree_9. It should destroy tree with all implicitly created widgets (selector, controller), but actually it doesn't.
The reason is that one of them recieves the treeDestroy message (event.topic) and kills itself, while another one (registered right after 1nd one) does not recieve anything.
Change History (10)
comment:1 Changed 15 years ago by
comment:2 Changed 15 years ago by
Priority: | normal → high |
---|
The next statement right after tree destruction can be "make new tree and new controller with same name".
The suggested workaround will not handle this..
comment:3 Changed 15 years ago by
Well, on second thought maybe my theory doesn't make much sense anyway. But what's supposed to happen if a function deletes itself (while it is running) anyway?
comment:4 Changed 15 years ago by
Description: | modified (diff) |
---|---|
Milestone: | 0.3release → 0.3.1 |
Priority: | high → normal |
no idea what's going on after nearly half an hour of debugging. Punting to 0.3.1
comment:5 Changed 15 years ago by
Owner: | Dustin Machi deleted |
---|
I'm not sure exactly why this one got assigned to me, nor do I currently have any idea how to fix this.
comment:6 Changed 15 years ago by
Owner: | set to alex |
---|
comment:8 Changed 15 years ago by
Milestone: | 0.3.1 → 0.4 |
---|---|
Version: | 0.4 → 0.3 |
comment:9 Changed 15 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
Fixed by Fredrik in [4461]
Heh, that's a good one. I assume it's because the code to call the 2nd one is stored inside the first one. (That's not how it works conceptually, but it's how it works internally.)
I'm not sure if we should think of this as a design flaw or what, but one way to workaround the problem should be, instead of the 1st object destroying itself instantly, set a timer for 0ms to destroy itself. like resizeSoon(). Maybe that would work. (hypothetically speaking)