diff options
Diffstat (limited to 'chrome/browser/cocoa/bookmark_bubble_controller.mm')
-rw-r--r-- | chrome/browser/cocoa/bookmark_bubble_controller.mm | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/chrome/browser/cocoa/bookmark_bubble_controller.mm b/chrome/browser/cocoa/bookmark_bubble_controller.mm index e59d1f6..c3b7cd0 100644 --- a/chrome/browser/cocoa/bookmark_bubble_controller.mm +++ b/chrome/browser/cocoa/bookmark_bubble_controller.mm @@ -7,6 +7,7 @@ #include "base/mac_util.h" #include "base/sys_string_conversions.h" #include "chrome/browser/bookmarks/bookmark_model.h" +#import "chrome/browser/cocoa/browser_window_controller.h" #import "chrome/browser/cocoa/info_bubble_view.h" #include "chrome/browser/metrics/user_metrics.h" #include "grit/generated_resources.h" @@ -39,7 +40,6 @@ } - (id)initWithParentWindow:(NSWindow*)parentWindow - topRightForBubble:(NSPoint)topRightForBubble model:(BookmarkModel*)model node:(const BookmarkNode*)node alreadyBookmarked:(BOOL)alreadyBookmarked { @@ -48,7 +48,6 @@ ofType:@"nib"]; if ((self = [super initWithWindowNibPath:nibPath owner:self])) { parentWindow_ = parentWindow; - topRightForBubble_ = topRightForBubble; model_ = model; node_ = node; alreadyBookmarked_ = alreadyBookmarked; @@ -95,8 +94,15 @@ // position). We cannot have an addChildWindow: and a subsequent // showWindow:. Thus, we have our own version. - (void)showWindow:(id)sender { + BrowserWindowController* bwc = + [BrowserWindowController browserWindowControllerForWindow:parentWindow_]; + [bwc lockBarVisibilityForOwner:self withAnimation:NO delay:NO]; NSWindow* window = [self window]; // completes nib load - NSPoint origin = [parentWindow_ convertBaseToScreen:topRightForBubble_]; + // Insure decent positioning even in the absence of a browser controller, + // which will occur for some unit tests. + NSPoint topRight = bwc ? [bwc topRightForBubble] : + NSMakePoint([window frame].size.width, [window frame].size.height); + NSPoint origin = [parentWindow_ convertBaseToScreen:topRight]; origin.y -= NSHeight([window frame]); origin.x -= NSWidth([window frame]); [window setFrameOrigin:origin]; @@ -125,6 +131,8 @@ } - (void)close { + [[BrowserWindowController browserWindowControllerForWindow:parentWindow_] + releaseBarVisibilityForOwner:self withAnimation:YES delay:NO]; [parentWindow_ removeChildWindow:[self window]]; // If you quit while the bubble is open, sometimes we get a |