aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConor Curran <conor.curran@canonical.com>2011-09-02 16:03:09 +0100
committerConor Curran <conor.curran@canonical.com>2011-09-02 16:03:09 +0100
commited66b087fda1b0c0dbb40f0ff8a29d5905b34a30 (patch)
treeaecf9799b9f9f09df2f766399ce1568ac402ad18
parentea01f7722081d1d29b6d80b708a22a60c3938bf9 (diff)
parent374a403e76107ad6696fa67eb9d0313776f47647 (diff)
downloadayatana-indicator-session-ed66b087fda1b0c0dbb40f0ff8a29d5905b34a30.tar.gz
ayatana-indicator-session-ed66b087fda1b0c0dbb40f0ff8a29d5905b34a30.tar.bz2
ayatana-indicator-session-ed66b087fda1b0c0dbb40f0ff8a29d5905b34a30.zip
apt menuitem should now finally be working properly0.3.4.2
-rw-r--r--src/apt-transaction.c2
-rw-r--r--src/apt-watcher.c20
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", &current_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", &current);
+ 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);