Chromium Code Reviews| Index: ui/compositor/layer.cc |
| diff --git a/ui/compositor/layer.cc b/ui/compositor/layer.cc |
| index 71daa33f74c9af71352b6bd8f0ed44a8292b9412..104f79b7f2db3af537f18e1c51a8e7c633309705 100644 |
| --- a/ui/compositor/layer.cc |
| +++ b/ui/compositor/layer.cc |
| @@ -751,10 +751,17 @@ void Layer::RecomputeDrawsContentAndUVRect() { |
| DCHECK(texture_); |
| gfx::Size texture_size; |
| - if (scale_content_) |
| + if (scale_content_) { |
| texture_size = texture_->size(); |
| - else |
| - texture_size = ConvertSizeToDIP(this, texture_->size()); |
| + } else { |
| + // Scale the texture's size but the layer's scale factor can be different |
| + // from the one of the texture in some cases, such like phantom windows |
| + // on a hi-DPI device while its original window is in a normal DPI. Thus |
| + // estimate the scale factor from the size of the texture and the layer. |
|
oshima
2012/09/18 21:20:45
can you update the comment to be more generic (wit
Jun Mukai
2012/09/19 19:26:56
Removed that part.
|
| + float scale_factor = |
| + static_cast<float>(bounds().width()) / texture_->size().width(); |
| + texture_size = texture_->size().Scale(scale_factor); |
| + } |
| gfx::Size size(std::min(bounds().width(), texture_size.width()), |
| std::min(bounds().height(), texture_size.height())); |