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

Unified Diff: chrome/browser/ui/cocoa/extensions/browser_actions_container_view.mm

Issue 1009613002: [Toolbar UI Mac] Fix omnibox minimum width (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Avi's Created 5 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
Index: chrome/browser/ui/cocoa/extensions/browser_actions_container_view.mm
diff --git a/chrome/browser/ui/cocoa/extensions/browser_actions_container_view.mm b/chrome/browser/ui/cocoa/extensions/browser_actions_container_view.mm
index 75b4e94564dfddce6188466d031db6c9b6002137..725d2262a12b92c0300fb73281c28ccb324509f7 100644
--- a/chrome/browser/ui/cocoa/extensions/browser_actions_container_view.mm
+++ b/chrome/browser/ui/cocoa/extensions/browser_actions_container_view.mm
@@ -15,8 +15,6 @@ NSString* const kBrowserActionGrippyDraggingNotification =
@"BrowserActionGrippyDraggingNotification";
NSString* const kBrowserActionGrippyDragFinishedNotification =
@"BrowserActionGrippyDragFinishedNotification";
-NSString* const kBrowserActionGrippyWillDragNotification =
- @"BrowserActionGrippyWillDragNotification";
NSString* const kBrowserActionsContainerWillAnimate =
@"BrowserActionsContainerWillAnimate";
NSString* const kBrowserActionsContainerMouseEntered =
@@ -34,6 +32,9 @@ const CGFloat kMinimumContainerWidth = 3.0;
// Returns the cursor that should be shown when hovering over the grippy based
// on |canDragLeft_| and |canDragRight_|.
- (NSCursor*)appropriateCursorForGrippy;
+
+// Returns the maximum allowed size for the container.
+- (CGFloat)maxAllowedWidth;
@end
@implementation BrowserActionsContainerView
@@ -41,8 +42,9 @@ const CGFloat kMinimumContainerWidth = 3.0;
@synthesize canDragLeft = canDragLeft_;
@synthesize canDragRight = canDragRight_;
@synthesize grippyPinned = grippyPinned_;
-@synthesize maxWidth = maxWidth_;
+@synthesize maxDesiredWidth = maxDesiredWidth_;
@synthesize userIsResizing = userIsResizing_;
+@synthesize delegate = delegate_;
#pragma mark -
#pragma mark Overridden Class Functions
@@ -156,27 +158,20 @@ const CGFloat kMinimumContainerWidth = 3.0;
CGFloat withDelta = location.x - dX;
canDragRight_ = (withDelta >= initialDragPoint_.x) &&
(NSWidth(containerFrame) > kMinimumContainerWidth);
- canDragLeft_ = (withDelta <= initialDragPoint_.x) &&
- (NSWidth(containerFrame) < maxWidth_);
-
- // Notify others to see whether this dragging is allowed.
- if ((dX < 0.0 && canDragLeft_) || (dX > 0.0 && canDragRight_)) {
- NSDictionary* userInfo = @{ kTranslationWithDelta : @(dX) };
- [[NSNotificationCenter defaultCenter]
- postNotificationName:kBrowserActionGrippyWillDragNotification
- object:self
- userInfo:userInfo];
- }
+ CGFloat maxAllowedWidth = [self maxAllowedWidth];
+ containerFrame.size.width =
+ std::max(NSWidth(containerFrame) - dX, kMinimumContainerWidth);
+ canDragLeft_ = withDelta <= initialDragPoint_.x &&
+ NSWidth(containerFrame) < maxDesiredWidth_ &&
+ NSWidth(containerFrame) < maxAllowedWidth;
if ((dX < 0.0 && !canDragLeft_) || (dX > 0.0 && !canDragRight_))
return;
- containerFrame.size.width =
- std::max(NSWidth(containerFrame) - dX, kMinimumContainerWidth);
-
if (NSWidth(containerFrame) == kMinimumContainerWidth)
return;
+ grippyPinned_ = NSWidth(containerFrame) == maxAllowedWidth;
Scott Hess - ex-Googler 2015/03/23 16:26:41 Since these are floats this pattern may come back
containerFrame.origin.x += dX;
[self setFrame:containerFrame];
@@ -199,11 +194,17 @@ const CGFloat kMinimumContainerWidth = 3.0;
- (void)resizeToWidth:(CGFloat)width animate:(BOOL)animate {
width = std::max(width, kMinimumContainerWidth);
NSRect frame = [self frame];
+
+ CGFloat maxAllowedWidth = [self maxAllowedWidth];
+ width = std::min(maxAllowedWidth, width);
+
lastXPos_ = frame.origin.x;
CGFloat dX = frame.size.width - width;
frame.size.width = width;
NSRect newFrame = NSOffsetRect(frame, dX, 0);
+ grippyPinned_ = width == maxAllowedWidth;
+
[self stopAnimation];
if (animate) {
@@ -266,4 +267,8 @@ const CGFloat kMinimumContainerWidth = 3.0;
return retVal;
}
+- (CGFloat)maxAllowedWidth {
+ return delegate_ ? delegate_->GetMaxAllowedWidth() : CGFLOAT_MAX;
+}
+
@end

Powered by Google App Engine
This is Rietveld 408576698