diff -r 7a98a5020c44 -r 6b255a0c4e3e plover-gtk/transactionhelper.c --- a/plover-gtk/transactionhelper.c Fri Jun 08 17:05:27 2018 +0100 +++ b/plover-gtk/transactionhelper.c Fri Mar 22 11:50:12 2019 +0000 @@ -57,6 +57,10 @@ static guint signals[N_SIGNALS]; +static PloverTransaction * + plover_transaction_helper_new_transaction(PloverTransactionHelper *helper, + GError **error); + static void plover_transaction_helper_finalize(PloverTransactionHelper *helper) { PloverTransactionHelperPrivate *priv; @@ -286,7 +290,23 @@ "SIRemoveExisting")); if (gtk_toggle_button_get_active(button)) { - transaction=plover_transaction_new_remove(NULL,&error); + transaction=plover_transaction_helper_new_transaction(helper,&error); + /* + * I think we want switch to the alternate installed set in the case of + * alternate_database_clashes, but not in the case of + * active_database_is_incompatible (see + * plover_transaction_helper_update_summary_page). + * Whether testing for helper->alternate_installed is sufficient I'm + * far from clear. + */ + if (helper->alternate_installed) + plover_transaction_set_installed(transaction, + helper->alternate_installed); + if (transaction && !plover_transaction_remove(transaction,NULL,&error)) + { + g_object_unref(transaction); + transaction=NULL; + } if (transaction) { save_transactions=helper->transactions;