| Index: chrome/browser/ui/views/download/download_item_view.cc
|
| diff --git a/chrome/browser/ui/views/download/download_item_view.cc b/chrome/browser/ui/views/download/download_item_view.cc
|
| index da76670c29e504f5840b57f9da980fda23e83f2f..ee54a22212661e95bba390982e02f228212508d6 100644
|
| --- a/chrome/browser/ui/views/download/download_item_view.cc
|
| +++ b/chrome/browser/ui/views/download/download_item_view.cc
|
| @@ -68,6 +68,9 @@ static const int kVerticalPadding = 3; // Pixels
|
| static const int kVerticalTextPadding = 2; // Pixels
|
| static const int kTooltipMaxWidth = 800; // Pixels
|
|
|
| +// Padding around progress indicator, on all sides.
|
| +static const int kProgressPadding = 7;
|
| +
|
| // We add some padding before the left image so that the progress animation icon
|
| // hides the corners of the left image.
|
| static const int kLeftPadding = 0; // Pixels.
|
| @@ -206,10 +209,9 @@ DownloadItemView::DownloadItemView(DownloadItem* download_item,
|
| normal_body_image_set_.top_left->height() +
|
| normal_body_image_set_.bottom_left->height());
|
|
|
| - if (DownloadShelf::kProgressIndicatorSize > box_height_)
|
| - box_y_ = (DownloadShelf::kProgressIndicatorSize - box_height_) / 2;
|
| - else
|
| - box_y_ = 0;
|
| + box_y_ = std::max(0, (2 * kProgressPadding +
|
| + DownloadShelf::kProgressIndicatorSize - box_height_) /
|
| + 2);
|
|
|
| body_hover_animation_.reset(new gfx::SlideAnimation(this));
|
| drop_hover_animation_.reset(new gfx::SlideAnimation(this));
|
| @@ -381,7 +383,8 @@ gfx::Size DownloadItemView::GetPreferredSize() const {
|
| height = 2 * kVerticalPadding + 2 * font_list_.GetHeight() +
|
| kVerticalTextPadding;
|
| // Then we increase the size if the progress icon doesn't fit.
|
| - height = std::max<int>(height, DownloadShelf::kProgressIndicatorSize);
|
| + height = std::max<int>(
|
| + height, DownloadShelf::kProgressIndicatorSize + 2 * kProgressPadding);
|
|
|
| if (IsShowingWarningDialog()) {
|
| const BodyImageSet* body_image_set =
|
| @@ -404,7 +407,7 @@ gfx::Size DownloadItemView::GetPreferredSize() const {
|
| width += normal_drop_down_image_set_.top->width();
|
| } else {
|
| width = kLeftPadding + normal_body_image_set_.top_left->width();
|
| - width += DownloadShelf::kProgressIndicatorSize;
|
| + width += DownloadShelf::kProgressIndicatorSize + 2 * kProgressPadding;
|
| width += kTextWidth;
|
| width += normal_body_image_set_.top_right->width();
|
| width += normal_drop_down_image_set_.top->width();
|
| @@ -700,7 +703,8 @@ void DownloadItemView::OnPaintBackground(gfx::Canvas* canvas) {
|
| if (!IsShowingWarningDialog()) {
|
| if (!status_text_.empty()) {
|
| int mirrored_x = GetMirroredXWithWidthInView(
|
| - DownloadShelf::kProgressIndicatorSize, kTextWidth);
|
| + 2 * kProgressPadding + DownloadShelf::kProgressIndicatorSize,
|
| + kTextWidth);
|
| // Add font_list_.height() to compensate for title, which is drawn later.
|
| int y = box_y_ + kVerticalPadding + font_list_.GetHeight() +
|
| kVerticalTextPadding;
|
| @@ -826,7 +830,8 @@ void DownloadItemView::OnPaintBackground(gfx::Canvas* canvas) {
|
| }
|
|
|
| int mirrored_x = GetMirroredXWithWidthInView(
|
| - DownloadShelf::kProgressIndicatorSize, kTextWidth);
|
| + 2 * kProgressPadding + DownloadShelf::kProgressIndicatorSize,
|
| + kTextWidth);
|
| SkColor file_name_color = GetThemeProvider()->GetColor(
|
| ThemeProperties::COLOR_BOOKMARK_TEXT);
|
| int y =
|
| @@ -856,13 +861,17 @@ void DownloadItemView::OnPaintBackground(gfx::Canvas* canvas) {
|
| // loaded, in which case LookupIcon will always be NULL. The loading will be
|
| // triggered only when we think the status might change.
|
| if (icon) {
|
| + int progress_x =
|
| + base::i18n::IsRTL()
|
| + ? width() - kProgressPadding - DownloadShelf::kProgressIndicatorSize
|
| + : kProgressPadding;
|
| + int progress_y = kProgressPadding;
|
| +
|
| if (!IsShowingWarningDialog()) {
|
| - DownloadItem::DownloadState state = download()->GetState();
|
| canvas->Save();
|
| - if (base::i18n::IsRTL())
|
| - canvas->Translate(
|
| - gfx::Vector2d(width() - DownloadShelf::kProgressIndicatorSize, 0));
|
| + canvas->Translate(gfx::Vector2d(progress_x, progress_y));
|
|
|
| + DownloadItem::DownloadState state = download()->GetState();
|
| if (state == DownloadItem::IN_PROGRESS) {
|
| base::TimeDelta progress_time = previous_progress_elapsed_;
|
| if (!download()->IsPaused())
|
| @@ -891,12 +900,12 @@ void DownloadItemView::OnPaintBackground(gfx::Canvas* canvas) {
|
|
|
| if (IsShowingWarningDialog()) {
|
| icon_x = kLeftPadding + body_image_set->top_left->width();
|
| + icon_x = GetMirroredXWithWidthInView(icon_x, icon->width());
|
| icon_y = (height() - icon->height()) / 2;
|
| } else {
|
| - icon_x = DownloadShelf::kFiletypeIconOffset;
|
| - icon_y = DownloadShelf::kFiletypeIconOffset;
|
| + icon_x = progress_x + DownloadShelf::kFiletypeIconOffset;
|
| + icon_y = progress_y + DownloadShelf::kFiletypeIconOffset;
|
| }
|
| - icon_x = GetMirroredXWithWidthInView(icon_x, icon->width());
|
| if (enabled()) {
|
| canvas->DrawImageInt(*icon, icon_x, icon_y);
|
| } else {
|
|
|