diff options
Diffstat (limited to 'webkit/plugins/ppapi')
-rw-r--r-- | webkit/plugins/ppapi/ppb_scrollbar_impl.cc | 3 | ||||
-rw-r--r-- | webkit/plugins/ppapi/ppb_widget_impl.cc | 7 | ||||
-rw-r--r-- | webkit/plugins/ppapi/ppb_widget_impl.h | 3 |
3 files changed, 12 insertions, 1 deletions
diff --git a/webkit/plugins/ppapi/ppb_scrollbar_impl.cc b/webkit/plugins/ppapi/ppb_scrollbar_impl.cc index d6aa704..1a190bb 100644 --- a/webkit/plugins/ppapi/ppb_scrollbar_impl.cc +++ b/webkit/plugins/ppapi/ppb_scrollbar_impl.cc @@ -138,7 +138,10 @@ PP_Bool PPB_Scrollbar_Impl::PaintInternal(const gfx::Rect& rect, skia::PlatformCanvas* canvas = image->GetPlatformCanvas(); if (!canvas || !scrollbar_.get()) return PP_FALSE; + canvas->save(); + canvas->scale(scale(), scale()); scrollbar_->paint(webkit_glue::ToWebCanvas(canvas), rect); + canvas->restore(); #if defined(OS_WIN) if (base::win::GetVersion() == base::win::VERSION_XP) diff --git a/webkit/plugins/ppapi/ppb_widget_impl.cc b/webkit/plugins/ppapi/ppb_widget_impl.cc index 306a1b5..8fe0386 100644 --- a/webkit/plugins/ppapi/ppb_widget_impl.cc +++ b/webkit/plugins/ppapi/ppb_widget_impl.cc @@ -22,7 +22,8 @@ namespace webkit { namespace ppapi { PPB_Widget_Impl::PPB_Widget_Impl(PP_Instance instance) - : Resource(::ppapi::OBJECT_IS_IMPL, instance) { + : Resource(::ppapi::OBJECT_IS_IMPL, instance), + scale_(1.0f) { memset(&location_, 0, sizeof(location_)); } @@ -59,6 +60,10 @@ void PPB_Widget_Impl::SetLocation(const PP_Rect* location) { SetLocationInternal(location); } +void PPB_Widget_Impl::SetScale(float scale) { + scale_ = scale; +} + void PPB_Widget_Impl::Invalidate(const PP_Rect* dirty) { PluginInstance* plugin_instance = ResourceHelper::GetPluginInstance(this); if (!plugin_instance) diff --git a/webkit/plugins/ppapi/ppb_widget_impl.h b/webkit/plugins/ppapi/ppb_widget_impl.h index caaab2a..7fd143e 100644 --- a/webkit/plugins/ppapi/ppb_widget_impl.h +++ b/webkit/plugins/ppapi/ppb_widget_impl.h @@ -37,6 +37,7 @@ class PPB_Widget_Impl : public ::ppapi::Resource, virtual PP_Bool HandleEvent(PP_Resource pp_input_event) OVERRIDE; virtual PP_Bool GetLocation(PP_Rect* location) OVERRIDE; virtual void SetLocation(const PP_Rect* location) OVERRIDE; + virtual void SetScale(float scale) OVERRIDE; // Notifies the plugin instance that the given rect needs to be repainted. void Invalidate(const PP_Rect* dirty); @@ -48,9 +49,11 @@ class PPB_Widget_Impl : public ::ppapi::Resource, virtual void SetLocationInternal(const PP_Rect* location) = 0; PP_Rect location() const { return location_; } + float scale() const { return scale_; } private: PP_Rect location_; + float scale_; DISALLOW_COPY_AND_ASSIGN(PPB_Widget_Impl); }; |