summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa/tab_window_controller.mm
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/cocoa/tab_window_controller.mm')
-rw-r--r--chrome/browser/cocoa/tab_window_controller.mm10
1 files changed, 10 insertions, 0 deletions
diff --git a/chrome/browser/cocoa/tab_window_controller.mm b/chrome/browser/cocoa/tab_window_controller.mm
index 5e9ce23..e405887 100644
--- a/chrome/browser/cocoa/tab_window_controller.mm
+++ b/chrome/browser/cocoa/tab_window_controller.mm
@@ -42,8 +42,11 @@
- (void)removeOverlay {
[self setUseOverlay:NO];
+ if (closeDeferred_)
+ [[self window] performClose:self]; // Autoreleases the controller.
}
+// TODO(pinkerton): Nobody calls this, can we remove it?
- (void)removeOverlayAfterDelay:(NSTimeInterval)delay {
[NSObject cancelPreviousPerformRequestsWithTarget:self
selector:@selector(removeOverlay)
@@ -199,4 +202,11 @@
[lockedTabs_ addObject:tabView];
}
+// Tell the window that it needs to call performClose: as soon as the current
+// drag is complete. This prevents a window (and its overlay) from going away
+// during a drag.
+- (void)deferPerformClose {
+ closeDeferred_ = YES;
+}
+
@end