diff options
| author | Xavier Del Campo Romero <xavi.dcr@tutanota.com> | 2023-10-05 17:12:40 +0200 |
|---|---|---|
| committer | Xavier Del Campo Romero <xavi.dcr@tutanota.com> | 2023-10-09 16:38:03 +0200 |
| commit | 1159a169b0296813ba6a80f973bacbedaf02f1ef (patch) | |
| tree | 109b7dafa10c7ab5d6d71bb7eb8fb32a388ea6e0 /libdino | |
| parent | 9214e31b98d69d2c8ad56f8634345aeb98b234cc (diff) | |
Inhibit suspend on file upload/download
Diffstat (limited to 'libdino')
| -rw-r--r-- | libdino/src/application.vala | 2 | ||||
| -rw-r--r-- | libdino/src/service/file_manager.vala | 4 |
2 files changed, 6 insertions, 0 deletions
diff --git a/libdino/src/application.vala b/libdino/src/application.vala index 048a88ff..1c0368f8 100644 --- a/libdino/src/application.vala +++ b/libdino/src/application.vala @@ -15,6 +15,8 @@ public interface Application : GLib.Application { public abstract StreamInteractor stream_interactor { get; set; } public abstract Plugins.Registry plugin_registry { get; set; } public abstract SearchPathGenerator? search_path_generator { get; set; } + public abstract uint inhibit_app(string reason); + public abstract void uninhibit_app(uint cookie); internal static string print_xmpp; diff --git a/libdino/src/service/file_manager.vala b/libdino/src/service/file_manager.vala index f5096df7..090c9595 100644 --- a/libdino/src/service/file_manager.vala +++ b/libdino/src/service/file_manager.vala @@ -250,6 +250,9 @@ public class FileManager : StreamInteractionModule, Object { OutputStream os = file.create(FileCreateFlags.REPLACE_DESTINATION); file_transfer.cancellable.reset(); + + uint inhibit_cookie = Application.get_default() + .inhibit_app("Ongoing file download"); uint8[] buffer = new uint8[1024]; ssize_t read; while ((read = yield input_stream.read_async(buffer, Priority.LOW, file_transfer.cancellable)) > 0) { @@ -259,6 +262,7 @@ public class FileManager : StreamInteractionModule, Object { buffer.length = 1024; } yield input_stream.close_async(Priority.LOW, file_transfer.cancellable); + Application.get_default().uninhibit_app(inhibit_cookie); yield os.close_async(Priority.LOW, file_transfer.cancellable); file_transfer.path = file.get_basename(); file_transfer.input_stream = yield file.read_async(); |
