diff --git a/src/session_view/room_history/message_toolbar/mod.blp b/src/session_view/room_history/message_toolbar/mod.blp index 1a6edcd1..30381892 100644 --- a/src/session_view/room_history/message_toolbar/mod.blp +++ b/src/session_view/room_history/message_toolbar/mod.blp @@ -83,7 +83,7 @@ template $MessageToolbar: Adw.Bin { "toolbar", ] - Gtk.Button { + Gtk.Button attach_button { valign: end; icon-name: "attachment-symbolic"; tooltip-text: _("Send a File"); diff --git a/src/session_view/room_history/message_toolbar/mod.rs b/src/session_view/room_history/message_toolbar/mod.rs index 05e7a5fa..9be06e89 100644 --- a/src/session_view/room_history/message_toolbar/mod.rs +++ b/src/session_view/room_history/message_toolbar/mod.rs @@ -106,6 +106,8 @@ mod imp { #[template_child] pub(super) message_entry: TemplateChild, #[template_child] + attach_button: TemplateChild, + #[template_child] send_button: TemplateChild, #[template_child] related_event_header: TemplateChild, @@ -544,6 +546,7 @@ mod imp { self.related_event_content .update_for_related_event(&msgtype, message_event, &sender); self.related_event_content.set_visible(true); + self.enable_sending_non_text_messages(false); } /// Update the displayed related event for the given edit. @@ -552,14 +555,29 @@ mod imp { let label = pgettext("room-history", "Edit"); self.related_event_header .set_label_and_widgets::(label, vec![]); - self.related_event_content.set_visible(false); + self.enable_sending_non_text_messages(false); + } + + /// Disable sending any messages but a text one. + fn enable_sending_non_text_messages(&self, enable: bool) { + if enable { + self.attach_button.set_sensitive(true); + let location = Location::new(); + self.obj() + .action_set_enabled("message-toolbar.send-location", location.is_available()); + } else { + self.attach_button.set_sensitive(false); + self.obj() + .action_set_enabled("message-toolbar.send-location", false); + } } /// Clear the related event. #[template_callback] fn clear_related_event(&self) { self.current_composer_state().set_related_to(None); + self.enable_sending_non_text_messages(true); } /// Add a mention of the given member to the message composer.