Use file_data_list_free() in g_signal_connect_swapped
authorArkadiy Illarionov <[email protected]>
Mon, 26 May 2025 20:24:56 +0000 (23:24 +0300)
committerColin Clark <[email protected]>
Tue, 27 May 2025 09:56:32 +0000 (10:56 +0100)
src/dupe.cc
src/img-view.cc
src/layout-image.cc
src/pan-view/pan-view.cc
src/search.cc

index c60de4aee0f4a5e33f095808bb8a8952b1d7097e..2b4cbbd7ac0cc28afbfd7507a5fd1b6c4b77ce36 100644 (file)
@@ -3334,13 +3334,6 @@ static void dupe_menu_close_cb(GtkWidget *, gpointer data)
        dupe_window_close(dw);
 }
 
-static void dupe_menu_popup_destroy_cb(GtkWidget *, gpointer data)
-{
-       auto editmenu_fd_list = static_cast<GList *>(data);
-
-       file_data_list_free(editmenu_fd_list);
-}
-
 static GList *dupe_window_get_fd_list(DupeWindow *dw)
 {
        GList *list;
@@ -3410,8 +3403,8 @@ static GtkWidget *dupe_menu_popup_main(DupeWindow *dw, DupeItem *di)
        menu_item_add_divider(menu);
 
        editmenu_fd_list = dupe_window_get_fd_list(dw);
-       g_signal_connect(G_OBJECT(menu), "destroy",
-                        G_CALLBACK(dupe_menu_popup_destroy_cb), editmenu_fd_list);
+       g_signal_connect_swapped(G_OBJECT(menu), "destroy",
+                                G_CALLBACK(file_data_list_free), editmenu_fd_list);
        submenu_add_edit(menu, &item, G_CALLBACK(dupe_menu_edit_cb), dw, editmenu_fd_list);
        if (!on_row) gtk_widget_set_sensitive(item, FALSE);
 
index 870916b505934155c9f943cdc6623ac104764e2e..5f57c5ac28a7b8e04ba3442d14712c533252faa0 100644 (file)
@@ -1317,13 +1317,6 @@ static void view_set_layout_path_cb(GtkWidget *, gpointer data)
        view_window_close(vw);
 }
 
-static void view_popup_menu_destroy_cb(GtkWidget *, gpointer data)
-{
-       auto editmenu_fd_list = static_cast<GList *>(data);
-
-       file_data_list_free(editmenu_fd_list);
-}
-
 static GList *view_window_get_fd_list(ViewWindow *vw)
 {
        GList *list = nullptr;
@@ -1381,8 +1374,8 @@ static GtkWidget *view_popup_menu(ViewWindow *vw)
        menu_item_add_divider(menu);
 
        editmenu_fd_list = view_window_get_fd_list(vw);
-       g_signal_connect(G_OBJECT(menu), "destroy",
-                        G_CALLBACK(view_popup_menu_destroy_cb), editmenu_fd_list);
+       g_signal_connect_swapped(G_OBJECT(menu), "destroy",
+                                G_CALLBACK(file_data_list_free), editmenu_fd_list);
        item = submenu_add_edit(menu, nullptr, G_CALLBACK(view_edit_cb), vw, editmenu_fd_list);
        menu_item_add_divider(item);
 
index dd7cbab095569d7e2bf67963b3cb63a03afbde92..bd7bd443f1497e5cad02444d12ce19179683b180 100644 (file)
@@ -731,13 +731,6 @@ static gboolean li_check_if_current_path(LayoutWindow *lw, const gchar *path)
        return strcmp(lw->dir_fd->path, dirname) == 0;
 }
 
-static void layout_image_popup_menu_destroy_cb(GtkWidget *, gpointer data)
-{
-       auto editmenu_fd_list = static_cast<GList *>(data);
-
-       file_data_list_free(editmenu_fd_list);
-}
-
 static GList *layout_image_get_fd_list(LayoutWindow *lw)
 {
        GList *list = nullptr;
@@ -803,8 +796,8 @@ static GtkWidget *layout_image_pop_menu(LayoutWindow *lw)
        menu_item_add_divider(menu);
 
        editmenu_fd_list = layout_image_get_fd_list(lw);
-       g_signal_connect(G_OBJECT(menu), "destroy",
-                        G_CALLBACK(layout_image_popup_menu_destroy_cb), editmenu_fd_list);
+       g_signal_connect_swapped(G_OBJECT(menu), "destroy",
+                                G_CALLBACK(file_data_list_free), editmenu_fd_list);
        submenu = submenu_add_edit(menu, &item, G_CALLBACK(li_pop_menu_edit_cb), lw, editmenu_fd_list);
        if (!path) gtk_widget_set_sensitive(item, FALSE);
        menu_item_add_divider(submenu);
index 9c97b0afa09cf3c5a67e228233074cdd25de0e7f..e5e1f0a402cb24f86c582fa7fd3beda485a0755e 100644 (file)
@@ -2275,13 +2275,6 @@ static void pan_close_cb(GtkWidget *, gpointer data)
        pan_window_close(pw);
 }
 
-static void pan_popup_menu_destroy_cb(GtkWidget *, gpointer data)
-{
-       auto editmenu_fd_list = static_cast<GList *>(data);
-
-       file_data_list_free(editmenu_fd_list);
-}
-
 static void pan_play_cb(GtkWidget *, gpointer data)
 {
        auto pw = static_cast<PanWindow *>(data);
@@ -2347,8 +2340,8 @@ static GtkWidget *pan_popup_menu(PanWindow *pw)
        menu_item_add_divider(menu);
 
        editmenu_fd_list = pan_view_get_fd_list(pw);
-       g_signal_connect(G_OBJECT(menu), "destroy",
-                        G_CALLBACK(pan_popup_menu_destroy_cb), editmenu_fd_list);
+       g_signal_connect_swapped(G_OBJECT(menu), "destroy",
+                                G_CALLBACK(file_data_list_free), editmenu_fd_list);
 
        submenu_add_edit(menu, &item, G_CALLBACK(pan_edit_cb), pw, editmenu_fd_list);
        gtk_widget_set_sensitive(item, active);
index 3e4707ba1ca8e7b5cdf75d79e23d7d544a4a841c..fb11202a20ab10e29464f2aeb73df056e4bc74df 100644 (file)
@@ -1166,13 +1166,6 @@ static void sr_menu_play_cb(GtkWidget *, gpointer data)
        start_editor_from_file(options->image_l_click_video_editor, sd->click_fd);
 }
 
-static void search_result_menu_destroy_cb(GtkWidget *, gpointer data)
-{
-       auto editmenu_fd_list = static_cast<GList *>(data);
-
-       file_data_list_free(editmenu_fd_list);
-}
-
 /**
  * @brief Add file selection list to a collection
  * @param[in] widget
@@ -1219,8 +1212,8 @@ static GtkWidget *search_result_menu(SearchData *sd, gboolean on_row, gboolean e
        menu_item_add_divider(menu);
 
        editmenu_fd_list = search_result_selection_list(sd);
-       g_signal_connect(G_OBJECT(menu), "destroy",
-                        G_CALLBACK(search_result_menu_destroy_cb), editmenu_fd_list);
+       g_signal_connect_swapped(G_OBJECT(menu), "destroy",
+                                G_CALLBACK(file_data_list_free), editmenu_fd_list);
        submenu_add_edit(menu, &item, G_CALLBACK(sr_menu_edit_cb), sd, editmenu_fd_list);
        if (!on_row) gtk_widget_set_sensitive(item, FALSE);