Ben, look at atlwin.h   CWindowImplBaseT< TBase, TWinTraits
>::WindowProc

I believe that OnFinalMessage(window) is called right there if msg ==
WM_NCDESTROY

right about line 3101 on that file.

Does that help you sort out this?

On Nov 23, 3:08 pm, "Ben Goodger (Google)" <[EMAIL PROTECTED]> wrote:
> I was investigating an assert I was seeing in the new InfoBar system,
> and I noticed this interesting condition:
>
> When a window is WM_NCDESTROYed, its focus manager is shut down,
> however the view hierarchy of that window isn't destroyed until the
> WidgetWin is deleted (in OnFinalMessage).
>
> There are cases where the destructors of various views attempt to
> manipulate the focus manager, but in this case the focus manager is
> gone, hence the assert.
>
> Then I noticed code in BrowserView::TabDetachedAt that works around
> this problem for the TabContentsContainerView by forcing the focus
> manager tweaking to be done at a point in time before WM_NCDESTROY
> occurs. So as a quick fix I put logic for the InfoBars in there too.
>
> But this got me to thinking that this is a general weakness of the
> views system and this problem could crop up in other places, where
> they may not be such an easy workaround as my change. So I am
> proposing we delete the RootView in WidgetWin::OnDestroy or when
> handling WM_NCDESTROY but before the focus manager is destroyed,
> rather than wait until the WidgetWin is deleted.
>
> I would tend to prefer OnDestroy, since it feels less ad-hoc, though
> is it possible for a window to receive any messages after WM_DESTROY
> and before WM_NCDESTROY? If so, I'd tend to want to put the
> destruction in the WM_NCDESTROY handler just to be on the safe side.
>
> What do you think?
>
> -Ben
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Chromium-dev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/chromium-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to