Mercurial > geeqie
view src/view_dir_tree.h @ 565:85b9cec260bc
Fix a bug occuring when using certain actions on a collection
item which is not in the selection.
Triggering it will either result in an assertion failure or a
segfault.
To reproduce:
- open a collection
- right-click on a non-selected image
- select Delete... menu entry (or Copy, Move, Rename, Properties...)
It results in the best case:
** ERROR **: file filelist.c: line 905 (file_data_ref): assertion failed: (fd->magick == 0x12345678)
or a pure segfault due to corrupted data.
collection_table_popup_file_list() has to return a list of filedata *
not a list of gchar *.
author | zas_ |
---|---|
date | Sat, 03 May 2008 16:58:17 +0000 |
parents | 48c8e49b571c |
children | d6a7fb4b8e7c |
line wrap: on
line source
/* * Geeqie * (C) 2004 John Ellis * Copyright (C) 2008 The Geeqie Team * * Author: John Ellis * * This software is released under the GNU General Public License (GNU GPL). * Please read the included file COPYING for more information. * This software comes with no warranty of any kind, use at your own risk! */ #ifndef VIEW_DIR_TREE_H #define VIEW_DIR_TREE_H typedef struct _NodeData NodeData; struct _NodeData { FileData *fd; gint expanded; time_t last_update; }; ViewDir *vdtree_new(ViewDir *vd, const gchar *path); void vdtree_select_row(ViewDir *vd, FileData *fd); gint vdtree_set_path(ViewDir *vd, const gchar *path); void vdtree_refresh(ViewDir *vd); const gchar *vdtree_row_get_path(ViewDir *vd, gint row); gint vdtree_find_row(ViewDir *vd, FileData *fd, GtkTreeIter *iter, GtkTreeIter *parent); FileData *vdtree_populate_path(ViewDir *vd, const gchar *path, gint expand, gint force); void vdtree_rename_by_data(ViewDir *vd, FileData *fd); gint vdtree_press_key_cb(GtkWidget *widget, GdkEventKey *event, gpointer data); gint vdtree_press_cb(GtkWidget *widget, GdkEventButton *bevent, gpointer data); void vdtree_destroy_cb(GtkWidget *widget, gpointer data); #endif