[Mono-dev] RE: improved patch for ApplyTheme
Andrew Skiba
andrews at mainsoft.com
Sun May 21 10:23:02 EDT 2006
Sorry, I sent the old patch in the last message. This is the correct
one.
> -----Original Message-----
> From: Andrew Skiba
> Sent: Sunday, May 21, 2006 17:12
> To: 'Chris Toshok'
> Cc: mono-devel-list at lists.ximian.com
> Subject: improved patch for ApplyTheme
>
> 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.
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ApplyTheme.patch
Type: application/octet-stream
Size: 2221 bytes
Desc: ApplyTheme.patch
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20060521/bed65831/attachment.obj
More information about the Mono-devel-list
mailing list