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 { diff --git a/src/SourceList/SourceList.vala b/src/SourceList/SourceList.vala index c758f662c..300060865 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. * @@ -1052,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; @@ -1624,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); }); } } }