# HG changeset patch # User Colin Clark # Date 1526373475 -3600 # Node ID ce0e8d548c0a5ff6e1b5a590801c08d352f0bded # Parent 9ab20f827272f8d8fb6764c8d737c4475b5c3c9b Fix #609: Crash on "View in New Window" if no image active https://github.com/BestImageViewer/geeqie/issues/609 diff -r 9ab20f827272 -r ce0e8d548c0a src/img-view.c --- a/src/img-view.c Sun May 06 19:54:36 2018 +0100 +++ b/src/img-view.c Tue May 15 09:37:55 2018 +0100 @@ -940,41 +940,44 @@ { GList *list; - if (file_extension_match(fd->path, GQ_COLLECTION_EXT)) + if (fd) { - ViewWindow *vw; - CollectionData *cd; - CollectInfo *info; + if (file_extension_match(fd->path, GQ_COLLECTION_EXT)) + { + ViewWindow *vw; + CollectionData *cd; + CollectInfo *info; - cd = collection_new(fd->path); - if (collection_load(cd, fd->path, COLLECTION_LOAD_NONE)) + cd = collection_new(fd->path); + if (collection_load(cd, fd->path, COLLECTION_LOAD_NONE)) + { + info = collection_get_first(cd); + } + else + { + collection_unref(cd); + cd = NULL; + info = NULL; + } + vw = real_view_window_new(NULL, NULL, cd, info); + if (vw && cd) + { + g_signal_connect(G_OBJECT(vw->window), "destroy", + G_CALLBACK(view_window_collection_unref_cb), cd); + } + } + else if (isdir(fd->path) && filelist_read(fd, &list, NULL)) { - info = collection_get_first(cd); + list = filelist_sort_path(list); + list = filelist_filter(list, FALSE); + real_view_window_new(NULL, list, NULL, NULL); + filelist_free(list); } else { - collection_unref(cd); - cd = NULL; - info = NULL; - } - vw = real_view_window_new(NULL, NULL, cd, info); - if (vw && cd) - { - g_signal_connect(G_OBJECT(vw->window), "destroy", - G_CALLBACK(view_window_collection_unref_cb), cd); + real_view_window_new(fd, NULL, NULL, NULL); } } - else if (isdir(fd->path) && filelist_read(fd, &list, NULL)) - { - list = filelist_sort_path(list); - list = filelist_filter(list, FALSE); - real_view_window_new(NULL, list, NULL, NULL); - filelist_free(list); - } - else - { - real_view_window_new(fd, NULL, NULL, NULL); - } } void view_window_new_from_list(GList *list)