gtk-embed: ensure we only listen for window-created events once
If a tray icon gets a mapped and unmapped and the mapped again in quick succession, we can end up with multiple handlers listening for window creation events. This commit tries to guard against that by only listening for window-created events when we don't know the actor associated with the icon. https://bugzilla.gnome.org/show_bug.cgi?id=787361
This commit is contained in:
parent
8331436ab3
commit
90c55e1977
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user