From 391c6c31974f8f699f775d47f33ee787f15efb18 Mon Sep 17 00:00:00 2001 From: Ryo Nakano Date: Wed, 5 Aug 2026 23:42:00 +0900 Subject: [PATCH 1/3] ExpandableItem: Do not overwrite editable which already set --- src/SourceList/SourceList.vala | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/SourceList/SourceList.vala b/src/SourceList/SourceList.vala index c758f662c..1881de684 100644 --- a/src/SourceList/SourceList.vala +++ b/src/SourceList/SourceList.vala @@ -416,10 +416,6 @@ public class Mail.SourceList : Gtk.ScrolledWindow { base (name); } - construct { - editable = false; - } - /** * Adds an item. * From 04ea6da2bb197e04b8911011c6bce81e5bff86c5 Mon Sep 17 00:00:00 2001 From: Ryo Nakano Date: Wed, 5 Aug 2026 23:15:39 +0900 Subject: [PATCH 2/3] SourceList: Fix double-click does not trigger rename Fixes the following warning: ** (io.elementary.mail:9075): CRITICAL **: 23:15:29.989: mail_source_list_tree_start_editing_item: assertion 'item != NULL' failed --- src/SourceList/SourceList.vala | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/SourceList/SourceList.vala b/src/SourceList/SourceList.vala index 1881de684..300060865 100644 --- a/src/SourceList/SourceList.vala +++ b/src/SourceList/SourceList.vala @@ -1048,6 +1048,7 @@ public class Mail.SourceList : Gtk.ScrolledWindow { private Item? selected; private unowned Item? edited; + private Item? activated; private Gtk.Entry? editable_entry; private Gtk.CellRendererText text_cell; @@ -1620,8 +1621,11 @@ public class Mail.SourceList : Gtk.ScrolledWindow { && item.selectable && over_cell (column, path, text_cell, cell_x) ) { + // Keep back reference of item so that it can be accessed in Idle.add_once() + // where item is already freed + activated = item; // Start editing after native event handlers finished else fails - Idle.add_once (() => { start_editing_item (item); }); + Idle.add_once (() => { start_editing_item (activated); }); } } } From 67bf4ef435cdee368eea0e62e6ae6000b6a5b511 Mon Sep 17 00:00:00 2001 From: Ryo Nakano Date: Wed, 5 Aug 2026 23:32:40 +0900 Subject: [PATCH 3/3] FolderItemModel: Fix coredump when deciding new name Mails coredumps when finishing rename with the following place: Thread 1 "io.elementary.m" received signal SIGSEGV, Segmentation fault. mail_folder_item_model_rename_co (_data_=0x5baf932ed1d0) at ../src/FolderList/FolderItemModel.vala:184 184 yield offlinestore.rename_folder (folder_info.full_name, new_full_name, GLib.Priority.DEFAULT, cancellable); This is because folder_info points to null when the new name is not yet taken when offlinestore.folder_info() is called just before here. So, rename folder_info to new_folder_info so that folder_info as a property of FolderItemModel class is not sealed unintentionally. --- src/FolderList/FolderItemModel.vala | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/FolderList/FolderItemModel.vala b/src/FolderList/FolderItemModel.vala index 0d765e25a..8a4b0cccb 100644 --- a/src/FolderList/FolderItemModel.vala +++ b/src/FolderList/FolderItemModel.vala @@ -157,14 +157,14 @@ public class Mail.FolderItemModel : Mail.SourceList.ExpandableItem { var offlinestore = (Camel.Store)account.service; - Camel.FolderInfo? folder_info = null; + Camel.FolderInfo? new_folder_info = null; try { - folder_info = yield offlinestore.get_folder_info (new_full_name, FAST, GLib.Priority.DEFAULT, cancellable); + new_folder_info = yield offlinestore.get_folder_info (new_full_name, FAST, GLib.Priority.DEFAULT, cancellable); } catch (Error e) { warning (e.message); } - if (null != folder_info) { + if (new_folder_info != null) { if (name == old_name) { notify["name"].connect (cancel_rename); } else {