[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