diff --git a/src/core/window.c b/src/core/window.c index 3a3fde008..e13e0a70f 100644 --- a/src/core/window.c +++ b/src/core/window.c @@ -12231,9 +12231,6 @@ meta_window_pong (MetaWindow *window, ping_data->timestamp, ping_data->user_data); - /* Remove the ping data from the list */ - window->pending_pings = g_slist_remove (window->pending_pings, ping_data); - ping_data_free (ping_data); break; @@ -12333,6 +12330,8 @@ meta_window_ping (MetaWindow *window, ping_data->user_data = user_data; ping_data->ping_timeout_id = g_timeout_add (PING_TIMEOUT_DELAY, ping_timeout, ping_data); + window->pending_pings = g_slist_prepend (window->pending_pings, ping_data); + g_hash_table_insert (display->pending_pings, &ping_data->timestamp, window); meta_topic (META_DEBUG_PING,