[libwnck] core: Add _wnck_window_shutdown_all()



commit 3f7b269ffc7bafda5f360691d2fff4c2aafe1d85
Author: Vincent Untz <vuntz gnome org>
Date:   Mon Jan 30 14:24:44 2012 +0100

    core: Add _wnck_window_shutdown_all()
    
    We also need to destroy the hashtable of WnckWindow on shutdown.

 libwnck/private.h |    2 ++
 libwnck/util.c    |    1 +
 libwnck/window.c  |   10 ++++++++++
 3 files changed, 13 insertions(+), 0 deletions(-)
---
diff --git a/libwnck/private.h b/libwnck/private.h
index d92eda7..dda26b9 100644
--- a/libwnck/private.h
+++ b/libwnck/private.h
@@ -64,6 +64,8 @@ const char* _wnck_window_get_startup_id (WnckWindow *window);
 time_t      _wnck_window_get_needs_attention_time (WnckWindow *window);
 time_t      _wnck_window_or_transient_get_needs_attention_time (WnckWindow *window);
 
+void        _wnck_window_shutdown_all (void);
+
 WnckWorkspace* _wnck_workspace_create  (int            number,
 					WnckScreen    *screen);
 void           _wnck_workspace_destroy (WnckWorkspace *space);
diff --git a/libwnck/util.c b/libwnck/util.c
index 3172e1d..e2a434c 100644
--- a/libwnck/util.c
+++ b/libwnck/util.c
@@ -804,4 +804,5 @@ wnck_shutdown (void)
   _wnck_screen_shutdown_all ();
   _wnck_class_group_shutdown_all ();
   _wnck_application_shutdown_all ();
+  _wnck_window_shutdown_all ();
 }
diff --git a/libwnck/window.c b/libwnck/window.c
index e78af89..86ee611 100644
--- a/libwnck/window.c
+++ b/libwnck/window.c
@@ -212,6 +212,16 @@ static WnckWindow* find_last_transient_for (GList *windows,
 
 static guint signals[LAST_SIGNAL] = { 0 };
 
+void
+_wnck_window_shutdown_all (void)
+{
+  if (window_hash != NULL)
+    {
+      g_hash_table_destroy (window_hash);
+      window_hash = NULL;
+    }
+}
+
 static void
 wnck_window_init (WnckWindow *window)
 {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]