On Jan 31, 2011, at 3:41 PM, Nick Guenther wrote:

> I'm using WebKit2 and trying to capture when it's drawn. The trouble is I 
> want to do this to an offscreen window. I'm sending WM_PRINTCLIENT but after 
> some digging I found that while the WM_PAINT handler emits a didDraw(), the 
> WM_PRINTCLIENT one does not:
> 
> Source\WebKit2\UIProcess\win:
> 
> LRESULT WebView::onPaintEvent(HWND hWnd, UINT message, WPARAM, LPARAM, bool& 
> handled)
> {
>    PAINTSTRUCT paintStruct;
>    HDC hdc = ::BeginPaint(m_window, &paintStruct);
> 
>    if (m_page->isValid() && m_page->drawingArea() && 
> m_page->drawingArea()->paint(IntRect(paintStruct.rcPaint), hdc))
>        m_page->didDraw();
>    else {
>        // Mac checks WebPageProxy::drawsBackground and
>        // WebPageProxy::drawsTransparentBackground here, but those are always 
> false on Windows
>        // currently (see <http://webkit.org/b/52009>).
>        ::FillRect(hdc, &paintStruct.rcPaint, 
> reinterpret_cast<HBRUSH>(COLOR_WINDOW + 1));
>    }
> 
>    ::EndPaint(m_window, &paintStruct);
> 
>    handled = true;
>    return 0;
> }
> 
> LRESULT WebView::onPrintClientEvent(HWND hWnd, UINT, WPARAM wParam, LPARAM, 
> bool& handled)
> {
>    HDC hdc = reinterpret_cast<HDC>(wParam);
>    RECT winRect;
>    ::GetClientRect(hWnd, &winRect);
>    IntRect rect = winRect;
> 
>    m_page->drawingArea()->paint(rect, hdc);
> 
>    handled = true;
>    return 0;
> }
> 
> Would it be reasonable to add didDraw() to onPrintClientEvent()?

Yes. I actually just fixed this in r78200.

> Actually I noticed a whole bunch of callbacks actually aren't called, in 
> WebPageProxy.h are declared private, even, like setWindowFrame. What's the 
> plan for all these, is anyone working on them?

setWindowFrame is called when a Messages::WebPageProxy::SetWebFrame message is 
received from the web process. The web process sends this message when 
WebChromeClient::setWindowRect is called.

-Adam


_______________________________________________
webkit-help mailing list
webkit-help@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-help

Reply via email to