summaryrefslogtreecommitdiff
path: root/chromium/ui/app_list/cocoa/apps_grid_view_item.mm
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/ui/app_list/cocoa/apps_grid_view_item.mm')
-rw-r--r--chromium/ui/app_list/cocoa/apps_grid_view_item.mm27
1 files changed, 18 insertions, 9 deletions
diff --git a/chromium/ui/app_list/cocoa/apps_grid_view_item.mm b/chromium/ui/app_list/cocoa/apps_grid_view_item.mm
index 34fe975ebca..b6e4fb53a27 100644
--- a/chromium/ui/app_list/cocoa/apps_grid_view_item.mm
+++ b/chromium/ui/app_list/cocoa/apps_grid_view_item.mm
@@ -99,8 +99,12 @@ ItemModelObserverBridge::~ItemModelObserverBridge() {
NSMenu* ItemModelObserverBridge::GetContextMenu() {
if (!context_menu_controller_) {
+ ui::MenuModel* menu_model = model_->GetContextMenuModel();
+ if (!menu_model)
+ return nil;
+
context_menu_controller_.reset(
- [[MenuController alloc] initWithModel:model_->GetContextMenuModel()
+ [[MenuController alloc] initWithModel:menu_model
useWithPopUpButtonCell:NO]);
}
return [context_menu_controller_ menu];
@@ -255,6 +259,18 @@ void ItemModelObserverBridge::ItemPercentDownloadedChanged() {
[[NSAttributedString alloc] initWithString:buttonTitle
attributes:titleAttributes]);
[[self button] setAttributedTitle:attributedTitle];
+
+ // If the app does not specify a distinct short name manifest property, check
+ // whether the title would be truncted in the NSButton. If it would be
+ // truncated, add a tooltip showing the full name.
+ NSRect titleRect =
+ [[[self button] cell] titleRectForBounds:[[self button] bounds]];
+ if ([self model]->title() == [self model]->full_name() &&
+ [attributedTitle size].width < NSWidth(titleRect)) {
+ [[self view] removeAllToolTips];
+ } else {
+ [[self view] setToolTip:base::SysUTF8ToNSString([self model]->full_name())];
+ }
}
- (void)updateButtonImage {
@@ -271,6 +287,7 @@ void ItemModelObserverBridge::ItemPercentDownloadedChanged() {
}
- (void)setModel:(app_list::AppListItemModel*)itemModel {
+ [trackingArea_.get() clearOwner];
if (!itemModel) {
observerBridge_.reset();
return;
@@ -335,14 +352,6 @@ void ItemModelObserverBridge::ItemPercentDownloadedChanged() {
return imageRep;
}
-- (void)onInitialModelBuilt {
- if ([self model]->highlighted()) {
- [self ensureVisible];
- if (![self model]->is_installing())
- [self setSelected:YES];
- }
-}
-
- (void)ensureVisible {
NSCollectionView* collectionView = [self collectionView];
AppsGridController* gridController =