From f44cbe02c17df1f02ad49c63cd784fec0ea02d85 Mon Sep 17 00:00:00 2001 From: fiaxh Date: Sat, 14 May 2022 14:45:59 +0200 Subject: Improve Gtk4 port --- main/src/ui/file_send_overlay.vala | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) (limited to 'main/src/ui/file_send_overlay.vala') diff --git a/main/src/ui/file_send_overlay.vala b/main/src/ui/file_send_overlay.vala index ceb78818..11bd9a11 100644 --- a/main/src/ui/file_send_overlay.vala +++ b/main/src/ui/file_send_overlay.vala @@ -28,14 +28,11 @@ public class FileSendOverlay { info_label = (Label) builder.get_object("info_label"); close_button.clicked.connect(() => { - main_box.unparent(); - main_box.destroy(); + do_close(); }); send_button.clicked.connect(() => { send_file(); - this.close(); - main_box.unparent(); - main_box.destroy(); + do_close(); }); load_file_widget.begin(file, file_info); @@ -48,12 +45,14 @@ public class FileSendOverlay { } }); -// this.key_release_event.connect((event) => { -// if (event.keyval == Gdk.Key.Escape) { -// this.destroy(); -// } -// return false; -// }); + var key_events = new EventControllerKey(); + key_events.key_pressed.connect((keyval) => { + if (keyval == Gdk.Key.Escape) { + do_close(); + } + return false; + }); + this.main_box.add_controller(key_events); } private async void load_file_widget(File file, FileInfo file_info) { @@ -72,7 +71,7 @@ public class FileSendOverlay { Widget? widget = null; if (is_image) { - FileImageWidget image_widget = new FileImageWidget() { visible=true }; + FileImageWidget image_widget = new FileImageWidget(); try { yield image_widget.load_from_file(file, file_name); widget = image_widget; @@ -80,7 +79,7 @@ public class FileSendOverlay { } if (widget == null) { - FileDefaultWidget default_widget = new FileDefaultWidget() { visible=true }; + FileDefaultWidget default_widget = new FileDefaultWidget(); default_widget.name_label.label = file_name; default_widget.update_file_info(mime_type, FileTransfer.State.COMPLETE, (long)file_info.get_size()); widget = default_widget; @@ -96,6 +95,12 @@ public class FileSendOverlay { can_send = false; } + private void do_close() { + this.close(); + main_box.unparent(); + main_box.destroy(); + } + public Widget get_widget() { return main_box; } -- cgit v1.2.3-54-g00ecf