| Index: webkit/glue/plugins/webplugin_delegate_impl.cc
|
| ===================================================================
|
| --- webkit/glue/plugins/webplugin_delegate_impl.cc (revision 8294)
|
| +++ webkit/glue/plugins/webplugin_delegate_impl.cc (working copy)
|
| @@ -14,6 +14,7 @@
|
| #include "webkit/default_plugin/plugin_impl.h"
|
| #include "webkit/glue/glue_util.h"
|
| #include "webkit/glue/webplugin.h"
|
| +#include "webkit/glue/plugins/plugin_constants_win.h"
|
| #include "webkit/glue/plugins/plugin_instance.h"
|
| #include "webkit/glue/plugins/plugin_lib.h"
|
| #include "webkit/glue/plugins/plugin_list.h"
|
| @@ -22,7 +23,6 @@
|
|
|
| static StatsCounter windowless_queue("Plugin.ThrottleQueue");
|
|
|
| -static const wchar_t kNativeWindowClassName[] = L"NativeWindowClass";
|
| static const wchar_t kWebPluginDelegateProperty[] =
|
| L"WebPluginDelegateProperty";
|
| static const wchar_t kPluginNameAtomProperty[] = L"PluginNameAtom";
|
| @@ -793,6 +793,28 @@
|
| return TRUE;
|
| }
|
|
|
| + static UINT custom_msg = RegisterWindowMessage(kPaintMessageName);
|
| + if (message == custom_msg) {
|
| + // Get the invalid rect which is in screen coordinates and convert to
|
| + // window coordinates.
|
| + gfx::Rect invalid_rect;
|
| + invalid_rect.set_x(wparam >> 16);
|
| + invalid_rect.set_y(wparam & 0xFFFF);
|
| + invalid_rect.set_width(lparam >> 16);
|
| + invalid_rect.set_height(lparam & 0xFFFF);
|
| +
|
| + RECT window_rect;
|
| + GetWindowRect(hwnd, &window_rect);
|
| + invalid_rect.Offset(-window_rect.left, -window_rect.top);
|
| +
|
| + // The plugin window might have non-client area. If we don't pass in
|
| + // RDW_FRAME then the children don't receive WM_NCPAINT messages while
|
| + // scrolling, which causes painting problems (http://b/issue?id=923945).
|
| + RedrawWindow(hwnd, &invalid_rect.ToRECT(), NULL,
|
| + RDW_UPDATENOW | RDW_INVALIDATE | RDW_ALLCHILDREN | RDW_FRAME);
|
| + return FALSE;
|
| + }
|
| +
|
| current_plugin_instance_ = delegate;
|
|
|
| switch (message) {
|
|
|