Closed
Bug 505896
Opened 15 years ago
Closed 15 years ago
Screen flashes when moving puzzle pieces
Categories
(Core Graveyard :: Plug-ins, defect, P2)
Tracking
(status1.9.2 beta1-fixed)
VERIFIED
FIXED
mozilla1.9.2
Tracking | Status | |
---|---|---|
status1.9.2 | --- | beta1-fixed |
People
(Reporter: jmjjeffery, Assigned: roc)
References
()
Details
(Keywords: regression)
Attachments
(2 files)
(deleted),
patch
|
jimm
:
review+
|
Details | Diff | Splinter Review |
(deleted),
text/html
|
Details |
Visit the URL and pick any puzzle. Once you start moving the pieces around to solve the puzzle the screen flickers/flashes. Up until today's build JigZone has been working normally.
Still present with latest hourly:
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2a1pre) Gecko/20090722 Minefield/3.6a1pre (.NET CLR 3.5.30729) ID:20090722135815
changeset:
http://hg.mozilla.org/mozilla-central/rev/62d18b867afb
Updated•15 years ago
|
Reporter | ||
Comment 1•15 years ago
|
||
Regressed with the landing of roc's phase 1 huge patch.
good in changeset:
build: 7/21/09 1856hrs
changeset: http://hg.mozilla.org/mozilla-central/rev/913714436524 OK
bad:
build: 7/21/09 20:56 Roc's huge patch
changeset: http://hg.mozilla.org/mozilla-central/rev/5b0d9f36c0b3
Comment 2•15 years ago
|
||
it's the plugin (here: npjp2.dll) frame that flickers. fallout of Bug 339548?
Assignee | ||
Comment 3•15 years ago
|
||
You're talking about a white flash that appears periodically?
Assignee: nobody → roc
Flags: blocking1.9.2?
Assignee | ||
Comment 4•15 years ago
|
||
What seems to be happening here is that at least in some cases the puzzle applet is not double-buffering. At various times we're calling nsWindow::ConfigureChildren on the parent which calls Resize() on the plugin widget with aRepaint set to true, which asks the applet to repaint itself completely, which causes a flicker since the applet doesn't double-buffer.
The fix is to avoid that repainting as much as possible. But while testing that fix I found a related problem that needs more investigation.
Assignee | ||
Comment 5•15 years ago
|
||
The main change here is in nsWindow::ConfigureChildren, to only Resize with aInvalidate true if the size actually changed. Otherwise we can just Move, unless we didn't even move in which case we can do nothing.
But this exposed a problem in Scroll with SW_SCROLLCHILDREN, where SW_SCROLLCHILDREN sometimes moves children without repainting/blitting all of the child, if the child extends outside the area that's being blitted. So we need to detect that situation and explicitly invalidate.
Attachment #390187 -
Flags: review?(jmathies)
Assignee | ||
Comment 6•15 years ago
|
||
I've been using this file to manually test plugin scrolling where one plugin that overlaps the scrolled area is not moving, but another one is.
Unfortunately we have no way of automatically testing the effects of ScrollWindowEx and other Windows HWND manipulation, and I can't think of a good way to do it.
Comment 7•15 years ago
|
||
Seems like a good thing to get in for 1.9.2.
Flags: blocking1.9.2? → blocking1.9.2+
Priority: -- → P2
Updated•15 years ago
|
Attachment #390187 -
Flags: review?(jmathies) → review+
Comment 8•15 years ago
|
||
Comment on attachment 390187 [details] [diff] [review]
fix
win code looks fine.
However, I'd appreciate you moving that static function into the class, we've been trying to get away from that.
Assignee | ||
Comment 9•15 years ago
|
||
Why are you trying to get away from static functions? They're more efficient than class static member functions. For example, when they're only called once, gcc will inline the function no matter how big it is. And if it's not used at all, gcc warns.
Assignee | ||
Comment 10•15 years ago
|
||
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Reporter | ||
Comment 11•15 years ago
|
||
Verified fixed using hourly build:
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2a1pre) Gecko/20090727 Minefield/3.6a1pre (.NET CLR 3.5.30729) ID:20090727014139
changeset:
http://hg.mozilla.org/mozilla-central/rev/9d5e247b5052
Status: RESOLVED → VERIFIED
Comment 12•15 years ago
|
||
This caused bug 507402
Comment 13•15 years ago
|
||
Mass change: adding fixed1.9.2 keyword
(This bug was identified as a mozilla1.9.2 blocker which was fixed before the mozilla-1.9.2 repository was branched (August 13th, 2009) as per this query: http://is.gd/2ydcb - if this bug is not actually fixed on mozilla1.9.2, please remove the keyword. Apologies for the bugspam)
Keywords: fixed1.9.2
Updated•15 years ago
|
status1.9.2:
--- → beta1-fixed
Keywords: fixed1.9.2
Updated•3 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•