[Webkit-unassigned] [Bug 32174] New: QWebFrame::render() does not repaint QtPluginWidgets in the frame
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Fri Dec 4 15:05:12 PST 2009
https://bugs.webkit.org/show_bug.cgi?id=32174
Summary: QWebFrame::render() does not repaint QtPluginWidgets
in the frame
Product: WebKit
Version: 528+ (Nightly build)
Platform: Other
OS/Version: Mac OS X 10.5
Status: UNCONFIRMED
Severity: Normal
Priority: P2
Component: WebKit Qt
AssignedTo: webkit-unassigned at lists.webkit.org
ReportedBy: robert at roberthogan.net
If I do something like the following in QWebView::paintEvent():
QPainter p(this);
QWebFrame* frame;
frame->render(&p, QRegion);
p.setBrush(QColor(Qt::red));
p.drawRect(rect);
A red rectangle is drawn over the frame, however any qtpluginwidgets in the
frame are still visible.
It turns out frame->render() calls WebCore::FrameView->paintContents() and I
believe the qtpluginwidget receives no paint() or paintevent() for one of the
following reasons:
1 - the Qt WebCore::Widget doesn't reimplement paint() so nothing gets done
with the paint passed from paintContents()
2 - qtpluginwidget is a child of QWebView and the paint event is happening in
QWebFrame so it won't receive it
I'm currently stuck in trying to understand why the implementation of
QtPluginWidget in frameloaderclientqt.cpp expects its parent to be a
WebCore::FrameView when in createPlugin() in the same file its parent gets set
as qobject_cast<QWidget*>(m_webFrame->page()->d->client->pluginParent()), which
is a QWebView. As far as I can tell the two classes aren't related, so there's
a gap in my understanding.
--
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