aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2010-09-19 13:28:14 -0500
committerTed Gould <ted@gould.cx>2010-09-19 13:28:14 -0500
commit49b70435e5ad752302913719fe227569b51aed40 (patch)
treeb8cdf29d385ce2253aa7765ed40dbb63767c556a
parent0bcacdcdc45b229e955d9e9d748580f4c3fb3fd1 (diff)
parentbf38aa8b5b4331ac13503d53b123e6bbf19f7432 (diff)
downloadlibayatana-indicator-49b70435e5ad752302913719fe227569b51aed40.tar.gz
libayatana-indicator-49b70435e5ad752302913719fe227569b51aed40.tar.bz2
libayatana-indicator-49b70435e5ad752302913719fe227569b51aed40.zip
* Upstream Merge
* Adding a function to signal a menu is shown * Changing indicator directory to '4' * debian/control: Switching from libindicator0 to libindicator1 as we've broken ABI. Conflicting with libindicator0 to make upgrade simpler as it doesn't make sense to have both installed. * Autogen update
-rw-r--r--debian/changelog12
-rw-r--r--debian/control7
-rw-r--r--debian/libindicator1.install (renamed from debian/libindicator0.install)0
-rw-r--r--libindicator/Makefile.am5
-rw-r--r--libindicator/Makefile.in9
-rw-r--r--libindicator/indicator-object.c25
-rw-r--r--libindicator/indicator-object.h9
-rw-r--r--libindicator/indicator.pc.in2
-rw-r--r--tools/indicator-loader.c13
9 files changed, 76 insertions, 6 deletions
diff --git a/debian/changelog b/debian/changelog
index f41decf..f0be2f8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,15 @@
+libindicator (0.3.13-0ubuntu1~ppa2) UNRELEASED; urgency=low
+
+ * Upstream Merge
+ * Adding a function to signal a menu is shown
+ * Changing indicator directory to '4'
+ * debian/control: Switching from libindicator0 to libindicator1
+ as we've broken ABI. Conflicting with libindicator0 to make
+ upgrade simpler as it doesn't make sense to have both installed.
+ * Autogen update
+
+ -- Ted Gould <ted@ubuntu.com> Sun, 19 Sep 2010 13:26:45 -0500
+
libindicator (0.3.13-0ubuntu1~ppa1) maverick; urgency=low
* New upstream release.
diff --git a/debian/control b/debian/control
index 6530e9b..0dfe822 100644
--- a/debian/control
+++ b/debian/control
@@ -17,11 +17,12 @@ Homepage: https://launchpad.net/libindicator
Vcs-Bzr: https://code.launchpad.net/~indicator-applet-developers/libindicator/ubuntu
Vcs-Browser: http://bazaar.launchpad.net/~indicator-applet-developers/libindicator/ubuntu
-Package: libindicator0
+Package: libindicator1
Section: libs
Architecture: any
Depends: ${shlibs:Depends},
${misc:Depends}
+Conflicts: libindicator0
Description: panel indicator applet - shared library
This library contains information to build indicators to go into
the indicator applet.
@@ -34,7 +35,7 @@ Architecture: any
Depends: ${shlibs:Depends},
${misc:Depends},
libgtk2.0-dev (>= 2.12.0),
- libindicator0 (= ${binary:Version})
+ libindicator1 (= ${binary:Version})
Description: panel indicator applet - library development files
This library contains information to build indicators to go into
the indicator applet.
@@ -46,7 +47,7 @@ Section: devel
Architecture: any
Depends: ${shlibs:Depends},
${misc:Depends},
- libindicator0 (= ${binary:Version})
+ libindicator1 (= ${binary:Version})
Description: Tools for libindicator
Tools useful for developers of applications using indicators.
.
diff --git a/debian/libindicator0.install b/debian/libindicator1.install
index 85dbd3e..85dbd3e 100644
--- a/debian/libindicator0.install
+++ b/debian/libindicator1.install
diff --git a/libindicator/Makefile.am b/libindicator/Makefile.am
index 983a6a5..f942f0d 100644
--- a/libindicator/Makefile.am
+++ b/libindicator/Makefile.am
@@ -42,6 +42,11 @@ libindicator_la_CFLAGS = \
libindicator_la_LIBADD = \
$(LIBINDICATOR_LIBS)
+libindicator_la_LDFLAGS = \
+ -version-info 1:0:0 \
+ -no-undefined \
+ -export-symbols-regex "^[^_].*"
+
pkgconfig_DATA = indicator.pc
pkgconfigdir = $(libdir)/pkgconfig
diff --git a/libindicator/Makefile.in b/libindicator/Makefile.in
index 0dddfe0..209f524 100644
--- a/libindicator/Makefile.in
+++ b/libindicator/Makefile.in
@@ -105,8 +105,8 @@ am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
am__v_lt_0 = --silent
libindicator_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
- $(libindicator_la_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
- -o $@
+ $(libindicator_la_CFLAGS) $(CFLAGS) $(libindicator_la_LDFLAGS) \
+ $(LDFLAGS) -o $@
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
@@ -311,6 +311,11 @@ libindicator_la_CFLAGS = \
libindicator_la_LIBADD = \
$(LIBINDICATOR_LIBS)
+libindicator_la_LDFLAGS = \
+ -version-info 1:0:0 \
+ -no-undefined \
+ -export-symbols-regex "^[^_].*"
+
pkgconfig_DATA = indicator.pc
pkgconfigdir = $(libdir)/pkgconfig
glib_marshal_list = indicator-object-marshal.list
diff --git a/libindicator/indicator-object.c b/libindicator/indicator-object.c
index a5fd740..41484a6 100644
--- a/libindicator/indicator-object.c
+++ b/libindicator/indicator-object.c
@@ -432,3 +432,28 @@ indicator_object_get_location (IndicatorObject * io, IndicatorObjectEntry * entr
return 0;
}
+
+/**
+ indicator_object_entry_activate:
+ @io: #IndicatorObject to query
+ @entry: The #IndicatorObjectEntry whose entry was shown
+ @timestamp: The X11 timestamp of the event
+
+ Used to signal to the indicator that the menu on an entry has
+ been clicked on. This can either be an activate or a showing
+ of the menu. Note, this does not actually show the menu that's
+ left up to the reader.
+*/
+void
+indicator_object_entry_activate (IndicatorObject * io, IndicatorObjectEntry * entry, guint timestamp)
+{
+ g_return_if_fail(INDICATOR_IS_OBJECT(io));
+ IndicatorObjectClass * class = INDICATOR_OBJECT_GET_CLASS(io);
+
+ if (class->entry_activate != NULL) {
+ return class->entry_activate(io, entry, timestamp);
+ }
+
+ return;
+}
+
diff --git a/libindicator/indicator-object.h b/libindicator/indicator-object.h
index 32a35f9..79f4757 100644
--- a/libindicator/indicator-object.h
+++ b/libindicator/indicator-object.h
@@ -94,6 +94,8 @@ struct _IndicatorObjectClass {
GList * (*get_entries) (IndicatorObject * io);
guint (*get_location) (IndicatorObject * io, IndicatorObjectEntry * entry);
+ void (*entry_activate) (IndicatorObject * io, IndicatorObjectEntry * entry, guint timestamp);
+
/* Signals */
void (*entry_added) (IndicatorObject * io, IndicatorObjectEntry * entry, gpointer user_data);
void (*entry_removed) (IndicatorObject * io, IndicatorObjectEntry * entry, gpointer user_data);
@@ -102,6 +104,12 @@ struct _IndicatorObjectClass {
void (*menu_show) (IndicatorObject * io, IndicatorObjectEntry * entry, guint timestamp, gpointer user_data);
/* Reserved */
+ void (*reserved1) (void);
+ void (*reserved2) (void);
+ void (*reserved3) (void);
+ void (*reserved4) (void);
+ void (*reserved5) (void);
+ void (*reserved6) (void);
};
/**
@@ -132,6 +140,7 @@ IndicatorObject * indicator_object_new_from_file (const gchar * file);
GList * indicator_object_get_entries (IndicatorObject * io);
guint indicator_object_get_location (IndicatorObject * io, IndicatorObjectEntry * entry);
+void indicator_object_entry_activate (IndicatorObject * io, IndicatorObjectEntry * entry, guint timestamp);
G_END_DECLS
diff --git a/libindicator/indicator.pc.in b/libindicator/indicator.pc.in
index 91b70b1..abc5590 100644
--- a/libindicator/indicator.pc.in
+++ b/libindicator/indicator.pc.in
@@ -4,7 +4,7 @@ libdir=@libdir@
bindir=@bindir@
includedir=@includedir@
-indicatordir=${libdir}/indicators/3/
+indicatordir=${libdir}/indicators/4/
iconsdir=@datarootdir@/@PACKAGE@/icons/
Cflags: -I${includedir}/libindicator-0.3
diff --git a/tools/indicator-loader.c b/tools/indicator-loader.c
index 747b216..03614aa 100644
--- a/tools/indicator-loader.c
+++ b/tools/indicator-loader.c
@@ -28,6 +28,17 @@ License along with this library. If not, see
#define ENTRY_DATA_NAME "indicator-custom-entry-data"
static void
+activate_entry (GtkWidget * widget, gpointer user_data)
+{
+ g_return_if_fail(INDICATOR_IS_OBJECT(user_data));
+ gpointer entry = g_object_get_data(G_OBJECT(widget), ENTRY_DATA_NAME);
+ g_return_if_fail(entry == NULL);
+
+ indicator_object_entry_activate(INDICATOR_OBJECT(user_data), (IndicatorObjectEntry *)entry, gtk_get_current_event_time());
+ return;
+}
+
+static void
entry_added (IndicatorObject * io, IndicatorObjectEntry * entry, gpointer user_data)
{
g_debug("Signal: Entry Added");
@@ -48,6 +59,8 @@ entry_added (IndicatorObject * io, IndicatorObjectEntry * entry, gpointer user_d
gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), GTK_WIDGET(entry->menu));
}
+ g_signal_connect(G_OBJECT(menuitem), "activate", G_CALLBACK(activate_entry), io);
+
gtk_menu_shell_append(GTK_MENU_SHELL(user_data), menuitem);
gtk_widget_show(menuitem);