diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-26 01:09:54 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-26 01:09:54 +0000 |
commit | 96318aa64aee83e9090105000aef785c25df3045 (patch) | |
tree | 8aa7b99e24c4f6681a229a8f162c0b14e078def9 /chrome/renderer | |
parent | 6cd245938255af499f59f1c56898b35def476442 (diff) | |
download | chromium_src-96318aa64aee83e9090105000aef785c25df3045.zip chromium_src-96318aa64aee83e9090105000aef785c25df3045.tar.gz chromium_src-96318aa64aee83e9090105000aef785c25df3045.tar.bz2 |
Need to call makeOpaque on the platform device after drawing widgets on XP.
Review URL: http://codereview.chromium.org/2191001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48234 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer')
-rw-r--r-- | chrome/renderer/pepper_widget.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/chrome/renderer/pepper_widget.cc b/chrome/renderer/pepper_widget.cc index b733cc7..cf2710a 100644 --- a/chrome/renderer/pepper_widget.cc +++ b/chrome/renderer/pepper_widget.cc @@ -12,6 +12,10 @@ #include "webkit/glue/plugins/webplugin.h" #include "webkit/glue/plugins/webplugin_delegate.h" +#if defined(OS_WIN) +#include "base/win_util.h" +#endif + static int g_next_id; typedef base::hash_map<int, PepperWidget*> WidgetMap; static base::LazyInstance<WidgetMap> g_widgets(base::LINKER_INITIALIZED); @@ -58,6 +62,14 @@ NPError NPPaintWidget(NPP instance, static_cast<WebPluginDelegatePepper*>(plugin->webplugin()->delegate()); Graphics2DDeviceContext* gdc = delegate->GetGraphicsContext(context); iter->second->Paint(gdc, *dirty); + +#if defined(OS_WIN) + if (win_util::GetWinVersion() == win_util::WINVERSION_XP) { + gdc->canvas()->getTopPlatformDevice().makeOpaque( + dirty->left, dirty->top, dirty->right - dirty->left, + dirty->bottom - dirty->top); + } +#endif return NPERR_NO_ERROR; } |