Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(206)

Unified Diff: ui/wm/core/image_grid.cc

Issue 1845283005: Makes ImageGrid work again (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/wm/core/image_grid.cc
diff --git a/ui/wm/core/image_grid.cc b/ui/wm/core/image_grid.cc
index 553e442d50bcbd87d9f51b331f663f23911e4364..82ca0e3af1ec6b39a3d4a14918235a350ab44d13 100644
--- a/ui/wm/core/image_grid.cc
+++ b/ui/wm/core/image_grid.cc
@@ -29,18 +29,20 @@ namespace {
// right and bottom layers are stretched to the height or width of the
// center image.
-void ScaleWidth(gfx::Size center, ui::Layer* layer, gfx::Transform& transform) {
+void ScaleWidth(const gfx::Size& center,
+ ui::Layer* layer,
+ gfx::Transform* transform) {
float layer_width = layer->bounds().width() * layer->device_scale_factor();
float scale = static_cast<float>(center.width()) / layer_width;
- transform.Scale(scale, 1.0);
+ transform->Scale(scale, 1.0);
}
-void ScaleHeight(gfx::Size center,
+void ScaleHeight(const gfx::Size& center,
ui::Layer* layer,
- gfx::Transform& transform) {
+ gfx::Transform* transform) {
float layer_height = layer->bounds().height() * layer->device_scale_factor();
float scale = static_cast<float>(center.height()) / layer_height;
- transform.Scale(1.0, scale);
+ transform->Scale(1.0, scale);
}
// Returns the dimensions of |image| if non-NULL or gfx::Size(0, 0) otherwise.
@@ -153,7 +155,7 @@ void ImageGrid::SetSize(const gfx::Size& size) {
if (center_width > 0) {
gfx::Transform transform;
transform.Translate(left, 0);
- ScaleWidth(center_size_in_pixels, top_layer_.get(), transform);
+ ScaleWidth(center_size_in_pixels, top_layer_.get(), &transform);
top_layer_->SetTransform(transform);
}
top_layer_->SetVisible(center_width > 0);
@@ -163,7 +165,7 @@ void ImageGrid::SetSize(const gfx::Size& size) {
gfx::Transform transform;
transform.Translate(
left, size.height() - bottom_layer_->bounds().height());
- ScaleWidth(center_size_in_pixels, bottom_layer_.get(), transform);
+ ScaleWidth(center_size_in_pixels, bottom_layer_.get(), &transform);
bottom_layer_->SetTransform(transform);
}
bottom_layer_->SetVisible(center_width > 0);
@@ -172,7 +174,7 @@ void ImageGrid::SetSize(const gfx::Size& size) {
if (center_height > 0) {
gfx::Transform transform;
transform.Translate(0, top);
- ScaleHeight(center_size_in_pixels, left_layer_.get(), transform);
+ ScaleHeight(center_size_in_pixels, left_layer_.get(), &transform);
left_layer_->SetTransform(transform);
}
left_layer_->SetVisible(center_height > 0);
@@ -182,7 +184,7 @@ void ImageGrid::SetSize(const gfx::Size& size) {
gfx::Transform transform;
transform.Translate(
size.width() - right_layer_->bounds().width(), top);
- ScaleHeight(center_size_in_pixels, right_layer_.get(), transform);
+ ScaleHeight(center_size_in_pixels, right_layer_.get(), &transform);
right_layer_->SetTransform(transform);
}
right_layer_->SetVisible(center_height > 0);
@@ -268,7 +270,7 @@ void ImageGrid::ImagePainter::SetClipRect(const gfx::Rect& clip_rect,
}
void ImageGrid::ImagePainter::OnPaintLayer(const ui::PaintContext& context) {
- gfx::Size bounding_size(clip_rect_.right(), clip_rect_.bottom());
+ gfx::Size bounding_size(image_.width(), image_.height());
sky 2016/04/01 23:11:56 This is the important change. The rest are just ra
ui::PaintRecorder recorder(context, bounding_size);
if (!clip_rect_.IsEmpty())
recorder.canvas()->ClipRect(clip_rect_);
@@ -298,8 +300,6 @@ void ImageGrid::SetImage(const gfx::Image* image,
const int kMinimumSize = 20;
// Clean out old layers and painters.
- if (layer_ptr->get())
- layer_->Remove(layer_ptr->get());
layer_ptr->reset();
painter_ptr->reset();
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698