diff --git a/app/flatpak-builtins-update.c b/app/flatpak-builtins-update.c index 22e7937d..5d13c2e1 100644 --- a/app/flatpak-builtins-update.c +++ b/app/flatpak-builtins-update.c @@ -230,6 +230,9 @@ flatpak_builtin_update (int argc, if (!flatpak_transaction_is_empty (transaction) && !flatpak_cli_transaction_run (transaction, cancellable, error)) return FALSE; + + if (flatpak_cli_transaction_was_aborted (transaction)) + return TRUE; } if (n_prefs == 0) diff --git a/app/flatpak-cli-transaction.c b/app/flatpak-cli-transaction.c index 489211d4..39ad7f1f 100644 --- a/app/flatpak-cli-transaction.c +++ b/app/flatpak-cli-transaction.c @@ -35,6 +35,7 @@ struct _FlatpakCliTransaction { gboolean disable_interaction; gboolean stop_on_first_error; gboolean is_user; + gboolean aborted; GError *first_operation_error; gboolean progress_initialized; @@ -403,11 +404,17 @@ flatpak_cli_transaction_run (FlatpakTransaction *transaction, /* If we got some weird error (i.e. not ABORTED because we chose to abort on an error, report that */ - if (!res && - !g_error_matches (local_error, FLATPAK_ERROR, FLATPAK_ERROR_ABORTED)) + if (!res) { - g_propagate_error (error, g_steal_pointer (&local_error)); - return FALSE; + if (g_error_matches (local_error, FLATPAK_ERROR, FLATPAK_ERROR_ABORTED)) + { + self->aborted = TRUE; + } + else + { + g_propagate_error (error, g_steal_pointer (&local_error)); + return FALSE; + } } if (self->first_operation_error) @@ -434,3 +441,11 @@ flatpak_cli_transaction_run (FlatpakTransaction *transaction, return TRUE; } + +gboolean +flatpak_cli_transaction_was_aborted (FlatpakTransaction *transaction) +{ + FlatpakCliTransaction *self = FLATPAK_CLI_TRANSACTION (transaction); + + return self->aborted; +} diff --git a/app/flatpak-cli-transaction.h b/app/flatpak-cli-transaction.h index f7c6ffae..07a7dbb4 100644 --- a/app/flatpak-cli-transaction.h +++ b/app/flatpak-cli-transaction.h @@ -37,6 +37,7 @@ gboolean flatpak_cli_transaction_add_install (FlatpakTransaction *self, const char *ref, const char **subpaths, GError **error); +gboolean flatpak_cli_transaction_was_aborted (FlatpakTransaction *transaction); gboolean flatpak_cli_transaction_run (FlatpakTransaction *transaction, GCancellable *cancellable,