diff --git a/src/Core/FlatpakBackend.vala b/src/Core/FlatpakBackend.vala index 20e546530..69c41fc2c 100644 --- a/src/Core/FlatpakBackend.vala +++ b/src/Core/FlatpakBackend.vala @@ -93,6 +93,7 @@ public class AppCenterCore.FlatpakBackend : Object { var job = jobs.pop (); job_type = job.operation; working = true; + set_actions_enabled (working); if (remove_inhibit_timeout != 0) { Source.remove (remove_inhibit_timeout); @@ -157,6 +158,7 @@ public class AppCenterCore.FlatpakBackend : Object { } working = false; + set_actions_enabled (working); } return true; @@ -245,6 +247,12 @@ public class AppCenterCore.FlatpakBackend : Object { reload_appstream_pool (); } + private void set_actions_enabled (bool working) { + var app = Application.get_default (); + ((SimpleAction) app.lookup_action ("refresh")).set_enabled (!working && !Utils.is_running_in_guest_session ()); + ((SimpleAction) app.lookup_action ("repair")).set_enabled (!working); + } + private async void trigger_update_check () { try { yield refresh_cache (null); diff --git a/src/Core/UpdateManager.vala b/src/Core/UpdateManager.vala index 0a47ae665..4f08e1a8a 100644 --- a/src/Core/UpdateManager.vala +++ b/src/Core/UpdateManager.vala @@ -143,10 +143,7 @@ public class AppCenterCore.UpdateManager : Object { runtime_updates.latest_version = latest_version; runtime_updates.description = "%s\n%s\n".printf (GLib.Markup.printf_escaped (_("%s:"), latest_version), runtime_desc); - var runtime_updates_size = yield runtime_updates.get_download_size_including_deps (); - if (runtime_updates_size > 0) { - updates_liststore.insert_sorted (runtime_updates, compare_package_func); - } + updates_liststore.insert_sorted (runtime_updates, compare_package_func); } debug ("%u app updates found", updates_number); diff --git a/src/MainWindow.vala b/src/MainWindow.vala index f947482db..5cb7632c7 100644 --- a/src/MainWindow.vala +++ b/src/MainWindow.vala @@ -15,8 +15,6 @@ */ public class AppCenter.MainWindow : Gtk.ApplicationWindow { - public bool working { get; set; } - private Granite.Toast toast; private Granite.OverlayBar overlaybar; private Adw.NavigationView navigation_view; @@ -37,24 +35,6 @@ public class AppCenter.MainWindow : Gtk.ApplicationWindow { add_action (focus_search); app.set_accels_for_action ("win.search", {"f"}); - - unowned var backend = AppCenterCore.FlatpakBackend.get_default (); - backend.bind_property ("working", this, "working", GLib.BindingFlags.SYNC_CREATE); - backend.bind_property ("working", overlaybar, "active", GLib.BindingFlags.SYNC_CREATE); - - backend.notify ["job-type"].connect (() => { - update_overlaybar_label (backend.job_type); - }); - - notify["working"].connect (() => { - Idle.add (() => { - App.refresh_action.set_enabled (!working && !Utils.is_running_in_guest_session ()); - App.repair_action.set_enabled (!working); - return GLib.Source.REMOVE; - }); - }); - - update_overlaybar_label (backend.job_type); } construct { @@ -164,16 +144,26 @@ public class AppCenter.MainWindow : Gtk.ApplicationWindow { navigation_view.popped.connect (update_navigation); navigation_view.pushed.connect (update_navigation); + + unowned var backend = AppCenterCore.FlatpakBackend.get_default (); + backend.bind_property ("working", overlaybar, "active", SYNC_CREATE); + + backend.notify ["job-type"].connect (() => { + update_overlaybar_label (backend.job_type); + }); + + update_overlaybar_label (backend.job_type); } public override bool close_request () { installed_view.clear (); - if (working) { + unowned var backend = AppCenterCore.FlatpakBackend.get_default (); + if (backend.working) { hide (); - notify["working"].connect (() => { - if (!visible && !working) { + backend.notify["working"].connect (() => { + if (!visible && !backend.working) { destroy (); } });