Package: budgie-indicator-applet
Version: 0.3-1
Tags: patch
Severity: wishlist

Dear maintainer of the Budgie Desktop,

please find attached a .debdiff that provides some new functionality for the Budgie Indicator Applet.

A small team is currently driving forward the development of a project called Ayatana Indicators. This project has been derived from the Indicator approach we have seen in Ubuntu now for a while.

Unfortunately, the Ubuntu Indicators are limited to the Ubuntu distribution, only. With Ayatana Indicators, we are currently undertaking an effort to make Indicators more portable and usable on all Linux and non-Linux-but-*nix desktops.

The attached .debdiff provides these changes (quoting myself from debian/changelog):

```
budgie-indicator-applet (0.3-1.1+ayatana) UNRELEASED; urgency=medium

  * Non-maintainer upload.
  * debian/patches:
    + Add 01_ayatana-indicators.patch. Make the package build
      against Ubuntu Indicators and Ayatana Indicators alike.
    + Add 02_aytana-indicators-ng.patch. Re-enable (and fix)
      Indicators NG file support (loading indicators from service
      files.
  * debian/control:
    + Add B-Ds: libayatana-indicator3-dev, libayatana-ido3-0.4-dev.
      to support building against Ayatana Indicators on Debian. Leaving
      Ubuntu Indicators B-Ds in the control file, too, so that on Ubuntu
      we can build (see debian/rules) against Ubuntu Indicators.
  * debian/rules:
    + Select the Indicator implementation to build against based on the
      distribution the package is built for (Debian vs. Ubuntu).

-- Mike Gabriel <[email protected]> Wed, 21 Mar 2018 14:00:27 +0100
```

Please consider applying my changes to the package and promoting the patches upstream.

Thanks for your time!

Mike
--

DAS-NETZWERKTEAM
mike gabriel, herweg 7, 24357 fleckeby
mobile: +49 (1520) 1976 148
landline: +49 (4354) 8390 139

GnuPG Fingerprint: 9BFB AEE8 6C0A A5FF BF22  0782 9AF4 6B30 2577 1B31
mail: [email protected], http://das-netzwerkteam.de

diff -Nru budgie-indicator-applet-0.3/debian/changelog 
budgie-indicator-applet-0.3/debian/changelog
--- budgie-indicator-applet-0.3/debian/changelog        2016-12-20 
11:27:29.000000000 +0100
+++ budgie-indicator-applet-0.3/debian/changelog        2018-03-21 
14:00:27.000000000 +0100
@@ -1,3 +1,23 @@
+budgie-indicator-applet (0.3-1.1+ayatana) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * debian/patches:
+    + Add 01_ayatana-indicators.patch. Make the package build
+      against Ubuntu Indicators and Ayatana Indicators alike.
+    + Add 02_aytana-indicators-ng.patch. Re-enable (and fix)
+      Indicators NG file support (loading indicators from service
+      files.
+  * debian/control:
+    + Add B-Ds: libayatana-indicator3-dev, libayatana-ido3-0.4-dev.
+      to support building against Ayatana Indicators on Debian. Leaving
+      Ubuntu Indicators B-Ds in the control file, too, so that on Ubuntu
+      we can build (see debian/rules) against Ubuntu Indicators.
+  * debian/rules:
+    + Select the Indicator implementation to build against based on the
+      distribution the package is built for (Debian vs. Ubuntu).
+
+ -- Mike Gabriel <[email protected]>  Wed, 21 Mar 2018 14:00:27 
+0100
+
 budgie-indicator-applet (0.3-1) unstable; urgency=medium
 
   * New upstream release
diff -Nru budgie-indicator-applet-0.3/debian/control 
budgie-indicator-applet-0.3/debian/control
--- budgie-indicator-applet-0.3/debian/control  2016-12-18 19:38:39.000000000 
+0100
+++ budgie-indicator-applet-0.3/debian/control  2018-03-21 12:08:05.000000000 
+0100
@@ -8,9 +8,11 @@
                libtool,
                libgtk-3-dev,
                libindicator3-dev,
+               libayatana-indicator3-dev,
                libpeas-dev,
                budgie-core-dev,
-               libido3-0.1-dev
+               libido3-0.1-dev,
+               libayatana-ido3-0.4-dev,
 Standards-Version: 3.9.8
 Homepage: https://github.com/UbuntuBudgie/budgie-indicator-applet
 Vcs-Browser: 
https://github.com/UbuntuBudgie/budgie-indicator-applet/tree/debian
diff -Nru 
budgie-indicator-applet-0.3/debian/patches/01_ayatana-indicators.patch 
budgie-indicator-applet-0.3/debian/patches/01_ayatana-indicators.patch
--- budgie-indicator-applet-0.3/debian/patches/01_ayatana-indicators.patch      
1970-01-01 01:00:00.000000000 +0100
+++ budgie-indicator-applet-0.3/debian/patches/01_ayatana-indicators.patch      
2018-03-21 13:02:58.000000000 +0100
@@ -0,0 +1,363 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -19,25 +19,174 @@
+         budgie-1.0 >= budgie_required_version
+ )
+ 
+-INDICATOR_API_VERSION=3
+-INDICATOR_REQUIRED_VERSION=0.3.90
+-INDICATOR_NG_VERSION=0.5
+-INDICATOR_PKG=indicator$INDICATOR_API_VERSION-0.4
+-
+-PKG_CHECK_MODULES(INDICATOR, $INDICATOR_PKG >= $INDICATOR_NG_VERSION
+-                      libido3-0.1 >= 0.3.4,
+-                      [AC_DEFINE(HAVE_INDICATOR_NG, 1, "New style indicators 
support")])
+-                      
+-AC_SUBST(INDICATOR_CFLAGS)
+-AC_SUBST(INDICATOR_LIBS)
++UBUNTU_INDICATOR_API_VERSION=3
++UBUNTU_INDICATOR_REQUIRED_VERSION=0.3.90
++UBUNTU_INDICATOR_NG_VERSION=0.5
++UBUNTU_INDICATOR_PKG=indicator$INDICATOR_API_VERSION-0.4
++
++AYATANA_INDICATOR_API_VERSION=3
++AYATANA_INDICATOR_REQUIRED_VERSION=0.6.0
++AYATANA_INDICATOR_NG_VERSION=0.6.0
++AYATANA_INDICATOR_PKG=ayatana-indicator$INDICATOR_API_VERSION-0.4
++
++AC_ARG_WITH([ayatana-indicators],
++             [AS_HELP_STRING([--with-ayatana-indicators],
++                             [build against Ayatana Indicators])],
++             [with_ayatana_indicators='yes'],
++             [with_ayatana_indicators='no']
++)
++
++AC_ARG_WITH([ubuntu-indicators],
++             [AS_HELP_STRING([--with-ubuntu-indicators],
++             [build against Ubuntu Indicators])],
++             [with_ubuntu_indicators='yes'],
++             [with_ubuntu_indicators='no']
++)
+ 
+-INDICATORDIR=`$PKG_CONFIG --variable=indicatordir $INDICATOR_PKG`
+-INDICATORICONSDIR=`$PKG_CONFIG --variable=iconsdir $INDICATOR_PKG`
++###
++### Look for Ayatana Indicators
++###
++
++PKG_CHECK_EXISTS(ayatana-indicator3-0.4,
++                 [have_ayatanaindicator="yes"],
++                 [have_ayatanaindicator="no"])
++
++PKG_CHECK_EXISTS(ayatana-indicator3-0.4 >= $AYATANA_INDICATOR_NG_VERSION,
++                 [have_ayatanaindicator_ng="yes"],
++                 [have_ayatanaindicator_ng="no"])
++
++###
++### Look for Ubuntu Indicators
++###
++
++PKG_CHECK_EXISTS(indicator3-0.4,
++                 [have_ubuntuindicator="yes"],
++                 [have_ubuntuindicator="no"])
++
++PKG_CHECK_EXISTS(indicator3-0.4 >= $UBUNTU_INDICATOR_NG_VERSION,
++                 [have_ubuntuindicator_ng="yes"],
++                 [have_ubuntuindicator_ng="no"])
++
++### decide on what Indicators implementation to use...
++
++if   test "x$have_ayatanaindicator" == "xyes" &&
++     test "x$have_ubuntuindicator" != "xyes" &&
++     test "x$with_ubuntu_indicators" != "xyes"; then
++
++    # use Ayatana Indicators (because they are present, and noone is 
enforcing Ubuntu Indicators)
++    use_ayatanaindicator="yes";
++    indicator_enforced="no";
++
++elif test "x$have_ubuntuindicator" == "xyes" &&
++     test "x$have_ayatanaindicator" != "xyes" &&
++     test "x$with_ayatana_indicators" != "xyes"; then
++
++    # use Ubuntu Indicators (because they are present, and noone is enforcing 
Ayatana Indicators)
++    use_ubuntuindicator="yes";
++    indicator_enforced="no";
++
++elif test "x$have_ubuntuindicator" == "xyes" &&
++     test "x$have_ayatanaindicator" == "xyes" &&
++     test "x$with_ayatana_indicators" == "xyes"; then
++
++    # both Indicator implementations are present, and we are asked to use 
Ayatana Indicators
++    use_ayatanaindicator=yes;
++    indicator_enforced=yes;
++
++elif test "x$have_ubuntuindicator" == "xyes" &&
++     test "x$have_ayatanaindicator" == "xyes" &&
++     test "x$with_ubuntu_indicators" == "xyes"; then
++
++    # both Indicator implementations are present, and we are asked to use 
Ubuntu Indicators
++    use_ubuntuindicator=yes;
++    indicator_enforced=yes;
++
++elif test "x$have_ubuntuindicator" == "xyes" &&
++     test "x$have_ayatanaindicator" != "xyes" &&
++     test "x$with_ayatana_indicators" == "xyes"; then
++
++    AC_MSG_ERROR([Ubuntu Indicators are present, but you want to build 
budgie-indicator-applet against Ayatana Indicators. This does not match.])
++
++elif test "x$have_ubuntuindicator" != "xyes" &&
++     test "x$have_ayatanaindicator" == "xyes" &&
++     test "x$with_ubuntu_indicators" == "xyes"; then
++
++    AC_MSG_ERROR([Ayatana Indicators are present, but you want to build 
budgie-indicator-applet against Ubuntu Indicators. This does not match.])
++
++else
++
++    AC_MSG_ERROR([Either Ayatana Indicators or Ubuntu Indicators are required 
to build budgie-indicator-applet.])
++
++fi
++
++### prepare Ayatana or Ubuntu Indicators implementation for the build, 
regarding to the decision reached above...
++
++if   test "x$use_ayatanaindicator" == "xyes"; then
++
++    AM_CONDITIONAL(WITH_AYATANA_INDICATOR, true)
++    AM_CONDITIONAL(WITH_UBUNTU_INDICATOR, false)
++    AC_DEFINE(HAVE_AYATANA_INDICATOR, 1, "Ayatana Indicators Support")
++    AC_DEFINE(HAVE_UBUNTU_INDICATOR, 0, "DISABLED: Ubuntu Indicators Support")
++    AC_DEFINE(HAVE_UBUNTU_INDICATOR_NG, 0, "DISABLED: Ubuntu Indicators NG 
Support")
++
++    if test "x$indicator_enforced" == "xyes"; then
++        AC_MSG_NOTICE([Using Ayatana Indicators for this build (as requested 
via configure option).])
++    else
++        AC_MSG_NOTICE([Using Ayatana Indicators for this build.])
++    fi
++
++    if test "x$have_ayatanaindicator_ng" = "xyes"; then
++        PKG_CHECK_MODULES(AYATANA_INDICATOR_NG, ayatana-indicator3-0.4 >= 
$AYATANA_INDICATOR_NG_VERSION
++                          libayatana-ido3-0.4 >= 0.4.0,
++                          [AC_DEFINE(HAVE_AYATANA_INDICATOR_NG, 1, "New style 
indicators support")])
++    elif test "x$have_ayatanaindicator" = "xyes"; then
++        PKG_CHECK_MODULES(AYATANA_INDICATOR, ayatana-indicator3-0.4 >= 
$AYATANA_INDICATOR_REQUIRED_VERSION)
++    fi
++
++    AC_SUBST(AYATANA_INDICATOR_CFLAGS)
++    AC_SUBST(AYATANA_INDICATOR_LIBS)
++
++elif test "x$use_ubuntuindicator" == "xyes"; then
++
++    # both Indicator implementations are present, and we are asked to use 
Ubuntu Indicators
++    AM_CONDITIONAL(WITH_UBUNTU_INDICATOR, true)
++    AM_CONDITIONAL(WITH_AYATANA_INDICATOR, false)
++    AC_DEFINE(HAVE_UBUNTU_INDICATOR, 1, "Ubuntu Indicators Support")
++    AC_DEFINE(HAVE_AYATANA_INDICATOR, 0, "No Ayatana Indicators Support")
++    AC_DEFINE(HAVE_AYATANA_INDICATOR_NG, 0, "No Ayatana Indicators NG 
Support")
++
++    if test "x$indicator_enforced" == "xyes"; then
++        AC_MSG_NOTICE([Using Ubuntu Indicators for this build (as requested 
via configure option).])
++    else
++        AC_MSG_NOTICE([Using Ubuntu Indicators for this build.])
++    fi
++
++    if test "x$have_ubuntuindicator_ng" = "xyes"; then
++        PKG_CHECK_MODULES(UBUNTU_INDICATOR_NG, indicator3-0.4 >= 
$UBUNTU_INDICATOR_NG_VERSION
++                          libido3-0.1 >= 13.10,
++                          [AC_DEFINE(HAVE_UBUNTU_INDICATOR_NG, 1, "New style 
indicators support")])
++    elif test "x$have_ubuntuindicator" = "xyes"; then
++        PKG_CHECK_MODULES(UBUNTU_INDICATOR, indicator3-0.4 >= 
$UBUNTU_INDICATOR_REQUIRED_VERSION)
++    fi
++
++    AC_SUBST(UBUNTU_INDICATOR_CFLAGS)
++    AC_SUBST(UBUNTU_INDICATOR_LIBS)
++
++fi
++
++if test "x$use_ubuntuindicator" = "xyes"; then
++       INDICATORDIR=`$PKG_CONFIG --variable=indicatordir indicator3-0.4`
++       INDICATORICONSDIR=`$PKG_CONFIG --variable=iconsdir indicator3-0.4`
++fi
++
++if test "x$use_ayatanaindicator" = "xyes"; then
++       INDICATORDIR=`$PKG_CONFIG --variable=indicatordir 
ayatana-indicator3-0.4`
++       INDICATORICONSDIR=`$PKG_CONFIG --variable=iconsdir 
ayatana-indicator3-0.4`
++fi
+ 
+ AC_SUBST(INDICATORDIR)
+ AC_SUBST(INDICATORICONSDIR)
+ 
+-
+ AC_CONFIG_FILES([Makefile
+                  src/Makefile])
+ 
+--- a/src/applet-main.c
++++ b/src/applet-main.c
+@@ -26,11 +26,51 @@
+ #include <glib/gi18n.h>
+ #include <gtk/gtk.h>
+ 
++//#if HAVE_UBUNTU_INDICATOR && HAVE_UBUNTU_INDICATOR_NG
+ //#include <libindicator/indicator-ng.h>
++//#include <libido/libido.h>
++//
++//#define INDICATOR_SERVICE_DIR "/usr/share/unity/indicators"
++//#endif
++
++//#if HAVE_AYATANA_INDICATOR && HAVE_AYATANA_INDICATOR_NG
++//#include <libayatana-indicator/indicator-ng.h>
++//#include <libayatana-ido/libayatana-ido.h>
++//
++//#define INDICATOR_SERVICE_DIR "/usr/share/ayatana/indicators"
++//#endif
++
++#if HAVE_UBUNTU_INDICATOR
++
++#define INDICATOR_SERVICE_APPMENU      "libappmenu.so"
++#define INDICATOR_SERVICE_ME           "libme.so"
++#define INDICATOR_SERVICE_DATETIME     "libdatetime.so"
++
++#define INDICATOR_SERVICE_APPMENU_NG   "com.canonical.indicator.appmenu"
++#define INDICATOR_SERVICE_ME_NG        "com.canonical.indicator.me"
++#define INDICATOR_SERVICE_DATETIME_NG  "com.canonical.indicator.datetime"
++
+ #include <libindicator/indicator-object.h>
+ 
+ static gchar *indicator_order[] = { "libapplication.so", "libmessaging.so", 
"libsoundmenu.so",
+                                     "libdatetime.so",    "libsession.so",   
NULL };
++#endif
++
++#if HAVE_AYATANA_INDICATOR
++
++#define INDICATOR_SERVICE_APPMENU      "libayatana-appmenu.so"
++#define INDICATOR_SERVICE_ME           "libayatana-me.so"
++#define INDICATOR_SERVICE_DATETIME     "libayatana-datetime.so"
++
++#define INDICATOR_SERVICE_APPMENU_NG   "org.ayatana.indicator.appmenu"
++#define INDICATOR_SERVICE_ME_NG        "org.ayatana.indicator.me"
++#define INDICATOR_SERVICE_DATETIME_NG  "org.ayatana.indicator.datetime"
++
++#include <libayatana-indicator/indicator-object.h>
++
++static gchar *indicator_order[] = { "libayatana-application.so", 
"libayatana-messaging.so", "libayatana-soundmenu.so",
++                                    "libayatana-datetime.so",    
"libayatana-session.so",   NULL };
++#endif
+ 
+ #define MENU_DATA_INDICATOR_OBJECT "indicator-object"
+ #define MENU_DATA_INDICATOR_ENTRY "indicator-entry"
+@@ -602,8 +642,7 @@
+ }
+ 
+ /*
+-#define INDICATOR_SERVICE_DIR "/usr/share/unity/indicators"
+-
++#if HAVE_AYATANA_INDICATOR_NG || HAVE_UBUNTU_INDICATOR_NG
+ void
+ load_indicators_from_indicator_files (GtkWidget *menubar, gint 
*indicators_loaded)
+ {
+@@ -629,24 +668,15 @@
+                 indicator = indicator_ng_new_for_profile (filename, 
"desktop", &error);
+                 g_free (filename);
+ 
+-*#ifdef INDICATOR_APPLET_APPMENU
+-                if (g_strcmp0(name, "com.canonical.indicator.appmenu")) {
++                if (!g_strcmp0(name, INDICATOR_SERVICE_APPMENU_NG)) {
+                         continue;
+                 }
+-#else
+-                if (!g_strcmp0(name, "com.canonical.indicator.appmenu")) {
++                if (!g_strcmp0(name, INDICATOR_SERVICE_ME_NG)) {
+                         continue;
+                 }
+-#endif
+-#ifdef INDICATOR_APPLET
+-                if (!g_strcmp0(name, "com.canonical.indicator.me")) {
++                if (!g_strcmp0(name,  INDICATOR_SERVICE_DATETIME_NG)) {
+                         continue;
+                 }
+-                if (!g_strcmp0(name, "com.canonical.indicator.datetime")) {
+-                        continue;
+-                }
+-#endif
+-*
+                 if (indicator) {
+                         load_indicator(menubar, INDICATOR_OBJECT (indicator), 
name);
+                         count++;
+@@ -661,6 +691,7 @@
+         g_dir_close (dir);
+ }
+ */
++//#endif  /* HAVE_AYATANA_INDICATOR_NG || HAVE_UBUNTU_INDICATOR_NG */
+ 
+ static gboolean load_module(const gchar *name, GtkWidget *menubar)
+ {
+@@ -691,13 +722,13 @@
+                 const gchar *name;
+                 gint count = 0;
+                 while ((name = g_dir_read_name(dir)) != NULL) {
+-                        if (!g_strcmp0(name, "libappmenu.so")) {
++                        if (!g_strcmp0(name, INDICATOR_SERVICE_APPMENU)) {
+                                 continue;
+                         }
+-                        if (!g_strcmp0(name, "libme.so")) {
++                        if (!g_strcmp0(name, INDICATOR_SERVICE_ME)) {
+                                 continue;
+                         }
+-                        if (!g_strcmp0(name, "libdatetime.so")) {
++                        if (!g_strcmp0(name, INDICATOR_SERVICE_DATETIME)) {
+                                 continue;
+                         }
+                         g_debug("zzz a: %s", name);
+--- a/src/applet.c
++++ b/src/applet.c
+@@ -181,6 +181,10 @@
+ 
+         gint indicators_loaded = 0;
+ 
++//#if HAVE_AYATANA_INDICATOR_NG || HAVE_UBUNTU_INDICATOR_NG
++//        ido_init();
++//#endif
++
+         menubar = gtk_menu_bar_new();
+ 
+         /*
+@@ -202,15 +206,20 @@
+ 
+         gtk_icon_theme_append_search_path(gtk_icon_theme_get_default(), 
INDICATOR_ICONS_DIR);
+ 
++
++
+         load_modules(menubar, &indicators_loaded);
+         /*
+          * leave this here - this is the entry point for indicators such as
+          * indicator-messages. Currently these indicators don't display their
+          * menu contents correctly - e.g. missing thunderbird from 
indicator-messages
+          * drop-down.
+-         * load_indicators_from_indicator_files (menubar, &indicators_loaded);
+          */
+ 
++//#if HAVE_AYATANA_INDICATOR_NG || HAVE_UBUNTU_INDICATOR_NG
++//         load_indicators_from_indicator_files (menubar, &indicators_loaded);
++//#endif
++
+         if (indicators_loaded == 0) {
+                 /* A label to allow for click through */
+                 GtkWidget *item = gtk_label_new("No Indicators");
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -1,3 +1,17 @@
++if WITH_AYATANA_INDICATOR
++INDICATOR_CFLAGS = $(AYATANA_INDICATOR_CFLAGS)          \
++                   $(AYATANA_INDICATOR_NG_CFLAGS)
++INDICATOR_LIBS   = $(AYATANA_INDICATOR_LIBS)            \
++                   $(AYATANA_INDICATOR_NG_LIBS)
++endif
++
++if WITH_UBUNTU_INDICATOR
++INDICATOR_CFLAGS = $(UBUNTU_INDICATOR_CFLAGS)           \
++                   $(UBUNTU_INDICATOR_NG_CFLAGS)
++INDICATOR_LIBS   = $(UBUNTU_INDICATOR_LIBS)             \
++                   $(UBUNTU_INDICATOR_NG_LIBS)
++endif
++
+ include $(top_srcdir)/common.mk
+ 
+ plugindir = $(libdir)/budgie-desktop/plugins
diff -Nru 
budgie-indicator-applet-0.3/debian/patches/02_aytana-indicators-ng.patch 
budgie-indicator-applet-0.3/debian/patches/02_aytana-indicators-ng.patch
--- budgie-indicator-applet-0.3/debian/patches/02_aytana-indicators-ng.patch    
1970-01-01 01:00:00.000000000 +0100
+++ budgie-indicator-applet-0.3/debian/patches/02_aytana-indicators-ng.patch    
2018-03-21 13:46:58.000000000 +0100
@@ -0,0 +1,133 @@
+--- a/src/applet-main.c
++++ b/src/applet-main.c
+@@ -26,19 +26,17 @@
+ #include <glib/gi18n.h>
+ #include <gtk/gtk.h>
+ 
+-//#if HAVE_UBUNTU_INDICATOR && HAVE_UBUNTU_INDICATOR_NG
+-//#include <libindicator/indicator-ng.h>
+-//#include <libido/libido.h>
+-//
+-//#define INDICATOR_SERVICE_DIR "/usr/share/unity/indicators"
+-//#endif
+-
+-//#if HAVE_AYATANA_INDICATOR && HAVE_AYATANA_INDICATOR_NG
+-//#include <libayatana-indicator/indicator-ng.h>
+-//#include <libayatana-ido/libayatana-ido.h>
+-//
+-//#define INDICATOR_SERVICE_DIR "/usr/share/ayatana/indicators"
+-//#endif
++#if HAVE_UBUNTU_INDICATOR && HAVE_UBUNTU_INDICATOR_NG
++#include <libindicator/indicator-ng.h>
++
++#define INDICATOR_SERVICE_DIR "/usr/share/unity/indicators"
++#endif
++
++#if HAVE_AYATANA_INDICATOR && HAVE_AYATANA_INDICATOR_NG
++#include <libayatana-indicator/indicator-ng.h>
++
++#define INDICATOR_SERVICE_DIR "/usr/share/ayatana/indicators"
++#endif
+ 
+ #if HAVE_UBUNTU_INDICATOR
+ 
+@@ -603,8 +601,15 @@
+         indicator_object_set_environment(io, (const GStrv)indicator_env);
+         g_debug("zzz load_indicator %s", name);
+         /* Attach the 'name' to the object */
+-        int pos = name2order(name);
+ 
++#if HAVE_AYATANA_INDICATOR_NG || HAVE_UBUNTU_INDICATOR_NG
++        int pos = 5000 - indicator_object_get_position(io);
++        if (pos > 5000) {
++                pos = name2order(name);
++        }
++#else
++        int pos = name2order(name);
++#endif
+         g_object_set_data(G_OBJECT(io), IO_DATA_ORDER_NUMBER, 
GINT_TO_POINTER(pos));
+ 
+         /* Connect to its signals */
+@@ -641,7 +646,6 @@
+         g_list_free(entries);
+ }
+ 
+-/*
+ #if HAVE_AYATANA_INDICATOR_NG || HAVE_UBUNTU_INDICATOR_NG
+ void
+ load_indicators_from_indicator_files (GtkWidget *menubar, gint 
*indicators_loaded)
+@@ -690,8 +694,7 @@
+ 
+         g_dir_close (dir);
+ }
+-*/
+-//#endif  /* HAVE_AYATANA_INDICATOR_NG || HAVE_UBUNTU_INDICATOR_NG */
++#endif  /* HAVE_AYATANA_INDICATOR_NG || HAVE_UBUNTU_INDICATOR_NG */
+ 
+ static gboolean load_module(const gchar *name, GtkWidget *menubar)
+ {
+--- a/src/applet.c
++++ b/src/applet.c
+@@ -16,10 +16,21 @@
+ 
+ #define _GNU_SOURCE
+ 
++#include <config.h>
++
+ #include "applet.h"
+ #include <budgie-desktop/plugin.h>
+ #include <gobject/gobject.h>
+ 
++#if HAVE_UBUNTU_INDICATOR && HAVE_UBUNTU_INDICATOR_NG
++#include <libido/libido.h>
++#endif
++
++#if HAVE_AYATANA_INDICATOR && HAVE_AYATANA_INDICATOR_NG
++#include <libayatana-ido/libayatana-ido.h>
++#endif
++
++
+ void load_modules(GtkWidget *menubar, gint *indicators_loaded);
+ void load_indicators_from_indicator_files(GtkWidget *menubar, gint 
*indicators_loaded);
+ 
+@@ -175,16 +186,16 @@
+  */
+ static void appindicator_applet_init(AppIndicatorApplet *self)
+ {
++#if HAVE_AYATANA_INDICATOR_NG || HAVE_UBUNTU_INDICATOR_NG
++        ido_init();
++#endif
++
+         GtkWidget *eventbox = NULL;
+         GtkWidget *menubar = NULL;
+         GSettings *settings = NULL;
+ 
+         gint indicators_loaded = 0;
+ 
+-//#if HAVE_AYATANA_INDICATOR_NG || HAVE_UBUNTU_INDICATOR_NG
+-//        ido_init();
+-//#endif
+-
+         menubar = gtk_menu_bar_new();
+ 
+         /*
+@@ -209,16 +220,10 @@
+ 
+ 
+         load_modules(menubar, &indicators_loaded);
+-        /*
+-         * leave this here - this is the entry point for indicators such as
+-         * indicator-messages. Currently these indicators don't display their
+-         * menu contents correctly - e.g. missing thunderbird from 
indicator-messages
+-         * drop-down.
+-         */
+ 
+-//#if HAVE_AYATANA_INDICATOR_NG || HAVE_UBUNTU_INDICATOR_NG
+-//         load_indicators_from_indicator_files (menubar, &indicators_loaded);
+-//#endif
++#if HAVE_AYATANA_INDICATOR_NG || HAVE_UBUNTU_INDICATOR_NG
++        load_indicators_from_indicator_files (menubar, &indicators_loaded);
++#endif
+ 
+         if (indicators_loaded == 0) {
+                 /* A label to allow for click through */
diff -Nru budgie-indicator-applet-0.3/debian/patches/series 
budgie-indicator-applet-0.3/debian/patches/series
--- budgie-indicator-applet-0.3/debian/patches/series   1970-01-01 
01:00:00.000000000 +0100
+++ budgie-indicator-applet-0.3/debian/patches/series   2018-03-21 
12:27:54.000000000 +0100
@@ -0,0 +1,2 @@
+01_ayatana-indicators.patch
+02_aytana-indicators-ng.patch
diff -Nru budgie-indicator-applet-0.3/debian/rules 
budgie-indicator-applet-0.3/debian/rules
--- budgie-indicator-applet-0.3/debian/rules    2016-12-18 19:38:39.000000000 
+0100
+++ budgie-indicator-applet-0.3/debian/rules    2018-03-21 12:07:20.000000000 
+0100
@@ -7,11 +7,17 @@
 DPKG_EXPORT_BUILDFLAGS = 1
 include /usr/share/dpkg/buildflags.mk
 
+ifeq ($(shell dpkg-vendor --is Ubuntu && echo yes),yes)
+INDICATOR_IMPLEMENTATION=--with-ubuntu-indicators=yes
+else
+INDICATOR_IMPLEMENTATION=--with-ayatana-indicators=yes
+endif
+
 %:
        dh $@
        
 override_dh_auto_configure:
-       dh_auto_configure -- --prefix=/usr --libdir=/usr/lib
+       dh_auto_configure -- --prefix=/usr --libdir=/usr/lib 
$(INDICATOR_IMPLEMENTATION)
 
 override_dh_auto_install:
        dh_auto_install

Attachment: pgpAAra9ofS1d.pgp
Description: Digitale PGP-Signatur

Reply via email to