summaryrefslogtreecommitdiffstats
path: root/chrome/browser/gtk/browser_window_gtk.h
diff options
context:
space:
mode:
authordeanm@chromium.org <deanm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-13 13:34:11 +0000
committerdeanm@chromium.org <deanm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-13 13:34:11 +0000
commit254286c2f05176e1ed640d2415069f0a4bcc1bb0 (patch)
tree694ad1e4a52d8d6c1897925bcfa337a3aa78d7b5 /chrome/browser/gtk/browser_window_gtk.h
parent5f7206f0f73bacec608a4a99b6506868e84015a3 (diff)
downloadchromium_src-254286c2f05176e1ed640d2415069f0a4bcc1bb0.zip
chromium_src-254286c2f05176e1ed640d2415069f0a4bcc1bb0.tar.gz
chromium_src-254286c2f05176e1ed640d2415069f0a4bcc1bb0.tar.bz2
Fix some browser shutdown issues on Linux.
The previous code ended up destroying the BrowserWindow (removing it from BrowserList) while BrowserList was in the middle of iterating. Push the deletion onto the message loop (using DeleteSoon) to emulate what I'm guessing happens on Windows (the message is queue instead of processed right away). This fixes a second bug involving re-entrancy issues with Close() and window_, we now make sure to set window_ to NULL before any events might fire. BUG=8712 Review URL: http://codereview.chromium.org/43135 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11628 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/gtk/browser_window_gtk.h')
-rw-r--r--chrome/browser/gtk/browser_window_gtk.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/chrome/browser/gtk/browser_window_gtk.h b/chrome/browser/gtk/browser_window_gtk.h
index 7d86175..abf2610 100644
--- a/chrome/browser/gtk/browser_window_gtk.h
+++ b/chrome/browser/gtk/browser_window_gtk.h
@@ -101,6 +101,8 @@ class BrowserWindowGtk : public BrowserWindow,
static gboolean OnContentAreaExpose(GtkWidget* widget, GdkEventExpose* e,
BrowserWindowGtk* window);
+ static gboolean OnWindowDestroyed(GtkWidget* window,
+ BrowserWindowGtk* browser_win);
gfx::Rect bounds_;
GdkWindowState state_;