[Webkit-unassigned] [Bug 18831] [GTK] support windowless plugins

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Oct 29 21:46:28 PDT 2009


https://bugs.webkit.org/show_bug.cgi?id=18831





--- Comment #5 from Brian Tarricone <bjt23 at cornell.edu>  2009-10-29 21:46:26 PDT ---
Created an attachment (id=42175)
 --> (https://bugs.webkit.org/attachment.cgi?id=42175)
First mostly-broken patch

Ok, so I "implemented" windowless mode by merging in much of the Qt code to
support this, and modifying it for gtk/gdk.  It doesn't really work so well. 
This is my first foray into WebKit's code, so to be honest I don't really know
what I'm doing.

For windowless plugins, it creates an offscreen X Pixmap and passes that to the
plugin to draw on.  There are currently a few problems:

1.  The positioning of the plugin's contents (the XCopyArea() in
PluginView::paint()) is wrong when the page is scrolled to something other than
the origin.

2.  There are repaint/invalidation problems: sometimes areas don't get
repainted, some areas seem to not get painted over when they should.

3.  Input handling is pretty messed up, probably at least partly related to #1.

4.  I'm not sure how to implement the difference between the transparent and
opaque windowless modes (an XClearArea() before the XCopyArea() doesn't seem to
work, but that's probably because of my other painting issues, and is likely
sub-optimal anyway).

Any hints or guidance would be greatly appreciated.

Note:  I'm using this page:

http://www.communitymx.com/content/source/E5141/wmodenone.htm

as a nice test case.  The URL above is for windowed mode, and there are links
to the right to pages for wmode=transparent and wmode=opaque.  To see the
placement problem when the view is scrolled, the stock price chart view on
finance.yahoo.com works well.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list