GTK4: Reduce the use of gtk_widget_destroy()
authorColin Clark <colin.clark@cclark.uk>
Sun, 24 Sep 2023 15:02:12 +0000 (16:02 +0100)
committerColin Clark <colin.clark@cclark.uk>
Sun, 24 Sep 2023 15:02:12 +0000 (16:02 +0100)
GTK4 migration

gtk_widget_destroy() replaced by g_object_unref() except for top level
windows where gtk_window_destroy() is used.

34 files changed:
src/advanced-exif.cc
src/bar-exif.cc
src/bar-keywords.cc
src/bar-sort.cc
src/bar.cc
src/collect-table.cc
src/collect.cc
src/compat.h
src/desktop-file.cc
src/dnd.cc
src/dupe.cc
src/fullscreen.cc
src/image.cc
src/img-view.cc
src/layout-util.cc
src/layout.cc
src/main.cc
src/pan-view/pan-view-filter.cc
src/pan-view/pan-view-search.cc
src/pan-view/pan-view.cc
src/preferences.cc
src/print.cc
src/search-and-run.cc
src/search.cc
src/toolbar.cc
src/ui-bookmark.cc
src/ui-help.cc
src/ui-misc.cc
src/ui-tree-edit.cc
src/ui-utildlg.cc
src/utilops.cc
src/view-dir.cc
src/view-file/view-file-icon.cc
src/view-file/view-file.cc

index de6d2bc..a62b6f1 100644 (file)
@@ -270,7 +270,7 @@ void advanced_exif_close(ExifWin *ew)
        advanced_exif_window_get_geometry(ew);
        file_data_unref(ew->fd);
 
-       gtk_widget_destroy(ew->window);
+       gq_gtk_widget_destroy(ew->window);
 
        g_free(ew);
 }
index 985e8c5..8b9b14d 100644 (file)
@@ -118,7 +118,7 @@ static void bar_pane_exif_setup_entry_box(PaneExifData *ped, ExifEntry *ee)
        gboolean horizontal = !ee->editable;
        gboolean editable = ee->editable;
 
-       if (ee->box) gtk_widget_destroy(ee->box);
+       if (ee->box) g_object_unref(ee->box);
 
        ee->box = horizontal ? gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0) : gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
        gtk_container_add(GTK_CONTAINER(ee->ebox), ee->box);
@@ -599,7 +599,7 @@ static void bar_pane_exif_conf_dialog_cb(GtkWidget *, gpointer data)
 static void bar_pane_exif_delete_entry_cb(GtkWidget *, gpointer data)
 {
        auto entry = static_cast<GtkWidget *>(data);
-       gtk_widget_destroy(entry);
+       g_object_unref(entry);
 }
 
 static void bar_pane_exif_copy_entry_cb(GtkWidget *, gpointer data)
@@ -774,7 +774,7 @@ void bar_pane_exif_close_unused(GtkWidget *widget)
        ped = static_cast<PaneExifData *>(g_object_get_data(G_OBJECT(widget), "pane_data"));
        if (!ped) return;
 
-       gtk_widget_destroy(ped->vbox);
+       g_object_unref(ped->vbox);
 }
 #pragma GCC diagnostic pop
 
index c7c99b2..bdeaaae 100644 (file)
@@ -1423,7 +1423,7 @@ void bar_pane_keywords_close_unused(GtkWidget *bar)
        if (!pkd) return;
 
        g_free(pkd->pane.id);
-       gtk_widget_destroy(pkd->widget);
+       g_object_unref(pkd->widget);
 }
 #pragma GCC diagnostic pop
 
index 836d2e2..7c58f3c 100644 (file)
@@ -606,7 +606,7 @@ void bar_sort_close(GtkWidget *bar)
        sd = static_cast<SortData *>(g_object_get_data(G_OBJECT(bar), "bar_sort_data"));
        if (!sd) return;
 
-       gtk_widget_destroy(sd->vbox);
+       gq_gtk_widget_destroy(sd->vbox);
 }
 
 static void bar_sort_destroy(GtkWidget *, gpointer data)
index f1e8c8c..0d18eae 100644 (file)
@@ -275,7 +275,7 @@ static void height_spin_key_press_cb(GtkEventControllerKey *, gint keyval, guint
 {
        if ((keyval == GDK_KEY_Return || keyval == GDK_KEY_Escape))
                {
-               gtk_widget_destroy(GTK_WIDGET(data));
+               g_object_unref(GTK_WIDGET(data));
                }
 }
 
@@ -328,7 +328,7 @@ static void bar_expander_height_cb(GtkWidget *, gpointer data)
 static void bar_expander_delete_cb(GtkWidget *, gpointer data)
 {
        auto expander = static_cast<GtkWidget *>(data);
-       gtk_widget_destroy(expander);
+       g_object_unref(expander);
 }
 
 static void bar_expander_add_cb(GtkWidget *widget, gpointer)
@@ -574,7 +574,7 @@ void bar_clear(GtkWidget *bar)
 
        list = gtk_container_get_children(GTK_CONTAINER(bd->vbox));
 
-       g_list_free_full(list, reinterpret_cast<GDestroyNotify>(gtk_widget_destroy));
+       g_list_free_full(list, reinterpret_cast<GDestroyNotify>(g_object_unref));
 }
 
 void bar_write_config(GtkWidget *bar, GString *outstr, gint indent)
@@ -702,7 +702,8 @@ void bar_close(GtkWidget *bar)
        bd = static_cast<BarData *>(g_object_get_data(G_OBJECT(bar), "bar_data"));
        if (!bd) return;
 
-       gtk_widget_destroy(bd->widget);
+       /* @FIXME This causes a g_object_unref failed error on exit */
+       gq_gtk_widget_destroy(bd->widget);
 }
 
 static void bar_destroy(GtkWidget *, gpointer data)
index 4177af4..9243aed 100644 (file)
@@ -598,7 +598,7 @@ static void tip_show(CollectTable *ct)
 
 static void tip_hide(CollectTable *ct)
 {
-       if (ct->tip_window) gtk_widget_destroy(ct->tip_window);
+       if (ct->tip_window) g_object_unref(ct->tip_window);
        ct->tip_window = nullptr;
 }
 
@@ -2642,7 +2642,7 @@ static void collection_table_destroy(GtkWidget *, gpointer data)
                {
                g_signal_handlers_disconnect_matched(G_OBJECT(ct->popup), G_SIGNAL_MATCH_DATA,
                                                     0, 0, nullptr, nullptr, ct);
-               gtk_widget_destroy(ct->popup);
+               g_object_unref(ct->popup);
                }
 
        if (ct->sync_idle_id) g_source_remove(ct->sync_idle_id);
index 59628c2..6f87677 100644 (file)
@@ -1171,7 +1171,7 @@ static void collection_window_close_final(CollectWindow *cw)
        collection_window_list = g_list_remove(collection_window_list, cw);
        collection_window_get_geometry(cw);
 
-       gtk_widget_destroy(cw->window);
+       gq_gtk_widget_destroy(cw->window);
 
        collection_set_update_info_func(cw->cd, nullptr, nullptr);
        collection_unref(cw->cd);
index eb55ad1..a6460d9 100644 (file)
@@ -35,6 +35,7 @@
        #define gq_gtk_frame_set_shadow_type(frame, type) ;
        #define gq_gtk_scrolled_window_new(hadjustment, vadjustment) gtk_scrolled_window_new()
        #define gq_gtk_scrolled_window_set_shadow_type(scrolled_window, type) gtk_scrolled_window_set_has_frame(scrolled_window, TRUE)
+       #define gq_gtk_widget_destroy(widget) gtk_window_destroy(widget)
        #define gq_gtk_widget_queue_draw_area(widget, x, y, width, height) gtk_widget_queue_draw(widget);
        #define gq_gtk_widget_show_all(widget) ;
        #define gq_gtk_window_set_keep_above(window, setting) ;
@@ -44,6 +45,7 @@
        #define gq_gtk_frame_set_shadow_type(frame, type) gtk_frame_set_shadow_type(frame, type)
        #define gq_gtk_scrolled_window_new(hadjustment, vadjustment) gtk_scrolled_window_new(hadjustment, vadjustment)
        #define gq_gtk_scrolled_window_set_shadow_type(scrolled_window, type) gtk_scrolled_window_set_shadow_type(scrolled_window, type)
+       #define gq_gtk_widget_destroy(widget) gtk_widget_destroy(widget)
        #define gq_gtk_widget_queue_draw_area(widget, x, y, width, height) gtk_widget_queue_draw_area(widget, x, y, width, height);
        #define gq_gtk_widget_show_all(widget) gtk_widget_show_all(widget)
        #define gq_gtk_window_set_keep_above(window, setting) gtk_window_set_keep_above(window, setting)
index 1bf280e..2188ab5 100644 (file)
@@ -111,7 +111,7 @@ static void editor_window_close_cb(GtkWidget *, gpointer data)
        auto ew = static_cast<EditorWindow *>(data);
 
        g_free(ew->desktop_name);
-       gtk_widget_destroy(ew->window);
+       gq_gtk_widget_destroy(ew->window);
        g_free(ew);
 }
 
@@ -264,7 +264,7 @@ static void editor_window_new(const gchar *src_path, const gchar *desktop_name)
 
 static void editor_list_window_close_cb(GtkWidget *, gpointer)
 {
-       gtk_widget_destroy(editor_list_window->window);
+       gq_gtk_widget_destroy(editor_list_window->window);
        g_free(editor_list_window);
        editor_list_window = nullptr;
 }
index 5bb3852..a21cfc6 100644 (file)
@@ -175,7 +175,7 @@ static void dnd_set_drag_label_end_cb(GtkWidget *widget, GdkDragContext *, gpoin
 {
        auto window = static_cast<GtkWidget *>(data);
        g_signal_handlers_disconnect_by_func(widget, (gpointer)dnd_set_drag_label_end_cb, data);
-       gtk_widget_destroy(window);
+       g_object_unref(window);
 }
 
 void dnd_set_drag_label(GtkWidget *widget, GdkDragContext *context, const gchar *text)
index d9af896..d166643 100644 (file)
@@ -4422,7 +4422,7 @@ void dupe_window_close(DupeWindow *dw)
        dupe_window_get_geometry(dw);
 
        dupe_window_list = g_list_remove(dupe_window_list, dw);
-       gtk_widget_destroy(dw->window);
+       gq_gtk_widget_destroy(dw->window);
 
        g_list_free(dw->dupes);
        g_list_free_full(dw->list, reinterpret_cast<GDestroyNotify>(dupe_item_free));
index 2d70cf0..69058fd 100644 (file)
@@ -377,7 +377,7 @@ void fullscreen_stop(FullScreenData *fs)
 
        if (fs->stop_func) fs->stop_func(fs, fs->stop_data);
 
-       gtk_widget_destroy(fs->window);
+       gq_gtk_widget_destroy(fs->window);
 
        gtk_window_present(GTK_WINDOW(fs->normal_window));
 
index f6baf96..e63ccdf 100644 (file)
@@ -2162,7 +2162,7 @@ void image_set_frame(ImageWindow *imd, gboolean frame)
                if (imd->frame)
                        {
                        gtk_container_remove(GTK_CONTAINER(imd->frame), imd->pr);
-                       gtk_widget_destroy(imd->frame);
+                       g_object_unref(imd->frame);
                        imd->frame = nullptr;
                        }
                gq_gtk_box_pack_start(GTK_BOX(imd->widget), imd->pr, TRUE, TRUE, 0);
index 9f50773..d9c40bd 100644 (file)
@@ -886,7 +886,7 @@ static void view_window_close(ViewWindow *vw)
 {
        view_slideshow_stop(vw);
        view_fullscreen_toggle(vw, TRUE);
-       gtk_widget_destroy(vw->window);
+       gq_gtk_widget_destroy(vw->window);
 }
 
 static gboolean view_window_delete_cb(GtkWidget *, GdkEventAny *, gpointer data)
index 62b767b..edff257 100644 (file)
@@ -2170,7 +2170,7 @@ static void layout_menu_new_window_update(LayoutWindow *lw)
                {
                if (i >= 4) // separator, default, from current, separator
                        {
-                       gtk_widget_destroy(GTK_WIDGET(iter->data));
+                       g_object_unref(GTK_WIDGET(iter->data));
                        }
                }
        g_list_free(children);
index cb539bf..ff675f7 100644 (file)
@@ -1641,7 +1641,7 @@ static void layout_tools_setup(LayoutWindow *lw, GtkWidget *tools, GtkWidget *fi
                {
                layout_tools_geometry_sync(lw);
                /* dump the contents */
-               gtk_widget_destroy(gtk_bin_get_child(GTK_BIN(lw->tools)));
+               gq_gtk_widget_destroy(gtk_bin_get_child(GTK_BIN(lw->tools)));
                }
 
        layout_actions_add_window(lw, lw->tools);
@@ -1840,7 +1840,7 @@ static void layout_grid_setup(LayoutWindow *lw)
        else if (lw->tools)
                {
                layout_tools_geometry_sync(lw);
-               gtk_widget_destroy(lw->tools);
+               gq_gtk_widget_destroy(lw->tools);
                lw->tools = nullptr;
                lw->tools_pane = nullptr;
                }
@@ -2220,7 +2220,7 @@ static void layout_config_close_cb(GtkWidget *, gpointer data)
 {
        auto lc = static_cast<LayoutConfig *>(data);
 
-       gtk_widget_destroy(lc->configwindow);
+       gq_gtk_widget_destroy(lc->configwindow);
        free_layout_options_content(&lc->options);
        g_free(lc);
 }
@@ -2546,7 +2546,7 @@ void layout_free(LayoutWindow *lw)
                if (lw->toolbar[i]) g_object_unref(lw->toolbar[i]);
                }
 
-       gtk_widget_destroy(lw->window);
+       gq_gtk_widget_destroy(lw->window);
 
        if (lw->split_image_sizegroup) g_object_unref(lw->split_image_sizegroup);
 
index 7e9bd42..de12173 100644 (file)
@@ -566,7 +566,7 @@ static void parse_command_line(gint argc, gchar *argv[])
                        gtk_window_set_title(GTK_WINDOW(dialog_warning), GQ_APPNAME);
                        gq_gtk_window_set_keep_above(GTK_WINDOW(dialog_warning), TRUE);
                        gtk_dialog_run(GTK_DIALOG(dialog_warning));
-                       gtk_widget_destroy(dialog_warning);
+                       g_object_unref(dialog_warning);
                        g_string_free(command_line_errors, TRUE);
 
                        exit(EXIT_FAILURE);
@@ -627,7 +627,7 @@ static void parse_command_line(gint argc, gchar *argv[])
                        gtk_window_set_title(GTK_WINDOW(dialog_warning), GQ_APPNAME);
                        gq_gtk_window_set_keep_above(GTK_WINDOW(dialog_warning), TRUE);
                        gtk_dialog_run(GTK_DIALOG(dialog_warning));
-                       gtk_widget_destroy(dialog_warning);
+                       g_object_unref(dialog_warning);
                        g_string_free(command_line_errors, TRUE);
 
                        exit(EXIT_FAILURE);
index 7d9118f..8e45570 100644 (file)
@@ -143,7 +143,7 @@ static void pan_filter_kw_button_cb(GtkButton *widget, gpointer data)
 
        /** @todo (xsdg): Fix filter element pointed object memory leak. */
        ui->filter_elements = g_list_delete_link(ui->filter_elements, cb_state->filter_element);
-       gtk_widget_destroy(GTK_WIDGET(widget));
+       g_object_unref(GTK_WIDGET(widget));
        g_free(cb_state);
 
        pan_filter_status(pw, _("Removed keyword…"));
@@ -226,7 +226,7 @@ void pan_filter_toggle_cb(GtkWidget *button, gpointer data)
 
                parent = gtk_widget_get_parent(ui->filter_button_arrow);
 
-               gtk_widget_destroy(ui->filter_button_arrow);
+               g_object_unref(ui->filter_button_arrow);
                ui->filter_button_arrow = gtk_image_new_from_icon_name(GQ_ICON_PAN_UP, GTK_ICON_SIZE_BUTTON);
 
                gq_gtk_box_pack_start(GTK_BOX(parent), ui->filter_button_arrow, FALSE, FALSE, 0);
@@ -240,7 +240,7 @@ void pan_filter_toggle_cb(GtkWidget *button, gpointer data)
 
                parent = gtk_widget_get_parent(ui->filter_button_arrow);
 
-               gtk_widget_destroy(ui->filter_button_arrow);
+               g_object_unref(ui->filter_button_arrow);
                ui->filter_button_arrow = gtk_image_new_from_icon_name(GQ_ICON_PAN_DOWN, GTK_ICON_SIZE_BUTTON);
 
                gq_gtk_box_pack_start(GTK_BOX(parent), ui->filter_button_arrow, FALSE, FALSE, 0);
index 78c4e32..d064ed7 100644 (file)
@@ -431,7 +431,7 @@ void pan_search_toggle_cb(GtkWidget *button, gpointer data)
 
                parent = gtk_widget_get_parent(ui->search_button_arrow);
 
-               gtk_widget_destroy(ui->search_button_arrow);
+               g_object_unref(ui->search_button_arrow);
                ui->search_button_arrow = gtk_image_new_from_icon_name(GQ_ICON_PAN_UP, GTK_ICON_SIZE_BUTTON);
 
                gq_gtk_box_pack_start(GTK_BOX(parent), ui->search_button_arrow, FALSE, FALSE, 0);
@@ -445,7 +445,7 @@ void pan_search_toggle_cb(GtkWidget *button, gpointer data)
 
                parent = gtk_widget_get_parent(ui->search_button_arrow);
 
-               gtk_widget_destroy(ui->search_button_arrow);
+               g_object_unref(ui->search_button_arrow);
                ui->search_button_arrow = gtk_image_new_from_icon_name(GQ_ICON_PAN_DOWN, GTK_ICON_SIZE_BUTTON);
 
                gq_gtk_box_pack_start(GTK_BOX(parent), ui->search_button_arrow, FALSE, FALSE, 0);
index c98f7f4..93d7627 100644 (file)
@@ -1776,7 +1776,7 @@ static void pan_window_close(PanWindow *pw)
        pan_fullscreen_toggle(pw, TRUE);
        pan_search_ui_destroy(&pw->search_ui);
        pan_filter_ui_destroy(&pw->filter_ui);
-       gtk_widget_destroy(pw->window);
+       gq_gtk_widget_destroy(pw->window);
 
        pan_window_items_free(pw);
        pan_cache_free(pw);
index ef0b38d..f1376f0 100644 (file)
@@ -513,7 +513,7 @@ static void config_window_apply()
 
 static void config_window_close_cb(GtkWidget *, gpointer)
 {
-       gtk_widget_destroy(configwindow);
+       gq_gtk_widget_destroy(configwindow);
        configwindow = nullptr;
        filter_store = nullptr;
 }
@@ -1452,7 +1452,7 @@ static void font_activated_cb(GtkFontChooser *widget, gchar *fontname, gpointer)
        c_options->image_overlay.font = g_strdup(fontname);
        g_free(fontname);
 
-       gtk_widget_destroy(GTK_WIDGET(widget));
+       gq_gtk_widget_destroy(GTK_WIDGET(widget));
 }
 
 static void font_response_cb(GtkDialog *dialog, gint response_id, gpointer)
@@ -1470,7 +1470,7 @@ static void font_response_cb(GtkDialog *dialog, gint response_id, gpointer)
                g_free(font);
                }
 
-       gtk_widget_destroy(GTK_WIDGET(dialog));
+       g_object_unref(dialog);
 }
 
 static void image_overlay_set_font_cb(GtkWidget *widget, gpointer)
@@ -1494,7 +1494,7 @@ static void text_color_activated_cb(GtkColorChooser *chooser, GdkRGBA *color, gp
        c_options->image_overlay.text_blue = color->blue * 255;
        c_options->image_overlay.text_alpha = color->alpha * 255;
 
-       gtk_widget_destroy(GTK_WIDGET(chooser));
+       gq_gtk_widget_destroy(GTK_WIDGET(chooser));
 }
 
 static void text_color_response_cb(GtkDialog *dialog, gint response_id, gpointer)
@@ -1515,7 +1515,7 @@ static void text_color_response_cb(GtkDialog *dialog, gint response_id, gpointer
                c_options->image_overlay.text_alpha = color.alpha * 255;
                }
 
-       gtk_widget_destroy(GTK_WIDGET(dialog));
+       g_object_unref(dialog);
 }
 
 static void image_overlay_set_text_color_cb(GtkWidget *widget, gpointer)
@@ -1544,7 +1544,7 @@ static void bg_color_activated_cb(GtkColorChooser *chooser, GdkRGBA *color, gpoi
        c_options->image_overlay.background_blue = color->blue * 255;
        c_options->image_overlay.background_alpha = color->alpha * 255;
 
-       gtk_widget_destroy(GTK_WIDGET(chooser));
+       gq_gtk_widget_destroy(GTK_WIDGET(chooser));
 }
 
 static void bg_color_response_cb(GtkDialog *dialog, gint response_id, gpointer)
@@ -1564,7 +1564,7 @@ static void bg_color_response_cb(GtkDialog *dialog, gint response_id, gpointer)
                c_options->image_overlay.background_blue = color.blue * 255;
                c_options->image_overlay.background_alpha = color.alpha * 255;
                }
-       gtk_widget_destroy(GTK_WIDGET(dialog));
+       gq_gtk_widget_destroy(GTK_WIDGET(dialog));
 }
 
 static void image_overlay_set_background_color_cb(GtkWidget *widget, gpointer)
index c200afe..3f08f2b 100644 (file)
@@ -127,7 +127,7 @@ static void font_activated_cb(GtkFontChooser *widget, gchar *fontname, gpointer
 
        g_free(fontname);
 
-       gtk_widget_destroy(GTK_WIDGET(widget));
+       gq_gtk_widget_destroy(GTK_WIDGET(widget));
 }
 #pragma GCC diagnostic pop
 
@@ -143,7 +143,7 @@ static void font_response_cb(GtkDialog *dialog, int response_id, gpointer option
                g_free(font);
                }
 
-       gtk_widget_destroy(GTK_WIDGET(dialog));
+       gq_gtk_widget_destroy(GTK_WIDGET(dialog));
 }
 
 static void print_set_font_cb(GtkWidget *widget, gpointer data)
@@ -849,6 +849,11 @@ static void end_print_cb(GtkPrintOperation *operation, GtkPrintContext *, gpoint
        g_free(pw);
 }
 
+static void print_response_cb(GtkDialog *dialog, gint, gpointer)
+{
+       gq_gtk_widget_destroy(GTK_WIDGET(dialog));
+}
+
 void print_window_new(FileData *, GList *selection, GList *, GtkWidget *parent)
 {
        GtkWidget *vbox;
@@ -950,7 +955,7 @@ void print_window_new(FileData *, GList *selection, GList *, GtkWidget *parent)
                                                                "%s", error->message);
                g_error_free (error);
 
-               g_signal_connect(dialog, "response", G_CALLBACK(gtk_widget_destroy), NULL);
+               g_signal_connect(dialog, "response", G_CALLBACK(print_response_cb), NULL);
 
                gtk_widget_show (dialog);
                }
index 4a2d62d..e461714 100644 (file)
@@ -176,7 +176,7 @@ static gboolean search_and_run_destroy(gpointer data)
        sar->lw->sar_window = nullptr;
        g_object_unref(gtk_builder_get_object(sar->builder, "completion"));
        g_object_unref(gtk_builder_get_object(sar->builder, "command_store"));
-       gtk_widget_destroy(sar->window);
+       g_object_unref(sar->window);
        g_free(sar);
 
        return G_SOURCE_REMOVE;
index ee8fdd8..90c69d0 100644 (file)
@@ -3177,7 +3177,7 @@ static void search_window_close(SearchData *sd)
 
        search_window_get_geometry(sd);
 
-       gtk_widget_destroy(sd->window);
+       gq_gtk_widget_destroy(sd->window);
 }
 
 static void search_window_close_cb(GtkWidget *, gpointer data)
index 7433edb..2562853 100644 (file)
@@ -116,7 +116,7 @@ static void toolbar_item_move_bottom_cb(GtkWidget *widget, gpointer data)
 
 static void toolbar_item_delete_cb(GtkWidget *, gpointer data)
 {
-       gtk_widget_destroy(GTK_WIDGET(data));
+       g_object_unref(GTK_WIDGET(data));
 }
 
 static void toolbar_menu_popup(GtkWidget *widget)
index b5d0a05..7318c8f 100644 (file)
@@ -521,7 +521,7 @@ static void bookmark_populate(BookMarkData *bm)
                {
                GtkWidget *widget = GTK_WIDGET(work->data);
                work = work->next;
-               gtk_widget_destroy(widget);
+               g_object_unref(widget);
                }
 
        if (!bm->no_defaults && !history_list_get_by_key(bm->key))
index 7a6db57..e3f5f7c 100644 (file)
@@ -145,14 +145,14 @@ static void help_window_load_text(GtkWidget *text, const gchar *path)
 
 static gboolean help_window_delete_cb(GtkWidget *widget, GdkEventAny *, gpointer)
 {
-       gtk_widget_destroy(widget);
+       gq_gtk_widget_destroy(widget);
        return TRUE;
 }
 
 static void help_window_close(GtkWidget *, gpointer data)
 {
        auto window = static_cast<GtkWidget *>(data);
-       gtk_widget_destroy(window);
+       gq_gtk_widget_destroy(window);
 }
 
 void help_window_set_key(GtkWidget *window, const gchar *key)
index 98f4d79..d3271bf 100644 (file)
@@ -792,7 +792,7 @@ static void date_selection_popup_hide(DateSelection *ds)
 
        gtk_widget_hide(ds->window);
 
-       gtk_widget_destroy(ds->window);
+       g_object_unref(ds->window);
        ds->window = nullptr;
        ds->calendar = nullptr;
 
index 319eaa4..5f4decf 100644 (file)
@@ -36,7 +36,7 @@ static void tree_edit_close(TreeEditData *ted)
        gdk_keyboard_ungrab(GDK_CURRENT_TIME);
        gdk_pointer_ungrab(GDK_CURRENT_TIME);
 
-       gtk_widget_destroy(ted->window);
+       g_object_unref(ted->window);
 
        g_free(ted->old_name);
        g_free(ted->new_name);
index 1aad03c..8314486 100644 (file)
@@ -123,7 +123,7 @@ void generic_dialog_close(GenericDialog *gd)
 
        generic_dialog_save_window(actual_title, gtk_window_get_role(GTK_WINDOW(gd->dialog)), x, y, w, h);
 
-       gtk_widget_destroy(gd->dialog);
+       gq_gtk_widget_destroy(gd->dialog);
        g_free(gd);
        g_free(ident_string);
        g_free(full_title);
@@ -534,7 +534,7 @@ static gboolean appimage_notification_close_cb(gpointer data)
 
        if (appimage_data->window)
                {
-               gtk_widget_destroy(appimage_data->window);
+               g_object_unref(appimage_data->window);
                }
 
        g_thread_pool_free(appimage_data->thread_pool, TRUE, TRUE);
index 6f60c99..719c0e1 100644 (file)
@@ -1972,7 +1972,7 @@ static void file_util_warn_op_in_progress(const gchar *title)
 
 static void file_util_details_dialog_close_cb(GtkWidget *, gpointer data)
 {
-       gtk_widget_destroy(GTK_WIDGET(data));
+       g_object_unref(GTK_WIDGET(data));
 
 }
 
index 6ab6aa4..2f7bd66 100644 (file)
@@ -161,7 +161,7 @@ static void vd_destroy_cb(GtkWidget *widget, gpointer data)
                {
                g_signal_handlers_disconnect_matched(G_OBJECT(vd->popup), G_SIGNAL_MATCH_DATA,
                                                     0, 0, nullptr, nullptr, vd);
-               gtk_widget_destroy(vd->popup);
+               g_object_unref(vd->popup);
                }
 
        switch (vd->type)
index 78ad98d..29245cc 100644 (file)
@@ -368,7 +368,7 @@ static void tip_show(ViewFile *vf)
 
 static void tip_hide(ViewFile *vf)
 {
-       if (VFICON(vf)->tip_window) gtk_widget_destroy(VFICON(vf)->tip_window);
+       if (VFICON(vf)->tip_window) g_object_unref(VFICON(vf)->tip_window);
        VFICON(vf)->tip_window = nullptr;
 }
 
index 80b5a91..91f8aeb 100644 (file)
@@ -828,7 +828,7 @@ static void vf_destroy_cb(GtkWidget *widget, gpointer data)
                {
                g_signal_handlers_disconnect_matched(G_OBJECT(vf->popup), G_SIGNAL_MATCH_DATA,
                                                     0, 0, nullptr, nullptr, vf);
-               gtk_widget_destroy(vf->popup);
+               g_object_unref(vf->popup);
                }
 
        if (vf->read_metadata_in_idle_id)