diff options
author | Michael Meeks <michael.meeks@collabora.com> | 2015-04-29 20:57:47 +0100 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2015-04-29 20:58:10 +0100 |
commit | 0c0569fb2a48a95d0c1f69234548ddd7ec32b59b (patch) | |
tree | e9f54528800f5368235e852e94f359649aac83cf /vcl | |
parent | 4eed8e53313827f51cd97dcac7d2d437f53a2dbb (diff) |
More bits on event emission during dispose.
Change-Id: I89b6735bca19eec1ccc1d14cd3c35e88fd36d51f
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/README.lifecycle | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/vcl/README.lifecycle b/vcl/README.lifecycle index daa5fbb07eb2..7c2ceb218797 100644 --- a/vcl/README.lifecycle +++ b/vcl/README.lifecycle @@ -284,3 +284,19 @@ ways and often both. In simple cases, if we allocate the widget with VclPtrInstance or VclPtr<Foo>::Create - then we need to disposeAndClear it too. +** Event / focus / notification ordering + + In the old world, a large amount of work was done in the + ~Window destructor that is now done in Window::dispose. + + Since those Windows were in the process of being destroyed + themselves, their vtables were adjusted to only invoke Window + methods. In the new world, sub-classed methods such as + PreNotify, GetFocus, LoseFocus and others are invoked all down + the inheritance chain from children to parent, during dispose. + + The easiest way to fix these is to just ensure that these + cleanup methods, especially LoseFocus continue to work even + on disposed Window sub-class instances. + + |