X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-window.c;h=ca81692305052e2596ddff40bebf4029bb7008ae;hb=5b2ed095a8aaa98adaea4922855edcbfb619c728;hp=7d478a642bfa38d87d807c5a2e3aac490f07f9e6;hpb=fd5bffd255a87432a2d64a5dd03f98e142f2130f;p=pspp diff --git a/src/ui/gui/psppire-window.c b/src/ui/gui/psppire-window.c index 7d478a642b..ca81692305 100644 --- a/src/ui/gui/psppire-window.c +++ b/src/ui/gui/psppire-window.c @@ -61,14 +61,15 @@ psppire_window_get_type (void) static const GTypeInfo psppire_window_info = { sizeof (PsppireWindowClass), - (GBaseInitFunc) psppire_window_base_init, + (GBaseInitFunc) (void (*)(void)) psppire_window_base_init, (GBaseFinalizeFunc) NULL, - (GClassInitFunc) psppire_window_class_init, + (GClassInitFunc) (void (*)(void)) psppire_window_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PsppireWindow), 0, - (GInstanceInitFunc) psppire_window_init, + (GInstanceInitFunc) (void (*)(void)) psppire_window_init, + NULL /* value_table */ }; psppire_window_type = @@ -326,6 +327,7 @@ insert_menuitem_into_menu (PsppireWindow *window, gpointer key) GtkWidget *item; filename = g_filename_display_name (key); item = gtk_check_menu_item_new_with_label (filename); + g_object_ref_sink (item); g_free (filename); g_hash_table_insert (window->menuitem_table, key, item); @@ -411,17 +413,19 @@ psppire_window_init (PsppireWindow *window) window->list_name = NULL; window->edited = NULL; - window->menuitem_table = g_hash_table_new (g_str_hash, g_str_equal); + window->menuitem_table = g_hash_table_new_full (g_str_hash, g_str_equal, + NULL, g_object_unref); g_signal_connect (window, "realize", G_CALLBACK (insert_existing_items), NULL); - window->insert_handler = g_signal_connect (psppire_window_register_new (), + PsppireWindowRegister *reg = psppire_window_register_new (); + window->insert_handler = g_signal_connect (reg, "inserted", G_CALLBACK (insert_menuitem), window); - window->remove_handler = g_signal_connect (psppire_window_register_new (), + window->remove_handler = g_signal_connect (reg, "removed", G_CALLBACK (remove_menuitem), window); @@ -562,7 +566,8 @@ psppire_window_model_get_type (void) NULL, /* class_data */ 0, 0, /* n_preallocs */ - NULL + NULL, + NULL /* value_table */ }; window_model_type =