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);
}
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);
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)
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
if (!pkd) return;
g_free(pkd->pane.id);
- gtk_widget_destroy(pkd->widget);
+ g_object_unref(pkd->widget);
}
#pragma GCC diagnostic pop
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)
{
if ((keyval == GDK_KEY_Return || keyval == GDK_KEY_Escape))
{
- gtk_widget_destroy(GTK_WIDGET(data));
+ g_object_unref(GTK_WIDGET(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)
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)
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)
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;
}
{
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);
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);
#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) ;
#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)
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);
}
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;
}
{
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)
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));
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));
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);
{
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)
{
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);
{
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);
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;
}
{
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);
}
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);
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);
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);
/** @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…"));
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);
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);
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);
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);
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);
static void config_window_close_cb(GtkWidget *, gpointer)
{
- gtk_widget_destroy(configwindow);
+ gq_gtk_widget_destroy(configwindow);
configwindow = nullptr;
filter_store = nullptr;
}
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)
g_free(font);
}
- gtk_widget_destroy(GTK_WIDGET(dialog));
+ g_object_unref(dialog);
}
static void image_overlay_set_font_cb(GtkWidget *widget, gpointer)
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)
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)
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)
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)
g_free(fontname);
- gtk_widget_destroy(GTK_WIDGET(widget));
+ gq_gtk_widget_destroy(GTK_WIDGET(widget));
}
#pragma GCC diagnostic pop
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)
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;
"%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);
}
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;
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)
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)
{
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))
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)
gtk_widget_hide(ds->window);
- gtk_widget_destroy(ds->window);
+ g_object_unref(ds->window);
ds->window = nullptr;
ds->calendar = nullptr;
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);
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);
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);
static void file_util_details_dialog_close_cb(GtkWidget *, gpointer data)
{
- gtk_widget_destroy(GTK_WIDGET(data));
+ g_object_unref(GTK_WIDGET(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)
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;
}
{
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)