diff --git a/src/shell-gtk-embed.c b/src/shell-gtk-embed.c index 176b41320..54061046b 100644 --- a/src/shell-gtk-embed.c +++ b/src/shell-gtk-embed.c @@ -124,13 +124,14 @@ shell_gtk_embed_on_window_mapped (GtkWidget *object, ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed); MetaDisplay *display = shell_global_get_display (shell_global_get ()); - /* Listen for new windows so we can detect when Mutter has - created a MutterWindow for this window */ - priv->window_created_handler = - g_signal_connect (display, - "window-created", - G_CALLBACK (shell_gtk_embed_window_created_cb), - embed); + if (priv->window_created_handler == 0 && priv->window_actor == NULL) + /* Listen for new windows so we can detect when Mutter has + created a MutterWindow for this window */ + priv->window_created_handler = + g_signal_connect (display, + "window-created", + G_CALLBACK (shell_gtk_embed_window_created_cb), + embed); } static void