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

Unified Diff: chrome/browser/ui/cocoa/download/download_item_controller.mm

Issue 911303002: Fix text wrapping problem in the download_item_controller on Yosemite. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Changed how compute textfield resize delta Created 5 years, 10 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: chrome/browser/ui/cocoa/download/download_item_controller.mm
diff --git a/chrome/browser/ui/cocoa/download/download_item_controller.mm b/chrome/browser/ui/cocoa/download/download_item_controller.mm
index a749d314579c501009632c98c6a7f44a10d4c642..9f08434c363993856d16c3aecc8d168e82f68b3a 100644
--- a/chrome/browser/ui/cocoa/download/download_item_controller.mm
+++ b/chrome/browser/ui/cocoa/download/download_item_controller.mm
@@ -5,6 +5,7 @@
#import "chrome/browser/ui/cocoa/download/download_item_controller.h"
#include "base/mac/bundle_locations.h"
+#include "base/mac/mac_util.h"
#include "base/metrics/histogram.h"
#include "base/strings/string16.h"
#include "base/strings/string_util.h"
@@ -129,6 +130,27 @@ class DownloadShelfContextMenuMac : public DownloadShelfContextMenu {
- (void)awakeFromNib {
[progressView_ setController:self];
+ // The new system font on Yosemite brings slightly different font metrics.
+ // The |dangerousDownloadLabel_| is 22 points high with two lines of text
+ // in the nib, but on Yosemite it needs 24 points to hold that same text.
+ // The best alternative to hard coding the 2.0pt delta is to have the
+ // textfield compute the height necessary to display two lines of text.
+ // In order to disturb as little as possible, the code below only runs on
+ // Yosemite, and restores the original state of |dangerousDownloadLabel_|
+ // after the computation (except for, of course, its height).
asanka 2015/02/21 02:14:53 Comment is out of date?
shrike 2015/02/23 20:12:14 It's not, but I rewrote it in the new cl.
+ // http://crbug.com/454782 .
+ if (base::mac::IsOSYosemiteOrLater()) {
+ NSString* placeholderText = [dangerousDownloadLabel_ stringValue];
asanka 2015/02/21 02:14:54 Let's move this height adjustment logic into -show
+ NSRect labelFrame = [dangerousDownloadLabel_ frame];
+ [dangerousDownloadLabel_ setStringValue:@"Two lines\nof text"];
asanka 2015/02/21 02:14:54 Once this is moved to -showDangerousWarning:, we c
shrike 2015/02/23 20:12:14 The idea behind this change is just to quickly fix
asanka 2015/02/24 03:16:13 showDangerousWarning is called at most once per do
+ [dangerousDownloadLabel_ sizeToFit];
+ CGFloat heightDelta = [dangerousDownloadLabel_ frame].size.height -
+ labelFrame.size.height;
+ labelFrame.origin.y -= heightDelta / 2.0;
+ labelFrame.size.height += heightDelta;
+ [dangerousDownloadLabel_ setFrame:labelFrame];
+ [dangerousDownloadLabel_ setStringValue:placeholderText];
+ }
GTMUILocalizerAndLayoutTweaker* localizerAndLayoutTweaker =
[[[GTMUILocalizerAndLayoutTweaker alloc] init] autorelease];
[localizerAndLayoutTweaker applyLocalizer:localizer_ tweakingUI:[self view]];
« 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