[Libreoffice-commits] core.git: vcl/README.lifecycle

Michael Meeks michael.meeks at collabora.com
Wed Apr 29 12:51:59 PDT 2015


 vcl/README.lifecycle |   16 ++++++++++++++++
 1 file changed, 16 insertions(+)

New commits:
commit 0c0569fb2a48a95d0c1f69234548ddd7ec32b59b
Author: Michael Meeks <michael.meeks at collabora.com>
Date:   Wed Apr 29 20:57:47 2015 +0100

    More bits on event emission during dispose.
    
    Change-Id: I89b6735bca19eec1ccc1d14cd3c35e88fd36d51f

diff --git a/vcl/README.lifecycle b/vcl/README.lifecycle
index daa5fbb..7c2ceb2 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.
+
+


More information about the Libreoffice-commits mailing list