diff --git a/build-aux/flatpak/io.github.diegoivanme.flowtime.json b/build-aux/flatpak/io.github.diegoivanme.flowtime.json index 2a0ccd7..db96738 100644 --- a/build-aux/flatpak/io.github.diegoivanme.flowtime.json +++ b/build-aux/flatpak/io.github.diegoivanme.flowtime.json @@ -1,7 +1,7 @@ { "app-id" : "io.github.diegoivanme.flowtime", "runtime" : "org.gnome.Platform", - "runtime-version" : "43", + "runtime-version" : "44", "sdk" : "org.gnome.Sdk", "command" : "flowtime", "sdk-extensions" : [ diff --git a/src/Services/Timer.vala b/src/Services/Timer.vala index b2f1f03..f775f64 100644 --- a/src/Services/Timer.vala +++ b/src/Services/Timer.vala @@ -1,6 +1,6 @@ /* Timer.vala * - * Copyright 2022 Diego Iván + * Copyright 2022-2023 Diego Iván * * SPDX-License-Identifier: GPL-3.0-or-later */ @@ -54,6 +54,9 @@ public class Flowtime.Services.Timer : Object { public void stop () { running = false; + if (timeout_id == null) { + return; + } Source.remove (timeout_id); } diff --git a/src/Widgets/StatsWindow.vala b/src/Widgets/StatsWindow.vala index 62e25d4..167698e 100644 --- a/src/Widgets/StatsWindow.vala +++ b/src/Widgets/StatsWindow.vala @@ -1,6 +1,6 @@ /* StatsWindow.vala * - * Copyright 2022 Diego Iván + * Copyright 2022-2023 Diego Iván * * SPDX-License-Identifier: GPL-3.0-or-later */ @@ -66,19 +66,20 @@ namespace Flowtime { [GtkCallback] private void on_save_button_clicked () { - var filechooser = new Gtk.FileChooserNative (null, - this, SAVE, - null, null - ); - filechooser.response.connect (on_filechooser_response); - filechooser.show (); + save_action.begin (); } - private void on_filechooser_response (Gtk.NativeDialog dialog, int response) - { - var filechooser = (Gtk.FileChooserNative) dialog; - if (response == Gtk.ResponseType.ACCEPT) { - save_as_csv.begin (filechooser.get_file ()); + private async void save_action () { + var file_dialog = new Gtk.FileDialog () { + modal = true + }; + + try { + File file = yield file_dialog.save (this, null); + yield save_as_csv (file); + } + catch (Error e) { + critical (e.message); } }