diff --git a/embedding/browser/gtk/src/EmbedPrivate.cpp b/embedding/browser/gtk/src/EmbedPrivate.cpp index 8d5a907569b..952e893b5d2 100644 --- a/embedding/browser/gtk/src/EmbedPrivate.cpp +++ b/embedding/browser/gtk/src/EmbedPrivate.cpp @@ -168,8 +168,7 @@ EmbedPrivate::Realize(PRBool *aAlreadyRealized) *aAlreadyRealized = PR_FALSE; // create the offscreen window if we have to - if (!sOffscreenWindow) - CreateOffscreenWindow(); + EnsureOffscreenWindow(); // Have we ever been initialized before? If so then just reparetn // from the offscreen window. @@ -786,8 +785,10 @@ EmbedPrivate::ShutdownProfile(void) /* static */ void -EmbedPrivate::CreateOffscreenWindow(void) +EmbedPrivate::EnsureOffscreenWindow(void) { + if (sOffscreenWindow) + return; sOffscreenWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_realize(sOffscreenWindow); sOffscreenFixed = gtk_fixed_new(); @@ -799,6 +800,8 @@ EmbedPrivate::CreateOffscreenWindow(void) void EmbedPrivate::DestroyOffscreenWindow(void) { + if (!sOffscreenWindow) + return; gtk_widget_destroy(sOffscreenWindow); sOffscreenWindow = 0; } diff --git a/embedding/browser/gtk/src/EmbedPrivate.h b/embedding/browser/gtk/src/EmbedPrivate.h index d89e3831b77..ab0d1847f62 100644 --- a/embedding/browser/gtk/src/EmbedPrivate.h +++ b/embedding/browser/gtk/src/EmbedPrivate.h @@ -159,7 +159,7 @@ class EmbedPrivate { static void ShutdownProfile(void); // offscreen window methods and the offscreen widget - static void CreateOffscreenWindow(void); + static void EnsureOffscreenWindow(void); static void DestroyOffscreenWindow(void); static GtkWidget *sOffscreenWindow; static GtkWidget *sOffscreenFixed;