rendered paste bodyIndex: 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);