From 85342ee2eb2aa3e6d7599c503d17c00d861bafcb Mon Sep 17 00:00:00 2001 From: fiaxh Date: Sat, 8 Oct 2022 13:19:03 +0200 Subject: [PATCH] Fix drag and drop uploading --- main/src/ui/conversation_view.vala | 6 ----- main/src/ui/conversation_view_controller.vala | 26 +++++++++---------- 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/main/src/ui/conversation_view.vala b/main/src/ui/conversation_view.vala index 6e07b0e8..7c93c4ff 100644 --- a/main/src/ui/conversation_view.vala +++ b/main/src/ui/conversation_view.vala @@ -55,12 +55,6 @@ public class ConversationView : Widget { } } - public override void dispose() { - // To prevent a warning when closing Dino - // "Can't set a target list on a widget until you've called gtk_drag_dest_set() to make the widget into a drag destination" -// Gtk.drag_dest_unset(this); - } - private void on_upper_notify() { print("on_upper_notify\n"); if (at_current_content) { diff --git a/main/src/ui/conversation_view_controller.vala b/main/src/ui/conversation_view_controller.vala index a2ac2655..50c0dcdb 100644 --- a/main/src/ui/conversation_view_controller.vala +++ b/main/src/ui/conversation_view_controller.vala @@ -154,20 +154,20 @@ public class ConversationViewController : Object { conversation_topic = null; } - private void update_file_upload_status() { - stream_interactor.get_module(FileManager.IDENTITY).is_upload_available.begin(conversation, (_, res) => { - bool upload_available = stream_interactor.get_module(FileManager.IDENTITY).is_upload_available.end(res); - chat_input_controller.set_file_upload_active(upload_available); - if (conversation.account.bare_jid.to_string().has_prefix("f")) { - if (drop_event_controller.widget == null) { - view.add_controller(drop_event_controller); - } - } else { - if (drop_event_controller.widget != null) { - view.remove_controller(drop_event_controller); - } + private async void update_file_upload_status() { + if (conversation == null) return; + + bool upload_available = yield stream_interactor.get_module(FileManager.IDENTITY).is_upload_available(conversation); + chat_input_controller.set_file_upload_active(upload_available); + if (upload_available && overlay_dialog == null) { + if (drop_event_controller.widget == null) { + view.add_controller(drop_event_controller); } - }); + } else { + if (drop_event_controller.widget != null) { + view.remove_controller(drop_event_controller); + } + } } private void update_conversation_display_name() {