Hello, Chris.

Sorry for the late answer. Please look at the test in
sys.web/Tests/standalone/themes/PageLinks. On dotnet it outputs 

child.set_ImageUrl
child.OnInit
parent.set_ImageUrl
parent.OnInit
page.OnInit

The property setters set_ImageUrl are called when the theme is applied.

This is the output of unpatched sys.web:

page.OnInit
child.OnInit
parent.OnInit

In addition to the incorrect flow, this test shows the invalid behaviour
(missing image). After applying the patch, both the flow and the image
are fixed.

Here is how the flow changed. Was:

1. InitializeTheme + ApplyThemeRecursive (incorrect recursion, should be
in the same depth-first search as OnInit)
2. Init Recursive
3. ApplyMasterPage

As result, 'ApplyThemeRecursive' did not affect any controls related to
the master page feature. 

After the fix the flow became:

1. Initialize Theme
2. ApplyMasterPage
3. InitRecursive + ApplyTheme

As a result, when the theme is applied, all the controls are already
created.

When I started to trace the order of set_ImageUrl, I found a mistake in
my previous patch: first child.OnInit should be called, and only then
ApplyTheme. Anyway, it's easy to see that on dotnet ApplyTheme (however
it's named) is called during the same tree travel as OnInit.

If no one objects I will commit.

Andrew.

Attachment: ApplyTheme.patch
Description: ApplyTheme.patch

_______________________________________________
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list

Reply via email to