summaryrefslogtreecommitdiffstats
path: root/chrome/renderer
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-26 01:09:54 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-26 01:09:54 +0000
commit96318aa64aee83e9090105000aef785c25df3045 (patch)
tree8aa7b99e24c4f6681a229a8f162c0b14e078def9 /chrome/renderer
parent6cd245938255af499f59f1c56898b35def476442 (diff)
downloadchromium_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.cc12
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;
}