Chromium Code Reviews| Index: chrome/browser/ui/cocoa/tabpose_window.mm |
| diff --git a/chrome/browser/ui/cocoa/tabpose_window.mm b/chrome/browser/ui/cocoa/tabpose_window.mm |
| index eb649725d075c3e2958afbf91c557b951b1ec83e..84e973e2651966d0cab52c4bd5677a167112dae6 100644 |
| --- a/chrome/browser/ui/cocoa/tabpose_window.mm |
| +++ b/chrome/browser/ui/cocoa/tabpose_window.mm |
| @@ -375,7 +375,7 @@ class Tile { |
| NSRect GetStartRectRelativeTo(const Tile& tile) const; |
| NSRect thumb_rect() const { return thumb_rect_; } |
| - NSRect favicon_rect() const { return favicon_rect_; } |
| + NSRect favicon_rect() const { return NSIntegralRect(favicon_rect_); } |
| SkBitmap favicon() const; |
| // This changes |title_rect| and |favicon_rect| such that the favicon is on |
| @@ -389,7 +389,7 @@ class Tile { |
| void set_font_metrics(CGFloat ascender, CGFloat descender); |
| CGFloat title_font_size() const { return title_font_size_; } |
| - NSRect title_rect() const { return title_rect_; } |
| + NSRect title_rect() const { return NSIntegralRect(title_rect_); } |
| // Returns an unelided title. The view logic is responsible for eliding. |
| const string16& title() const { return contents_->GetTitle(); } |
| @@ -431,19 +431,23 @@ SkBitmap Tile::favicon() const { |
| return contents_->GetFavIcon(); |
| } |
| -// Changes |title_rect| and |favicon_rect| such that the favicon is on the |
| -// font's baseline and that the minimum distance between thumb rect and |
| -// favicon and title rects doesn't change. |
| +// Changes |title_rect| and |favicon_rect| such that the favicon's and the |
|
viettrungluu
2010/12/09 18:40:52
"the favicon and title's vertical centers are alig
|
| +// title's vertical center is aligned and that the minimum distance between |
| +// the thumb rect and favicon and title rects doesn't change. |
| void Tile::set_font_metrics(CGFloat ascender, CGFloat descender) { |
| + // Make the title height big enough to fit the font, and adopt the title |
| + // position to keep its distance from the thumb rect. |
| title_rect_.origin.y -= ascender + descender - NSHeight(title_rect_); |
| title_rect_.size.height = ascender + descender; |
| - if (NSHeight(favicon_rect_) < ascender) { |
| - // Move favicon down. |
| - favicon_rect_.origin.y = title_rect_.origin.y + descender; |
| + // Align vertical center. Both rects are currently aligned on their top edge. |
| + CGFloat delta_y = NSMidY(title_rect_) - NSMidY(favicon_rect_); |
| + if (delta_y > 0) { |
| + // Title is higher: Move favicon down to align the centers. |
| + favicon_rect_.origin.y += delta_y; |
| } else { |
| - // Move title down. |
| - title_rect_.origin.y = favicon_rect_.origin.y - descender; |
| + // Favicon is higher: Move title down to align the centers. |
| + title_rect_.origin.y -= delta_y; |
| } |
| } |