All pastes #33961 Raw Edit

Something

public text v1 · immutable
#33961 ·published 2005-12-17 14:17 UTC
rendered paste body
Index: src/gdict-app.c
===================================================================
RCS file: /cvs/gnome/gnome-utils/gnome-dictionary/src/gdict-app.c,v
retrieving revision 1.2
diff -u -p -r1.2 gdict-app.c
--- src/gdict-app.c	16 Dec 2005 17:36:02 -0000	1.2
+++ src/gdict-app.c	17 Dec 2005 14:16:27 -0000
@@ -109,48 +109,26 @@ gdict_window_destroy_cb (GtkWidget *widg
   GSList *l;
   
   g_assert (GDICT_IS_APP (app));
-  
-  for (l = app->windows; l != NULL; l = l->next)
-    {
-      GdictWindow *w = GDICT_WINDOW (l->data);
-      
-      if (w->window_id == window->window_id)
-        {
-          app->windows = g_slist_remove_link (app->windows, l);
-          g_slist_free (l);
 
-          break;
-        }
+  app->windows = g_slist_remove (app->windows, widget);
+
+  if (GDICT_WINDOW (widget) == app->current_window)
+    {
+      app->current_window = app->windows ? app->windows->data : NULL;
     }
 
-  if (g_slist_length (app->windows) == 0)
+  if (app->windows == NULL)
     gtk_main_quit ();
 }
 
 static void
-gdict_window_created_cb (GdictWindow *parent,
-			 GdictWindow *new_window,
-			 gpointer     user_data)
-{
-  GdictApp *app = GDICT_APP (user_data);
-  
-  g_signal_connect (new_window, "destroy",
-  		    G_CALLBACK (gdict_window_destroy_cb), app);
-  
-  app->windows = g_slist_prepend (app->windows, new_window);
-  app->current_window = new_window;
-}
-
-static void
 gdict_create_window (GdictApp *app)
 {
   GtkWidget *window;
   
   window = gdict_window_new (singleton->loader);
   GDICT_WINDOW (window)->client = app->gconf_client;
-  
-  g_signal_connect (window, "created",
-  		    G_CALLBACK (gdict_window_created_cb), app);
+
   g_signal_connect (window, "destroy",
                     G_CALLBACK (gdict_window_destroy_cb), app);