diff options
-rw-r--r-- | configure.ac | 8 | ||||
-rw-r--r-- | debian/changelog | 9 | ||||
-rw-r--r-- | src/Makefile.am | 16 | ||||
-rw-r--r-- | src/application-service-appstore.c | 6 | ||||
-rw-r--r-- | src/indicator-application.c | 26 | ||||
-rw-r--r-- | src/libappindicator/app-indicator-enum-types.gen.c.in (renamed from src/libappindicator/app-indicator-enum-types.c.in) | 0 | ||||
-rw-r--r-- | src/libappindicator/app-indicator.c | 20 | ||||
-rw-r--r-- | tests/Makefile.am | 5 | ||||
-rw-r--r-- | tests/run-xvfb.sh | 7 | ||||
-rw-r--r-- | tests/test-defines.h | 4 | ||||
-rw-r--r-- | tests/test-libappindicator-fallback-item.c | 2 |
11 files changed, 78 insertions, 25 deletions
diff --git a/configure.ac b/configure.ac index 5549bd4..07bff83 100644 --- a/configure.ac +++ b/configure.ac @@ -1,11 +1,11 @@ -AC_INIT(indicator-application, 0.0.10, ted@canonical.com) +AC_INIT(indicator-application, 0.0.11, ted@canonical.com) AC_COPYRIGHT([Copyright 2009, 2010 Canonical]) AC_PREREQ(2.53) AM_CONFIG_HEADER(config.h) -AM_INIT_AUTOMAKE(indicator-application, 0.0.10) +AM_INIT_AUTOMAKE(indicator-application, 0.0.11) AM_MAINTAINER_MODE @@ -39,7 +39,7 @@ AC_CONFIG_MACRO_DIR(m4) GTK_REQUIRED_VERSION=2.12 INDICATOR_REQUIRED_VERSION=0.3.1 -DBUSMENUGTK_REQUIRED_VERSION=0.1.1 +DBUSMENUGTK_REQUIRED_VERSION=0.2.2 JSON_GLIB_REQUIRED_VERSION=0.7.6 PKG_CHECK_MODULES(INDICATOR, gtk+-2.0 >= $GTK_REQUIRED_VERSION @@ -105,7 +105,7 @@ AC_SUBST(GAPI_CODEGEN) AC_PATH_PROG(GAPI_FIXUP, gapi2-fixup, no) AC_SUBST(GAPI_FIXUP) -PKG_CHECK_MODULES(NUNIT, nunit-2.4 >= 2.4.7) +PKG_CHECK_MODULES(NUNIT, nunit >= 2.4.7) AC_SUBST(NUNIT_LIBS) ########################### diff --git a/debian/changelog b/debian/changelog index c8c5512..4498a47 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,12 @@ +indicator-application (0.0.11-0ubuntu1~ppa1) UNRELEASED; urgency=low + + * Upstream release 0.0.11 + * Interoperability Fixes + * Adding in XVFB support for tests + * Adding support for icons with the '-panel' suffix + + -- Ted Gould <ted@ubuntu.com> Thu, 04 Feb 2010 16:44:15 -0800 + indicator-application (0.0.10-0ubuntu1~ppa1) karmic; urgency=low * Upstream release 0.0.10 diff --git a/src/Makefile.am b/src/Makefile.am index 38e6dd9..efae713 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -63,9 +63,21 @@ pkgconfig_DATA = libappindicator/appindicator-0.1.pc pkgconfigdir = $(libdir)/pkgconfig glib_enum_h = libappindicator/app-indicator-enum-types.h -glib_enum_c = libappindicator/app-indicator-enum-types.c +glib_enum_c = libappindicator/app-indicator-enum-types.gen.c glib_enum_headers = $(libappindicator_headers) +libappindicator/app-indicator-enum-types.c: libappindicator/app-indicator-enum-types.gen.c + sed -e "s|\"passive\"|\"Passive\"|" \ + -e "s|\"active\"|\"Active\"|" \ + -e "s|\"attention\"|\"NeedsAttention\"|" \ + -e "s|\"application-status\"|\"ApplicationStatus\"|" \ + -e "s|\"communications\"|\"Communications\"|" \ + -e "s|\"system-services\"|\"SystemServices\"|" \ + -e "s|\"hardware\"|\"Hardware\"|" \ + -e "s|\"other\"|\"Other\"|" \ + $< > $@ +DISTCLEANFILES += libappindicator/app-indicator-enum-types.c + lib_LTLIBRARIES = \ libappindicator.la @@ -80,7 +92,7 @@ libappindicatorinclude_HEADERS = \ libappindicator_la_SOURCES = \ $(libappindicator_headers) \ - $(glib_enum_c) \ + libappindicator/app-indicator-enum-types.c \ notification-watcher-client.h \ notification-item-server.h \ libappindicator/app-indicator.c diff --git a/src/application-service-appstore.c b/src/application-service-appstore.c index 5b0cc15..70fab18 100644 --- a/src/application-service-appstore.c +++ b/src/application-service-appstore.c @@ -55,9 +55,9 @@ struct _ApplicationServiceAppstorePrivate { AppLruFile * lrufile; }; -#define APP_STATUS_PASSIVE_STR "passive" -#define APP_STATUS_ACTIVE_STR "active" -#define APP_STATUS_ATTENTION_STR "attention" +#define APP_STATUS_PASSIVE_STR "Passive" +#define APP_STATUS_ACTIVE_STR "Active" +#define APP_STATUS_ATTENTION_STR "NeedsAttention" typedef enum _ApplicationStatus ApplicationStatus; enum _ApplicationStatus { diff --git a/src/indicator-application.c b/src/indicator-application.c index 3ef5688..6c053a9 100644 --- a/src/indicator-application.c +++ b/src/indicator-application.c @@ -41,6 +41,8 @@ with this program. If not, see <http://www.gnu.org/licenses/>. #include "application-service-client.h" #include "application-service-marshal.h" +#define PANEL_ICON_SUFFIX "panel" + #define INDICATOR_APPLICATION_TYPE (indicator_application_get_type ()) #define INDICATOR_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), INDICATOR_APPLICATION_TYPE, IndicatorApplication)) #define INDICATOR_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), INDICATOR_APPLICATION_TYPE, IndicatorApplicationClass)) @@ -325,7 +327,17 @@ application_added (DBusGProxy * proxy, const gchar * iconname, gint position, co theme_dir_ref(application, icon_path); } - app->entry.image = GTK_IMAGE(gtk_image_new_from_icon_name(iconname, GTK_ICON_SIZE_MENU)); + /* We make a long name using the suffix, and if that + icon is available we want to use it. Otherwise we'll + just use the name we were given. */ + gchar * longname = g_strdup_printf("%s-%s", iconname, PANEL_ICON_SUFFIX); + if (gtk_icon_theme_has_icon(gtk_icon_theme_get_default(), longname)) { + app->entry.image = GTK_IMAGE(gtk_image_new_from_icon_name(longname, GTK_ICON_SIZE_MENU)); + } else { + app->entry.image = GTK_IMAGE(gtk_image_new_from_icon_name(iconname, GTK_ICON_SIZE_MENU)); + } + g_free(longname); + app->entry.label = NULL; app->entry.menu = GTK_MENU(dbusmenu_gtkmenu_new((gchar *)dbusaddress, (gchar *)dbusobject)); @@ -390,7 +402,17 @@ application_icon_changed (DBusGProxy * proxy, gint position, const gchar * iconn return; } - gtk_image_set_from_icon_name(app->entry.image, iconname, GTK_ICON_SIZE_MENU); + /* We make a long name using the suffix, and if that + icon is available we want to use it. Otherwise we'll + just use the name we were given. */ + gchar * longname = g_strdup_printf("%s-%s", iconname, PANEL_ICON_SUFFIX); + if (gtk_icon_theme_has_icon(gtk_icon_theme_get_default(), longname)) { + gtk_image_set_from_icon_name(app->entry.image, longname, GTK_ICON_SIZE_MENU); + } else { + gtk_image_set_from_icon_name(app->entry.image, iconname, GTK_ICON_SIZE_MENU); + } + g_free(longname); + return; } diff --git a/src/libappindicator/app-indicator-enum-types.c.in b/src/libappindicator/app-indicator-enum-types.gen.c.in index 449f3fc..449f3fc 100644 --- a/src/libappindicator/app-indicator-enum-types.c.in +++ b/src/libappindicator/app-indicator-enum-types.gen.c.in diff --git a/src/libappindicator/app-indicator.c b/src/libappindicator/app-indicator.c index b0f721e..908684f 100644 --- a/src/libappindicator/app-indicator.c +++ b/src/libappindicator/app-indicator.c @@ -977,7 +977,7 @@ app_indicator_set_icon (AppIndicator *self, const gchar *icon_name) } static void -activate_menuitem (DbusmenuMenuitem *mi, gpointer user_data) +activate_menuitem (DbusmenuMenuitem *mi, guint timestamp, gpointer user_data) { GtkWidget *widget = (GtkWidget *)user_data; @@ -987,9 +987,9 @@ activate_menuitem (DbusmenuMenuitem *mi, gpointer user_data) static void widget_toggled (GtkWidget *widget, DbusmenuMenuitem *mi) { - dbusmenu_menuitem_property_set (mi, - DBUSMENU_MENUITEM_PROP_TOGGLE_CHECKED, - gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)) ? DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED : DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED); + dbusmenu_menuitem_property_set_int (mi, + DBUSMENU_MENUITEM_PROP_TOGGLE_STATE, + gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)) ? DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED : DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED); } static void @@ -1014,7 +1014,7 @@ update_icon_name (DbusmenuMenuitem *menuitem, return; dbusmenu_menuitem_property_set (menuitem, - DBUSMENU_MENUITEM_PROP_ICON, + DBUSMENU_MENUITEM_PROP_ICON_NAME, image->data.name.icon_name); } @@ -1031,7 +1031,7 @@ update_stock_item (DbusmenuMenuitem *menuitem, gtk_stock_lookup (image->data.stock.stock_id, &stock); dbusmenu_menuitem_property_set (menuitem, - DBUSMENU_MENUITEM_PROP_ICON, + DBUSMENU_MENUITEM_PROP_ICON_NAME, image->data.stock.stock_id); if (stock.label != NULL) @@ -1074,7 +1074,7 @@ widget_notify_cb (GtkWidget *widget, if (pspec->name == g_intern_static_string ("sensitive")) { dbusmenu_menuitem_property_set_bool (child, - DBUSMENU_MENUITEM_PROP_SENSITIVE, + DBUSMENU_MENUITEM_PROP_ENABLED, GTK_WIDGET_IS_SENSITIVE (widget)); } else if (pspec->name == g_intern_static_string ("label")) @@ -1121,9 +1121,9 @@ container_iterate (GtkWidget *widget, label_set = TRUE; - dbusmenu_menuitem_property_set (child, - DBUSMENU_MENUITEM_PROP_TOGGLE_CHECKED, - gtk_check_menu_item_get_active (check) ? DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED : DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED); + dbusmenu_menuitem_property_set_int (child, + DBUSMENU_MENUITEM_PROP_TOGGLE_STATE, + gtk_check_menu_item_get_active (check) ? DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED : DBUSMENU_MENUITEM_TOGGLE_STATE_UNCHECKED); g_signal_connect (widget, "toggled", diff --git a/tests/Makefile.am b/tests/Makefile.am index c94ebdd..327c8cc 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -10,6 +10,8 @@ check_PROGRAMS = \ TESTS = DISTCLEANFILES = $(TESTS) +EXTRA_DIST = run-xvfb.sh + ######################################### ## test-libappindicator ######################################### @@ -89,7 +91,8 @@ test_libappindicator_fallback_item_LDADD = \ $(top_builddir)/src/libappindicator.la test-libappindicator-fallback: test-libappindicator-fallback-watcher test-libappindicator-fallback-item Makefile.am - @echo "#!/bin/sh" > $@ + @echo "#!/bin/bash" > $@ + @echo . $(srcdir)/run-xvfb.sh >> $@ @echo $(DBUS_RUNNER) --task ./test-libappindicator-fallback-watcher --task-name Watcher --ignore-return --task ./test-libappindicator-fallback-item --task-name Item >> $@ @chmod +x $@ diff --git a/tests/run-xvfb.sh b/tests/run-xvfb.sh new file mode 100644 index 0000000..3622dbf --- /dev/null +++ b/tests/run-xvfb.sh @@ -0,0 +1,7 @@ +if [ "$DISPLAY" == "" ]; then +Xvfb -ac -noreset -screen 0 800x600x16 -help 2>/dev/null 1>&2 +XID=`for id in 101 102 103 104 105 106 107 197 199 211 223 227 293 307 308 309 310 311 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 4703 4721 4723 4729 4733 4751 9973 9974 9975 9976 9977 9978 9979 9980 9981 9982 9983 9984 9985 9986 9987 9988 9989 9990 9991 9992 9993 9994 9995 9996 9997 9998 9999 ; do test -e /tmp/.X$id-lock || { echo $id; exit 0; }; done; exit 1` +{ Xvfb -ac -noreset -screen 0 800x600x16 :$XID -screen 0 800x600x16 -nolisten tcp -auth /dev/null >/dev/null 2>&1 & trap "kill -15 $! " 0 HUP INT QUIT TRAP USR1 PIPE TERM ; } || { echo "Gtk+Tests:ERROR: Failed to start Xvfb environment for X11 target tests."; exit 1; } +DISPLAY=:$XID +export DISPLAY +fi diff --git a/tests/test-defines.h b/tests/test-defines.h index 3b75c87..2baf728 100644 --- a/tests/test-defines.h +++ b/tests/test-defines.h @@ -23,8 +23,8 @@ with this program. If not, see <http://www.gnu.org/licenses/>. #define TEST_ICON_NAME "my-icon-name" #define TEST_ATTENTION_ICON_NAME "my-attention-icon-name" #define TEST_STATE APP_INDICATOR_STATUS_ACTIVE -#define TEST_STATE_S "active" +#define TEST_STATE_S "Active" #define TEST_CATEGORY APP_INDICATOR_CATEGORY_APPLICATION_STATUS -#define TEST_CATEGORY_S "application-status" +#define TEST_CATEGORY_S "ApplicationStatus" #define TEST_OBJECT "/an/object/path/to/use" diff --git a/tests/test-libappindicator-fallback-item.c b/tests/test-libappindicator-fallback-item.c index 291bc7c..2c6e044 100644 --- a/tests/test-libappindicator-fallback-item.c +++ b/tests/test-libappindicator-fallback-item.c @@ -108,7 +108,7 @@ main (int argc, char ** argv) TestLibappindicatorFallbackItem * item = g_object_new(TEST_LIBAPPINDICATOR_FALLBACK_ITEM_TYPE, "id", "test-id", - "category", "other", + "category", "Other", "icon-name", "bob", NULL); |