From 374a403e76107ad6696fa67eb9d0313776f47647 Mon Sep 17 00:00:00 2001 From: Conor Curran Date: Fri, 2 Sep 2011 10:10:47 +0100 Subject: final apt menuitem bugs fixes --- src/apt-transaction.c | 2 +- src/apt-watcher.c | 20 +++++++++++++------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/apt-transaction.c b/src/apt-transaction.c index be1c57b..cd9e131 100644 --- a/src/apt-transaction.c +++ b/src/apt-transaction.c @@ -213,7 +213,7 @@ apt_transaction_receive_signal (GDBusProxy * proxy, if (g_variant_is_of_type (role, G_VARIANT_TYPE_STRING) == TRUE){ gchar* current_role = NULL; g_variant_get (role, "s", ¤t_role); - g_debug ("Current transaction role = %s", current_role); + //g_debug ("Current transaction role = %s", current_role); if (g_strcmp0 (current_role, "role-commit-packages") == 0 || g_strcmp0 (current_role, "role-upgrade-system") == 0){ g_debug ("UPGRADE IN PROGRESS"); diff --git a/src/apt-watcher.c b/src/apt-watcher.c index f5c9d55..480e174 100644 --- a/src/apt-watcher.c +++ b/src/apt-watcher.c @@ -298,6 +298,11 @@ apt_watcher_transaction_state_update_cb (AptTransaction* trans, else if (state == FINISHED){ g_object_unref (G_OBJECT(self->current_transaction)); self->current_transaction = NULL; + + if (self->current_state == UPDATES_AVAILABLE){ + return; + } + if (self->reboot_query != 0){ g_source_remove (self->reboot_query); self->reboot_query = 0; @@ -359,8 +364,6 @@ apt_watcher_query_reboot_status (gpointer data) return FALSE; } -// TODO - Ask MVO about this. -// Signal is of type s not sas which is on d-feet. static void apt_watcher_signal_cb ( GDBusProxy* proxy, gchar* sender_name, gchar* signal_name, @@ -374,10 +377,13 @@ static void apt_watcher_signal_cb ( GDBusProxy* proxy, GVariant *value = g_variant_get_child_value (parameters, 0); if (g_strcmp0(signal_name, "ActiveTransactionsChanged") == 0){ - gchar* input = NULL; - g_variant_get(value, "s", & input); - if (g_str_has_prefix (input, "/org/debian/apt/transaction/") == TRUE){ - g_debug ("Active Transactions signal - input is null = %i", input == NULL); + gchar* current = NULL; + g_debug ("ActiveTransactionsChanged"); + + //gchar** queued = NULL; + g_variant_get(value, "s", ¤t); + if (g_str_has_prefix (current, "/org/debian/apt/transaction/") == TRUE){ + g_debug ("ActiveTransactionsChanged - current is %s", current); if (self->current_transaction != NULL) { @@ -385,7 +391,7 @@ static void apt_watcher_signal_cb ( GDBusProxy* proxy, self->current_transaction = NULL; } - self->current_transaction = apt_transaction_new (input, REAL); + self->current_transaction = apt_transaction_new (current, REAL); g_signal_connect (G_OBJECT(self->current_transaction), "state-update", G_CALLBACK(apt_watcher_transaction_state_update_cb), self); -- cgit v1.2.3