+ /* Destroy the window tree */
+ if(priv->root_window) {
+ trash_windows_recursive(priv, priv->root_window->data);
+ g_node_destroy(priv->root_window);
+ }
+
+ /* Free the window arrangement signaling */
+ g_mutex_lock(priv->arrange_lock);
+ g_cond_free(priv->rearranged);
+ g_mutex_unlock(priv->arrange_lock);
+ g_mutex_free(priv->arrange_lock);
+ priv->arrange_lock = NULL;
+
+ /* Remove the dispatch callbacks */
+ priv->register_obj = NULL;
+ priv->unregister_obj = NULL;
+ priv->register_arr = NULL;
+ priv->unregister_arr = NULL;