Hello. I have created a popup menu in my function(list below). But I have a question "when and where to destroy it?". I tried connect its selection-done handler to gtk_widget_destroy.But it seems nothing happened. I run the program and monitor it through "system monitor". The program continuing eat memory when I right click the treeview to popup menu.
Thanks for any help. Best regards. [CODE] gboolean jmView_OnButtonPressed(GtkWidget *tv,GdkEventButton *event,gpointer userdata){ if(GDK_BUTTON_PRESS == event->type && event->button == 1){ g_print("left click on treeview\n"); }else if(GDK_BUTTON_PRESS == event->type && 3 == event->button){ GtkTreeSelection *treeSel = NULL; GtkTreePath *treePath = NULL; GladeXML *xml = NULL; GtkWidget *popupMenu = NULL,*jmPopupMenu_open=NULL,*jmPopupMenu_add = NULL; treeSel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tv)); if(gtk_tree_selection_count_selected_rows(treeSel) < 1){ return TRUE; } if(FALSE == gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(tv),(gint)event->x,(gint)event->y,&treePath,NULL,NULL,NULL)){ return TRUE; } //here create the menu popupMenu = libcore_get_widget(&xml,"menuCategory"); jmPopupMenu_open = libcore_get_widget(&xml,"menuitemCategoryOpen"); jmPopupMenu_add = libcore_get_widget(&xml,"menuitemCategoryAdd"); g_signal_connect(GTK_MENU_ITEM(jmPopupMenu_open),"activate",(GCallback)jmPopupMenu_open_onActivate,treePath); g_signal_connect(GTK_MENU_ITEM(jmPopupMenu_add),"activate",(GCallback)jmPopupMenu_add_onActivate,treePath); g_signal_connect(GTK_MENU_SHELL(popupMenu),"selection-done",gtk_widget_destroy,popupMenu); gtk_menu_popup(GTK_MENU(popupMenu),NULL,NULL,NULL,NULL,event->button,event->time); g_print("right click on treeview\n"); // gtk_widget_destroy(popupMenu); return TRUE; } return FALSE; } [/CODE] _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list