diff --git a/mozilla/widget/src/cocoa/nsChildView.mm b/mozilla/widget/src/cocoa/nsChildView.mm index bf08eac345a..b76008f4901 100644 --- a/mozilla/widget/src/cocoa/nsChildView.mm +++ b/mozilla/widget/src/cocoa/nsChildView.mm @@ -2556,6 +2556,18 @@ nsChildView::GetThebesSurface() - (void)mouseDown:(NSEvent *)theEvent { + // make sure this view is not in the rollup widget + // the fastest way to do this is by comparing native window pointers + if (gRollupWidget != nsnull) { + NSWindow *ourNativeWindow = [self getNativeWindow]; + NSWindow *rollupNativeWindow = (NSWindow*)gRollupWidget->GetNativeData(NS_NATIVE_WINDOW); + if (ourNativeWindow != rollupNativeWindow) { + // roll up any popups + if (gRollupListener != nsnull) + gRollupListener->Rollup(); + } + } + // if the command and alt keys are held down, initiate hand scrolling if ([ChildView areHandScrollModifiers:[theEvent modifierFlags]]) { [self startHandScroll: theEvent]; diff --git a/mozilla/widget/src/cocoa/nsCocoaWindow.mm b/mozilla/widget/src/cocoa/nsCocoaWindow.mm index 8b717417b32..21a85b6dda3 100644 --- a/mozilla/widget/src/cocoa/nsCocoaWindow.mm +++ b/mozilla/widget/src/cocoa/nsCocoaWindow.mm @@ -775,6 +775,16 @@ NS_IMETHODIMP nsCocoaWindow::CaptureRollupEvents(nsIRollupListener * aListener, } +- (NSSize)windowWillResize:(NSWindow *)sender toSize:(NSSize)proposedFrameSize +{ + // roll up any popups + if (gRollupListener != nsnull && gRollupWidget != nsnull) + gRollupListener->Rollup(); + + return proposedFrameSize; +} + + - (void)windowDidResize:(NSNotification *)aNotification { if (mGeckoWindow->IsResizing())