From ae172d0c1e39b3681fc63045eff007982b864ab5 Mon Sep 17 00:00:00 2001 From: Mike Dilger Date: Fri, 27 Sep 2024 10:52:52 +1200 Subject: [PATCH] Fix #840 --- gossip-bin/src/ui/dm_chat_list.rs | 12 +++++++++++- gossip-bin/src/ui/mod.rs | 3 +++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/gossip-bin/src/ui/dm_chat_list.rs b/gossip-bin/src/ui/dm_chat_list.rs index a6c3df23..676f3a3c 100644 --- a/gossip-bin/src/ui/dm_chat_list.rs +++ b/gossip-bin/src/ui/dm_chat_list.rs @@ -172,8 +172,18 @@ pub(super) fn update(app: &mut GossipUi, ctx: &Context, _frame: &mut eframe::Fra ctx, Page::Feed(FeedKind::DmChat(channeldata.dm_channel.clone())), ); - app.dm_draft_data.clear(); app.draft_needs_focus = true; + + // Maybe clear the draft, if we are going into a different channel than last + // time + if let Some(oldtarget) = &app.dm_draft_data_target { + if *oldtarget != channeldata.dm_channel { + app.dm_draft_data.clear(); + } + } else { + app.dm_draft_data.clear(); + } + app.dm_draft_data_target = Some(channeldata.dm_channel.clone()); } } }); diff --git a/gossip-bin/src/ui/mod.rs b/gossip-bin/src/ui/mod.rs index d7095426..09b53f71 100644 --- a/gossip-bin/src/ui/mod.rs +++ b/gossip-bin/src/ui/mod.rs @@ -483,6 +483,7 @@ struct GossipUi { unlock_needs_focus: bool, draft_data: DraftData, dm_draft_data: DraftData, + dm_draft_data_target: Option, // User entry: metadata editing_metadata: bool, @@ -733,6 +734,7 @@ impl GossipUi { unlock_needs_focus: true, draft_data: DraftData::default(), dm_draft_data: DraftData::default(), + dm_draft_data_target: None, editing_metadata: false, metadata: Metadata::new(), delegatee_tag_str: "".to_owned(), @@ -2219,6 +2221,7 @@ impl GossipUi { fn reset_draft(&mut self) { if let Page::Feed(FeedKind::DmChat(_)) = &self.page { self.dm_draft_data.clear(); + self.dm_draft_data_target = None; } else { self.draft_data.clear(); self.show_post_area = false;