Mercurial > geeqie
diff src/search.c @ 1397:a0bd58a6535f
In various Edit context menus, only display editors that match the file types in the selection.
author | zas_ |
---|---|
date | Sun, 08 Mar 2009 13:23:25 +0000 |
parents | fe4da037be21 |
children | cf4029d10d38 |
line wrap: on
line diff
--- a/src/search.c Sun Mar 08 12:42:23 2009 +0000 +++ b/src/search.c Sun Mar 08 13:23:25 2009 +0000 @@ -190,6 +190,10 @@ ThumbLoader *thumb_loader; gint thumb_enable; FileData *thumb_fd; + + /* file list for edit menu */ + GList *editmenu_fd_list; + }; typedef struct _MatchFileData MatchFileData; @@ -979,12 +983,23 @@ search_result_clear(sd); } +static void search_result_menu_destroy_cb(GtkWidget *widget, gpointer data) +{ + SearchData *sd = data; + + filelist_free(sd->editmenu_fd_list); + sd->editmenu_fd_list = NULL; +} + static GtkWidget *search_result_menu(SearchData *sd, gint on_row, gint empty) { GtkWidget *menu; GtkWidget *item; menu = popup_menu_short_lived(); + g_signal_connect(G_OBJECT(menu), "destroy", + G_CALLBACK(search_result_menu_destroy_cb), sd); + menu_item_add_sensitive(menu, _("_View"), on_row, G_CALLBACK(sr_menu_view_cb), sd); menu_item_add_stock_sensitive(menu, _("View in _new window"), GTK_STOCK_NEW, on_row, @@ -995,7 +1010,9 @@ menu_item_add_sensitive(menu, _("Select none"), !empty, G_CALLBACK(sr_menu_select_none_cb), sd); menu_item_add_divider(menu); - submenu_add_edit(menu, &item, G_CALLBACK(sr_menu_edit_cb), sd); + + sd->editmenu_fd_list = search_result_selection_list(sd); + submenu_add_edit(menu, &item, G_CALLBACK(sr_menu_edit_cb), sd, sd->editmenu_fd_list); if (!on_row) gtk_widget_set_sensitive(item, FALSE); menu_item_add_stock_sensitive(menu, _("Add to new collection"), GTK_STOCK_INDEX, on_row, G_CALLBACK(sr_menu_collection_cb), sd);