Created attachment 353707 [details] screenshot of intermediate, half-focused state Steps to reproduce: 1. Make sure that the search bar is empty. 2. Focus the search bar. 3. Click on the Desktop to unfocus the window 4. Click the window to activate it. Expected results: The window's appearance should change from completely unfocused to completely focused in a uniform instant transition. Actual results: There's a short flicker created by an intermediate state. See screenshot.
Easy to see this in debug builds when running something like libgmalloc too.
The screenshot shows that the window is repainted after it has become main but before the "active" attribute has been set on the window. So "natively"-rendered things like unified toolbar and scrollbar have the active appearance, and the rest (which is styled with CSS, dependent on the "active" attribute) still have the inactive appearance. Also note that the titlebar is still inactive. - I think I know what's going on. When the window is inactive, the "empty" searchbar contains a placeholder text (the name of the search engine). This is what happens when the window is activated: - Mac OS X marks the whole window as "needing display" - NS_ACTIVATE events are sent -> the search bar is focused -> the placeholder text disappears -> a synchronous repaint is invoked => first repaint, bad -> the "active" attribute is set on the window - drawRect is called (regularly) => second repaint, good So this is just another case of unfortunate synchronous repaints. And the patch in bug 459319 fixes this bug.
Depends on: 459319
Fixed by bug 459319.
Status: NEW → RESOLVED
Last Resolved: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla1.9.2a1
You need to log in before you can comment on or make changes to this bug.