Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package geeqie for openSUSE:Factory checked in at 2024-03-01 23:38:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/geeqie (Old) and /work/SRC/openSUSE:Factory/.geeqie.new.1770 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "geeqie" Fri Mar 1 23:38:06 2024 rev:33 rq:1153930 version:2.2 Changes: -------- --- /work/SRC/openSUSE:Factory/geeqie/geeqie.changes 2024-01-29 22:33:29.831177413 +0100 +++ /work/SRC/openSUSE:Factory/.geeqie.new.1770/geeqie.changes 2024-03-01 23:38:07.262917210 +0100 @@ -1,0 +2,9 @@ +Fri Mar 1 10:53:10 UTC 2024 - Michael Vetter <[email protected]> + +- boo#1220031: + * Fix crash when hiding files gh/BestImageViewer/geeqie#1248 + Add geeqie-2.2-fix-filelist-crash.patch + * Fix crash when renaming files gh/BestImageViewer/geeqie#1242 + Add geeqie-2.2-fix-rename-crash.patch + +------------------------------------------------------------------- New: ---- geeqie-2.2-fix-filelist-crash.patch geeqie-2.2-fix-rename-crash.patch BETA DEBUG BEGIN: New: * Fix crash when hiding files gh/BestImageViewer/geeqie#1248 Add geeqie-2.2-fix-filelist-crash.patch * Fix crash when renaming files gh/BestImageViewer/geeqie#1242 New: * Fix crash when renaming files gh/BestImageViewer/geeqie#1242 Add geeqie-2.2-fix-rename-crash.patch BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ geeqie.spec ++++++ --- /var/tmp/diff_new_pack.Lfnzbo/_old 2024-03-01 23:38:07.846938328 +0100 +++ /var/tmp/diff_new_pack.Lfnzbo/_new 2024-03-01 23:38:07.846938328 +0100 @@ -26,6 +26,10 @@ Source0: https://github.com/BestImageViewer/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.xz Source1: https://github.com/BestImageViewer/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.xz.asc Source2: geeqie.keyring +# PATCH-FIX-UPSTREAM - gh/BestImageViewer/geeqie#1248 +Patch0: geeqie-2.2-fix-filelist-crash.patch +# PATCH-FIX-UPSTREAM - gh/BestImageViewer/geeqie#1242 +Patch1: https://github.com/BestImageViewer/geeqie/commit/fef4012de70dc468b00c7d07549f7b447cf47f13.patch#/geeqie-2.2-fix-rename-crash.patch BuildRequires: c++_compiler BuildRequires: docbook_4 BuildRequires: doxygen ++++++ geeqie-2.2-fix-filelist-crash.patch ++++++ Based on: >From 439fc96a603c140926de30d2fa7f1b85e1e40905 Mon Sep 17 00:00:00 2001 From: Colin Clark <[email protected]> Date: Thu, 29 Feb 2024 10:05:11 +0000 Subject: [PATCH] Fix #1248: Crash when hiding file list https://github.com/BestImageViewer/geeqie/issues/1248 Fix problems resulting from 6d72bf GTK4: Reduce the use of gtk_widget_destroy() Index: geeqie-2.2/src/bar-exif.cc =================================================================== --- geeqie-2.2.orig/src/bar-exif.cc +++ geeqie-2.2/src/bar-exif.cc @@ -119,7 +119,10 @@ static void bar_pane_exif_setup_entry_bo gboolean horizontal = !ee->editable; gboolean editable = ee->editable; - if (ee->box) g_object_unref(ee->box); + if (ee->box) + { + gtk_container_remove(GTK_CONTAINER(gtk_widget_get_parent(ee->box)), ee->box); + } ee->box = horizontal ? gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0) : gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gq_gtk_container_add(GTK_WIDGET(ee->ebox), ee->box); @@ -600,7 +603,7 @@ static void bar_pane_exif_conf_dialog_cb static void bar_pane_exif_delete_entry_cb(GtkWidget *, gpointer data) { auto entry = static_cast<GtkWidget *>(data); - g_object_unref(entry); + gtk_container_remove(GTK_CONTAINER(gtk_widget_get_parent(entry)), entry); } #ifdef HAVE_GTK4 Index: geeqie-2.2/src/bar.cc =================================================================== --- geeqie-2.2.orig/src/bar.cc +++ geeqie-2.2/src/bar.cc @@ -30,6 +30,17 @@ #include "ui-menu.h" #include "ui-misc.h" + +namespace +{ + +void remove_child_from_parent(gpointer data) +{ + gtk_container_remove(GTK_CONTAINER(gtk_widget_get_parent(GTK_WIDGET(data))), GTK_WIDGET(data)); +} + +} + struct KnownPanes { PaneType type; @@ -275,7 +286,7 @@ static void height_spin_key_press_cb(Gtk { if ((keyval == GDK_KEY_Return || keyval == GDK_KEY_Escape)) { - g_object_unref(GTK_WIDGET(data)); + gq_gtk_widget_destroy(GTK_WIDGET(data)); } } @@ -339,7 +350,7 @@ static void bar_expander_height_cb(GtkWi static void bar_expander_delete_cb(GtkWidget *, gpointer data) { auto expander = static_cast<GtkWidget *>(data); - g_object_unref(expander); + gtk_container_remove(GTK_CONTAINER(gtk_widget_get_parent(expander)), expander); } static void bar_expander_add_cb(GtkWidget *widget, gpointer) @@ -585,7 +596,7 @@ void bar_clear(GtkWidget *bar) list = gtk_container_get_children(GTK_CONTAINER(bd->vbox)); - g_list_free_full(list, reinterpret_cast<GDestroyNotify>(g_object_unref)); + g_list_free_full(list, reinterpret_cast<GDestroyNotify>(remove_child_from_parent)); } void bar_write_config(GtkWidget *bar, GString *outstr, gint indent) Index: geeqie-2.2/src/collect-table.cc =================================================================== --- geeqie-2.2.orig/src/collect-table.cc +++ geeqie-2.2/src/collect-table.cc @@ -2642,7 +2642,7 @@ static void collection_table_destroy(Gtk { g_signal_handlers_disconnect_matched(G_OBJECT(ct->popup), G_SIGNAL_MATCH_DATA, 0, 0, nullptr, nullptr, ct); - g_object_unref(ct->popup); + gq_gtk_widget_destroy(ct->popup); } if (ct->sync_idle_id) g_source_remove(ct->sync_idle_id); Index: geeqie-2.2/src/image.cc =================================================================== --- geeqie-2.2.orig/src/image.cc +++ geeqie-2.2/src/image.cc @@ -2162,7 +2162,7 @@ void image_set_frame(ImageWindow *imd, g if (imd->frame) { gtk_container_remove(GTK_CONTAINER(imd->frame), imd->pr); - g_object_unref(imd->frame); + gtk_container_remove(GTK_CONTAINER(imd->widget), imd->frame); imd->frame = nullptr; } gq_gtk_box_pack_start(GTK_BOX(imd->widget), imd->pr, TRUE, TRUE, 0); Index: geeqie-2.2/src/pan-view/pan-view-filter.cc =================================================================== --- geeqie-2.2.orig/src/pan-view/pan-view-filter.cc +++ geeqie-2.2/src/pan-view/pan-view-filter.cc @@ -144,7 +144,7 @@ static void pan_filter_kw_button_cb(GtkB /** @todo (xsdg): Fix filter element pointed object memory leak. */ ui->filter_elements = g_list_delete_link(ui->filter_elements, cb_state->filter_element); - g_object_unref(GTK_WIDGET(widget)); + gtk_container_remove(GTK_CONTAINER(gtk_widget_get_parent(GTK_WIDGET(widget))), GTK_WIDGET(widget)); g_free(cb_state); pan_filter_status(pw, _("Removed keywordâ¦")); @@ -227,7 +227,7 @@ void pan_filter_toggle_cb(GtkWidget *but parent = gtk_widget_get_parent(ui->filter_button_arrow); - g_object_unref(ui->filter_button_arrow); + gtk_container_remove(GTK_CONTAINER(parent), 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); @@ -241,7 +241,7 @@ void pan_filter_toggle_cb(GtkWidget *but parent = gtk_widget_get_parent(ui->filter_button_arrow); - g_object_unref(ui->filter_button_arrow); + gtk_container_remove(GTK_CONTAINER(parent), 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: geeqie-2.2/src/pan-view/pan-view-search.cc =================================================================== --- geeqie-2.2.orig/src/pan-view/pan-view-search.cc +++ geeqie-2.2/src/pan-view/pan-view-search.cc @@ -432,7 +432,7 @@ void pan_search_toggle_cb(GtkWidget *but parent = gtk_widget_get_parent(ui->search_button_arrow); - g_object_unref(ui->search_button_arrow); + gtk_container_remove(GTK_CONTAINER(parent), 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); @@ -446,7 +446,7 @@ void pan_search_toggle_cb(GtkWidget *but parent = gtk_widget_get_parent(ui->search_button_arrow); - g_object_unref(ui->search_button_arrow); + gtk_container_remove(GTK_CONTAINER(parent), 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: geeqie-2.2/src/preferences.cc =================================================================== --- geeqie-2.2.orig/src/preferences.cc +++ geeqie-2.2/src/preferences.cc @@ -1477,7 +1477,7 @@ static void font_response_cb(GtkDialog * g_free(font); } - g_object_unref(dialog); + gq_gtk_widget_destroy(GTK_WIDGET(dialog)); } static void image_overlay_set_font_cb(GtkWidget *widget, gpointer) @@ -1522,7 +1522,7 @@ static void text_color_response_cb(GtkDi c_options->image_overlay.text_alpha = color.alpha * 255; } - g_object_unref(dialog); + gq_gtk_widget_destroy(GTK_WIDGET(dialog)); } static void image_overlay_set_text_color_cb(GtkWidget *widget, gpointer) Index: geeqie-2.2/src/ui-misc.cc =================================================================== --- geeqie-2.2.orig/src/ui-misc.cc +++ geeqie-2.2/src/ui-misc.cc @@ -806,7 +806,7 @@ static void date_selection_popup_hide(Da gtk_widget_hide(ds->window); - g_object_unref(ds->window); + gq_gtk_widget_destroy(ds->window); ds->window = nullptr; ds->calendar = nullptr; Index: geeqie-2.2/src/ui-utildlg.cc =================================================================== --- geeqie-2.2.orig/src/ui-utildlg.cc +++ geeqie-2.2/src/ui-utildlg.cc @@ -534,7 +534,7 @@ static gboolean appimage_notification_cl if (appimage_data->window) { - g_object_unref(appimage_data->window); + gq_gtk_widget_destroy(appimage_data->window); } g_thread_pool_free(appimage_data->thread_pool, TRUE, TRUE); Index: geeqie-2.2/src/utilops.cc =================================================================== --- geeqie-2.2.orig/src/utilops.cc +++ geeqie-2.2/src/utilops.cc @@ -1980,8 +1980,7 @@ static void file_util_warn_op_in_progres static void file_util_details_dialog_close_cb(GtkWidget *, gpointer data) { - g_object_unref(GTK_WIDGET(data)); - + gq_gtk_widget_destroy(GTK_WIDGET(data)); } static void file_util_details_dialog_destroy_cb(GtkWidget *widget, gpointer data) Index: geeqie-2.2/src/view-dir.cc =================================================================== --- geeqie-2.2.orig/src/view-dir.cc +++ geeqie-2.2/src/view-dir.cc @@ -130,7 +130,7 @@ static void vd_destroy_cb(GtkWidget *wid { g_signal_handlers_disconnect_matched(G_OBJECT(vd->popup), G_SIGNAL_MATCH_DATA, 0, 0, nullptr, nullptr, vd); - g_object_unref(vd->popup); + gq_gtk_widget_destroy(vd->popup); } switch (vd->type) Index: geeqie-2.2/src/view-file/view-file-icon.cc =================================================================== --- geeqie-2.2.orig/src/view-file/view-file-icon.cc +++ geeqie-2.2/src/view-file/view-file-icon.cc @@ -368,7 +368,7 @@ static void tip_show(ViewFile *vf) static void tip_hide(ViewFile *vf) { - if (VFICON(vf)->tip_window) g_object_unref(VFICON(vf)->tip_window); + if (VFICON(vf)->tip_window) gq_gtk_widget_destroy(VFICON(vf)->tip_window); VFICON(vf)->tip_window = nullptr; } Index: geeqie-2.2/src/view-file/view-file.cc =================================================================== --- geeqie-2.2.orig/src/view-file/view-file.cc +++ geeqie-2.2/src/view-file/view-file.cc @@ -828,7 +828,7 @@ static void vf_destroy_cb(GtkWidget *wid { g_signal_handlers_disconnect_matched(G_OBJECT(vf->popup), G_SIGNAL_MATCH_DATA, 0, 0, nullptr, nullptr, vf); - g_object_unref(vf->popup); + gq_gtk_widget_destroy(vf->popup); } if (vf->read_metadata_in_idle_id) ++++++ geeqie-2.2-fix-rename-crash.patch ++++++ >From fef4012de70dc468b00c7d07549f7b447cf47f13 Mon Sep 17 00:00:00 2001 From: Colin Clark <[email protected]> Date: Wed, 7 Feb 2024 16:20:11 +0000 Subject: [PATCH] Fix #1242: Renaming files results in a crash https://github.com/BestImageViewer/geeqie/issues/1242 Fix bug from GTK4: Reduce the use of gtk_widget_destroy() 6d72bf20cc --- src/ui-tree-edit.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui-tree-edit.cc b/src/ui-tree-edit.cc index 2921d0de..c63dcd40 100644 --- a/src/ui-tree-edit.cc +++ b/src/ui-tree-edit.cc @@ -38,7 +38,7 @@ static void tree_edit_close(TreeEditData *ted) gdk_keyboard_ungrab(GDK_CURRENT_TIME); gdk_pointer_ungrab(GDK_CURRENT_TIME); - g_object_unref(ted->window); + gq_gtk_widget_destroy(ted->window); g_free(ted->old_name); g_free(ted->new_name);
