| Index: chrome/browser/cocoa/constrained_window_mac.mm
|
| diff --git a/chrome/browser/cocoa/constrained_window_mac.mm b/chrome/browser/cocoa/constrained_window_mac.mm
|
| index ad090a81d32ccacef57ea32d7be972de74b6bd8a..b03ceef87bf4a486e3a6bb71280168567dd307e6 100644
|
| --- a/chrome/browser/cocoa/constrained_window_mac.mm
|
| +++ b/chrome/browser/cocoa/constrained_window_mac.mm
|
| @@ -11,25 +11,46 @@
|
|
|
| ConstrainedWindowMacDelegate::~ConstrainedWindowMacDelegate() {}
|
|
|
| +void ConstrainedWindowMacDelegateSystemSheetParams::RunSheet(
|
| + GTMWindowSheetController* sheetController,
|
| + NSView* view,
|
| + SEL frameSelector,
|
| + SEL positionSelector) {
|
| + DCHECK([params_ isKindOfClass:[NSArray class]]);
|
| + [sheetController beginSystemSheet:systemSheet_
|
| + modalForView:view
|
| + frameSelector:frameSelector
|
| + positionSelector:positionSelector
|
| + withParameters:params_];
|
| +}
|
| +
|
| void ConstrainedWindowMacDelegateSystemSheet::RunSheet(
|
| GTMWindowSheetController* sheetController,
|
| - NSView* view) {
|
| + NSView* view,
|
| + SEL frameSelector,
|
| + SEL positionSelector) {
|
| NSArray* params = [NSArray arrayWithObjects:
|
| [NSNull null], // window, must be [NSNull null]
|
| delegate_.get(),
|
| [NSValue valueWithPointer:didEndSelector_],
|
| [NSValue valueWithPointer:NULL], // context info for didEndSelector_.
|
| nil];
|
| - [sheetController beginSystemSheet:systemSheet_
|
| - modalForView:view
|
| - withParameters:params];
|
| + set_params(params);
|
| + ConstrainedWindowMacDelegateSystemSheetParams::RunSheet(sheetController,
|
| + view,
|
| + frameSelector,
|
| + positionSelector);
|
| }
|
|
|
| void ConstrainedWindowMacDelegateCustomSheet::RunSheet(
|
| GTMWindowSheetController* sheetController,
|
| - NSView* view) {
|
| + NSView* view,
|
| + SEL frameSelector,
|
| + SEL positionSelector) {
|
| [sheetController beginSheet:customSheet_.get()
|
| modalForView:view
|
| + frameSelector:frameSelector
|
| + positionSelector:positionSelector
|
| modalDelegate:delegate_.get()
|
| didEndSelector:didEndSelector_
|
| contextInfo:NULL];
|
| @@ -67,12 +88,29 @@ void ConstrainedWindowMac::CloseConstrainedWindow() {
|
| // Note: controller_ can be `nil` here if the sheet was never realized. That's
|
| // ok.
|
| [controller_ removeConstrainedWindow:this];
|
| - delegate_->DeleteDelegate();
|
| - owner_->WillClose(this);
|
| +
|
| + DCHECK(delegate_);
|
| + if (delegate_)
|
| + delegate_->DeleteDelegate();
|
| +
|
| + DCHECK(owner_);
|
| + if (owner_)
|
| + owner_->WillClose(this);
|
|
|
| delete this;
|
| }
|
|
|
| +bool ConstrainedWindowMac::ParentWillDo(ConstrainedWindow::Event event) {
|
| + // Just get our delegate to handle it. If it doesn't do anything, call our
|
| + // super's handler.
|
| + DCHECK(delegate_);
|
| + if (delegate_) {
|
| + if (delegate_->ParentWillDo(event))
|
| + return true;
|
| + }
|
| + return ConstrainedWindow::ParentWillDo(event);
|
| +}
|
| +
|
| void ConstrainedWindowMac::Realize(BrowserWindowController* controller) {
|
| if (controller_ != nil) {
|
| DCHECK(controller_ == controller);
|
|
|