diff options
-rw-r--r-- | ChangeLog | 20 | ||||
-rwxr-xr-x | configure | 20 | ||||
-rw-r--r-- | configure.ac | 4 | ||||
-rw-r--r-- | debian/changelog | 7 | ||||
-rw-r--r-- | docs/reference/libappindicator-docs.sgml | 2 | ||||
-rw-r--r-- | docs/reference/version.xml | 2 | ||||
-rw-r--r-- | src/application-service-appstore.c | 20 |
7 files changed, 60 insertions, 15 deletions
@@ -1,5 +1,25 @@ # Generated by Makefile. Do not edit. +2010-09-09 Ted Gould <ted@gould.cx> + + Handle double registration of indicators. + +2010-09-07 Ted Gould <ted@gould.cx> + + Check for duplicate additions of applications and just rerequest properties. + +2010-09-07 Ted Gould <ted@gould.cx> + + Extra debugging info + +2010-09-07 Ted Gould <ted@gould.cx> + + Logging status change + +2010-08-26 Ted Gould <ted@gould.cx> + + 0.2.6 + 2010-08-25 Ted Gould <ted@gould.cx> Ordering i18n and keyboard indicators @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.67 for indicator-application 0.2.6. +# Generated by GNU Autoconf 2.67 for indicator-application 0.2.7. # # Report bugs to <ted@canonical.com>. # @@ -703,8 +703,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='indicator-application' PACKAGE_TARNAME='indicator-application' -PACKAGE_VERSION='0.2.6' -PACKAGE_STRING='indicator-application 0.2.6' +PACKAGE_VERSION='0.2.7' +PACKAGE_STRING='indicator-application 0.2.7' PACKAGE_BUGREPORT='ted@canonical.com' PACKAGE_URL='' @@ -1510,7 +1510,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures indicator-application 0.2.6 to adapt to many kinds of systems. +\`configure' configures indicator-application 0.2.7 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1581,7 +1581,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of indicator-application 0.2.6:";; + short | recursive ) echo "Configuration of indicator-application 0.2.7:";; esac cat <<\_ACEOF @@ -1718,7 +1718,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -indicator-application configure 0.2.6 +indicator-application configure 0.2.7 generated by GNU Autoconf 2.67 Copyright (C) 2010 Free Software Foundation, Inc. @@ -1998,7 +1998,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by indicator-application $as_me 0.2.6, which was +It was created by indicator-application $as_me 0.2.7, which was generated by GNU Autoconf 2.67. Invocation command line was $ $0 $@ @@ -2819,7 +2819,7 @@ fi # Define the identity of the package. PACKAGE=indicator-application - VERSION=0.2.6 + VERSION=0.2.7 cat >>confdefs.h <<_ACEOF @@ -13695,7 +13695,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by indicator-application $as_me 0.2.6, which was +This file was extended by indicator-application $as_me 0.2.7, which was generated by GNU Autoconf 2.67. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -13761,7 +13761,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -indicator-application config.status 0.2.6 +indicator-application config.status 0.2.7 configured by $0, generated by GNU Autoconf 2.67, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 3f77cca..ebfc58f 100644 --- a/configure.ac +++ b/configure.ac @@ -1,11 +1,11 @@ -AC_INIT(indicator-application, 0.2.6, ted@canonical.com) +AC_INIT(indicator-application, 0.2.7, ted@canonical.com) AC_COPYRIGHT([Copyright 2009, 2010 Canonical]) AC_PREREQ(2.53) AM_CONFIG_HEADER(config.h) -AM_INIT_AUTOMAKE(indicator-application, 0.2.6) +AM_INIT_AUTOMAKE(indicator-application, 0.2.7) AM_MAINTAINER_MODE diff --git a/debian/changelog b/debian/changelog index 471b60d..5b6c2ac 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +indicator-application (0.2.7-0ubuntu1~ppa1) UNRELEASED; urgency=low + + * New upstream release. + * Handle double registration of indicators (LP: #621838) + + -- Ted Gould <ted@ubuntu.com> Thu, 09 Sep 2010 12:54:13 -0500 + indicator-application (0.2.6-0ubuntu1) maverick; urgency=low * New upstream release. diff --git a/docs/reference/libappindicator-docs.sgml b/docs/reference/libappindicator-docs.sgml index 383b4ac..0182b41 100644 --- a/docs/reference/libappindicator-docs.sgml +++ b/docs/reference/libappindicator-docs.sgml @@ -8,7 +8,7 @@ <bookinfo> <title>libappindicator Reference Manual</title> <releaseinfo> - for libappindicator 0.2.6 + for libappindicator 0.2.7 </releaseinfo> </bookinfo> diff --git a/docs/reference/version.xml b/docs/reference/version.xml index 53a75d6..b003284 100644 --- a/docs/reference/version.xml +++ b/docs/reference/version.xml @@ -1 +1 @@ -0.2.6 +0.2.7 diff --git a/src/application-service-appstore.c b/src/application-service-appstore.c index d5f9a81..7096382 100644 --- a/src/application-service-appstore.c +++ b/src/application-service-appstore.c @@ -72,6 +72,8 @@ typedef enum { VISIBLE_STATE_SHOWN } visible_state_t; +#define STATE2STRING(x) ((x) == VISIBLE_STATE_HIDDEN ? "hidden" : "visible") + typedef struct _Approver Approver; struct _Approver { DBusGProxy * proxy; @@ -129,6 +131,7 @@ static AppIndicatorCategory string_to_cat(const gchar * cat_string); static void approver_free (gpointer papprover, gpointer user_data); static void check_with_new_approver (gpointer papp, gpointer papprove); static void check_with_old_approver (gpointer papprove, gpointer papp); +static Application * find_application (ApplicationServiceAppstore * appstore, const gchar * address, const gchar * object); G_DEFINE_TYPE (ApplicationServiceAppstore, application_service_appstore, G_TYPE_OBJECT); @@ -485,6 +488,7 @@ get_position (Application * app) { } if (lapp == NULL) { + g_warning("Unable to find position for app '%s'", app->id); return -1; } @@ -497,6 +501,7 @@ static void application_free (Application * app) { if (app == NULL) return; + g_debug("Application free '%s'", app->id); /* Handle the case where this could be called by unref'ing one of the proxy objects. */ @@ -554,6 +559,7 @@ static void application_removed_cb (DBusGProxy * proxy, gpointer userdata) { Application * app = (Application *)userdata; + g_debug("Application proxy destroyed '%s'", app->id); /* Remove from the panel */ app->status = APP_INDICATOR_STATUS_PASSIVE; @@ -600,6 +606,8 @@ apply_status (Application * app) return; } + g_debug("Changing app '%s' state from %s to %s", app->id, STATE2STRING(app->visible_state), STATE2STRING(goal_state)); + /* This means we're going off line */ if (goal_state == VISIBLE_STATE_HIDDEN) { gint position = get_position(app); @@ -848,10 +856,20 @@ application_service_appstore_application_add (ApplicationServiceAppstore * appst g_return_if_fail(dbus_name != NULL && dbus_name[0] != '\0'); g_return_if_fail(dbus_object != NULL && dbus_object[0] != '\0'); ApplicationServiceAppstorePrivate * priv = appstore->priv; + Application * app = find_application(appstore, dbus_name, dbus_object); + + if (app != NULL) { + g_warning("Application already exists! Rerequesting properties."); + org_freedesktop_DBus_Properties_get_all_async(app->prop_proxy, + NOTIFICATION_ITEM_DBUS_IFACE, + get_all_properties_cb, + app); + return; + } /* Build the application entry. This will be carried along until we're sure we've got everything. */ - Application * app = g_new0(Application, 1); + app = g_new0(Application, 1); app->validated = FALSE; app->dbus_name = g_strdup(dbus_name); |