comparison src/view_dir.c @ 1413:3bc4967aaa57

Use dynamic allocation for editor key passed to various callbacks.
author zas_
date Wed, 11 Mar 2009 17:38:20 +0000
parents 5a534e1501e1
children cf4029d10d38
comparison
equal deleted inserted replaced
1412:5a534e1501e1 1413:3bc4967aaa57
328 vd->drop_list = NULL; 328 vd->drop_list = NULL;
329 329
330 file_util_start_filter_from_filelist(key, list, path, vd->widget); 330 file_util_start_filter_from_filelist(key, list, path, vd->widget);
331 } 331 }
332 332
333 333 static void vd_drop_menu_edit_item_free(gpointer data)
334 {
335 g_free(data);
336 }
334 337
335 GtkWidget *vd_drop_menu(ViewDir *vd, gint active) 338 GtkWidget *vd_drop_menu(ViewDir *vd, gint active)
336 { 339 {
337 GtkWidget *menu; 340 GtkWidget *menu;
338 GList *editors_list = editor_list_get(); 341 GList *editors_list = editor_list_get();
348 351
349 while (work) 352 while (work)
350 { 353 {
351 GtkWidget *item; 354 GtkWidget *item;
352 const EditorDescription *editor = work->data; 355 const EditorDescription *editor = work->data;
356 gchar *key;
353 work = work->next; 357 work = work->next;
354 358
355 if (!editor_is_filter(editor->key)) continue; 359 if (!editor_is_filter(editor->key)) continue;
360 key = g_strdup(editor->key);
356 item = menu_item_add_sensitive(menu, editor->name, active, G_CALLBACK(vd_drop_menu_filter_cb), vd); 361 item = menu_item_add_sensitive(menu, editor->name, active, G_CALLBACK(vd_drop_menu_filter_cb), vd);
357 362 g_object_set_data_full(G_OBJECT(item), "filter_key", key, vd_drop_menu_edit_item_free);
358 g_object_set_data(G_OBJECT(item), "filter_key", editor->key);
359 } 363 }
360 364
361 g_list_free(editors_list); 365 g_list_free(editors_list);
362 366
363 menu_item_add_divider(menu); 367 menu_item_add_divider(menu);