Chromium Code Reviews
DescriptionFix theme change paint issue on linux.
Merging to M58
We had added a recursion guard in the Widget::OnNativeThemeUpdated() function in this patch
https://codereview.chromium.org/2703933002. This was to work around a crash we were seeing
on Windows where views would be added/removed while the rootview was propagating the theme
changed notification to child views effectively making the iterators invalid.
The recursion killer check in Widget::FrameTypeChanged() causes a painting bug on Linux.
The callstack thanks to thomasanderson is here.
The BrowserView::UserChangedTheme() function also has a recursion killer which is not set to
true here, which indicates that this stack is legitimate.
Fixes as below:
1. BrowserFrame now overrides the Widget::OnNativeThemeUpdated() function. After calling the base class
we call the newly added function NativeThemeUpdated() in the BrowserView which ensures that we don't
nuke the views while the iteration is going on in View::PropagateNativeThemeChanged()
2. In the HWNDMessageHandler::SetFullscreen method we update the fullscreen window map after we call PerformDwmTransition(). This internally at times causes a window pos changed to treat the now non fullscreen window as fullscreen leading to a DCHECK. Fixed by moving this code above.
I verified that this does not regress the previous theme fix http://crbug.com/681525 on Windows.
BUG=700135
TBR=sky
NOTRY=true
NOPRESUBMIT=true
Review-Url: https://codereview.chromium.org/2743793003
Cr-Commit-Position: refs/heads/master@{#456580}
(cherry picked from commit 3d0d1cdfad3fd70d8d579dd03004b4e09d01f2f1)
Review-Url: https://codereview.chromium.org/2753813003
Cr-Commit-Position: refs/branch-heads/3029@{#214}
Cr-Branched-From: 939b32ee5ba05c396eef3fd992822fcca9a2e262-refs/heads/master@{#454471}
Committed: https://chromium.googlesource.com/chromium/src/+/9b58fa9d8b8e60498a56101a16987d85d9ffecab
Patch Set 1 #
Messages
Total messages: 13 (8 generated)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||