Closed Bug 597268 Opened 14 years ago Closed 14 years ago

Quickdraw plugins flicker

Categories

(Core Graveyard :: Plug-ins, defect)

x86
macOS
defect
Not set
normal

Tracking

(blocking2.0 beta7+)

RESOLVED FIXED
Tracking Status
blocking2.0 --- beta7+

People

(Reporter: jrmuizel, Assigned: jrmuizel)

References

Details

Attachments

(1 file, 1 obsolete file)

No description provided.
Attached patch A fix (obsolete) — Splinter Review
roc can explain why this works better than I.
Comment on attachment 476110 [details] [diff] [review] A fix This looks fine. Let's get it in (plus the patch in bug 596414 this depends on).
Attachment #476110 - Flags: review+
Oh, I think you should check mIsPluginView as well as mPluginDrawingModel == NPDrawingModelQuickDraw.
If you do this can you get rid of the Quickdraw paint event code in nsObjectFrame? Specifically, the stuff in "nsPluginInstanceOwner::Paint".
I'd like to review a final version of this before it goes in.
I only see carbon event model draw code in nsPluginInstanceOwner::Paint.
We can(In reply to comment #4) > If you do this can you get rid of the Quickdraw paint event code in > nsObjectFrame? Specifically, the stuff in "nsPluginInstanceOwner::Paint". We can and should, but we don't have to do it in this patch.
Attachment #476110 - Attachment is obsolete: true
Attachment #476187 - Flags: review?
Attachment #476187 - Flags: review? → review?(joshmoz)
(After the patches here and in bug 596414 land, we can also remove code in layout that handles painting of child widgets.)
Attachment #476187 - Flags: review?(joshmoz) → review+
So why exactly does this patch fix things? What's the difference between sending the update event directly from drawRect vs from nsObjectFrame.cpp?
blocking2.0: --- → beta7+
Assignee: nobody → jmuizelaar
Blocks: 596414
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
When we do the update via nsObjectFrame, the plugin paints onto the window while we're drawing the contents of retained layer buffers. After that, the layer manager draws the buffers onto the window, overwriting what the plugin painted. When we do the update via drawRect on the plugin's view, the plugin paints onto the window after the drawRect for the main NSView, so after the layer manager has drawn layer buffers onto the window.
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: