← Back to team overview

ayatana-commits team mailing list archive

[Merge] lp:~mterry/indicator-application/gtk3 into lp:indicator-application

 

Michael Terry has proposed merging lp:~mterry/indicator-application/gtk3 into lp:indicator-application.

Requested reviews:
  Indicator Applet Developers (indicator-applet-developers)
Related bugs:
  #596171 Provide GTK+ 3.0 version of libappindicator
  https://bugs.launchpad.net/bugs/596171


Applications ported to GTK+ 3.0 cannot use libappindicator because it is built for GTK+ 2.0. This branch builds a parallel-installable version of the library (libappindicator3) so that GTK+ 3.0 apps can also use the app menu.

This merge requires merging:
lp:~mterry/dbusmenu/gtk3
lp:~mterry/libindicator/gtk3
-- 
https://code.launchpad.net/~mterry/indicator-application/gtk3/+merge/27990
Your team ayatana-commits is subscribed to branch lp:indicator-application.
=== modified file 'configure.ac'
--- configure.ac	2010-06-03 18:28:54 +0000
+++ configure.ac	2010-06-19 13:39:27 +0000
@@ -37,7 +37,8 @@
 # Dependencies
 ###########################
 
-GTK_REQUIRED_VERSION=2.12
+GTK_REQUIRED_VERSION=2.18
+GTK3_REQUIRED_VERSION=2.90
 INDICATOR_REQUIRED_VERSION=0.3.5
 DBUSMENUGTK_REQUIRED_VERSION=0.2.2
 JSON_GLIB_REQUIRED_VERSION=0.7.6
@@ -52,6 +53,15 @@
 AC_SUBST(INDICATOR_CFLAGS)
 AC_SUBST(INDICATOR_LIBS)
 
+PKG_CHECK_MODULES(INDICATOR3, gtk+-3.0 >= $GTK3_REQUIRED_VERSION
+                              indicator3 >= $INDICATOR_REQUIRED_VERSION
+                              json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION
+                              dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION
+                              dbusmenu-gtk3 >= $DBUSMENUGTK_REQUIRED_VERSION)
+
+AC_SUBST(INDICATOR3_CFLAGS)
+AC_SUBST(INDICATOR3_LIBS)
+
 ###########################
 # GObject Introspection
 ###########################
@@ -191,6 +201,7 @@
 Makefile
 src/Makefile
 src/appindicator-0.1.pc
+src/appindicator3-0.1.pc
 bindings/Makefile
 bindings/mono/Makefile
 bindings/mono/appindicator-sharp.dll.config

=== modified file 'src/Makefile.am'
--- src/Makefile.am	2010-06-01 16:07:44 +0000
+++ src/Makefile.am	2010-06-19 13:39:27 +0000
@@ -1,7 +1,7 @@
 CLEANFILES =
 DISTCLEANFILES =
 BUILT_SOURCES =
-EXTRA_DIST = appindicator-0.1.pc.in
+EXTRA_DIST = appindicator-0.1.pc.in appindicator3-0.1.pc.in
 
 include $(top_srcdir)/Makefile.am.enum
 include $(top_srcdir)/Makefile.am.marshal
@@ -26,6 +26,19 @@
 libapplication_la_LIBADD = $(INDICATOR_LIBS)
 libapplication_la_LDFLAGS = -module -avoid-version
 
+applicationlib1dir = $(INDICATORDIR)
+applicationlib1_LTLIBRARIES = libapplication3.la
+libapplication3_la_SOURCES = $(libapplication_la_SOURCES)
+libapplication3_la_CFLAGS = $(INDICATOR3_CFLAGS) \
+	-Wall \
+	-Wl,-Bsymbolic-functions \
+	-Wl,-z,defs \
+	-Wl,--as-needed \
+	-Werror \
+	-DG_LOG_DOMAIN=\"Indicator-Application\"
+libapplication3_la_LIBADD = $(INDICATOR3_LIBS)
+libapplication3_la_LDFLAGS = $(libapplication_la_LDFLAGS)
+
 ##################################
 # Service
 ##################################
@@ -66,7 +79,7 @@
 # Library
 ##################################
 
-pkgconfig_DATA = appindicator-0.1.pc
+pkgconfig_DATA = appindicator-0.1.pc appindicator3-0.1.pc
 pkgconfigdir = $(libdir)/pkgconfig
 
 glib_enum_h = app-indicator-enum-types.h
@@ -76,9 +89,11 @@
 DISTCLEANFILES += app-indicator-enum-types.c
 
 lib_LTLIBRARIES = \
-	libappindicator.la
+	libappindicator.la \
+	libappindicator3.la
 
 libappindicatorincludedir=$(includedir)/libappindicator-0.1/libappindicator
+libappindicator3includedir=$(includedir)/libappindicator3-0.1/libappindicator
 
 libappindicator_headers = \
 	app-indicator.h
@@ -87,6 +102,8 @@
 	$(libappindicator_headers) \
 	$(glib_enum_h)
 
+libappindicator3include_HEADERS = $(libappindicatorinclude_HEADERS)
+
 BUILT_SOURCES += \
 	notification-watcher-client.h \
 	notification-item-server.h
@@ -95,19 +112,27 @@
 	$(libappindicator_headers) \
 	app-indicator-enum-types.c \
 	app-indicator.c
+libappindicator3_la_SOURCES = $(libappindicator_la_SOURCES)
 
 libappindicator_la_LDFLAGS = \
 	-version-info 0:0:0 \
 	-no-undefined \
 	-export-symbols-regex "^[^_d].*"
+libappindicator3_la_LDFLAGS = $(libappindicator_la_LDFLAGS)
 
 libappindicator_la_CFLAGS = \
 	$(INDICATOR_CFLAGS) \
 	-Wall -Werror \
 	-DG_LOG_DOMAIN=\"libappindicator\"
+libappindicator3_la_CFLAGS = \
+	$(INDICATOR3_CFLAGS) \
+	-Wall -Werror \
+	-DG_LOG_DOMAIN=\"libappindicator\"
 
 libappindicator_la_LIBADD = \
 	$(INDICATOR_LIBS)
+libappindicator3_la_LIBADD = \
+	$(INDICATOR3_LIBS)
 
 ##################################
 # DBus Specs
@@ -166,7 +191,15 @@
 AppIndicator_0_1_gir_LIBS = libappindicator.la
 AppIndicator_0_1_gir_FILES = $(introspection_sources)
 
-INTROSPECTION_GIRS += AppIndicator-0.1.gir
+AppIndicator3-0.1.gir: libappindicator3.la $(glib_enum_h)
+AppIndicator3_0_1_gir_INCLUDES = \
+    GObject-2.0 \
+    Gtk-3.0
+AppIndicator3_0_1_gir_CFLAGS = $(INDICATOR3_CFLAGS) -I$(srcdir) -I$(top_builddir)/src
+AppIndicator3_0_1_gir_LIBS = libappindicator3.la
+AppIndicator3_0_1_gir_FILES = $(introspection_sources)
+
+INTROSPECTION_GIRS += AppIndicator-0.1.gir AppIndicator3-0.1.gir
 
 girdir = $(datadir)/gir-1.0
 gir_DATA = $(INTROSPECTION_GIRS)
@@ -185,7 +218,7 @@
 if HAVE_INTROSPECTION
 
 vapidir = $(datadir)/vala/vapi
-vapi_DATA = AppIndicator-0.1.vapi
+vapi_DATA = AppIndicator-0.1.vapi AppIndicator3-0.1.vapi
 
 AppIndicator-0.1.vapi: AppIndicator-0.1.gir Makefile.am
 	$(VALA_API_GEN) --library=AppIndicator-0.1 \
@@ -193,6 +226,12 @@
 		--vapidir=$(top_builddir)/src \
 		$<
 
+AppIndicator3-0.1.vapi: AppIndicator3-0.1.gir Makefile.am
+	$(VALA_API_GEN) --library=AppIndicator3-0.1 \
+		--pkg gtk+-3.0 \
+		--vapidir=$(top_builddir)/src \
+		$<
+
 CLEANFILES += $(vapi_DATA)
 
 endif

=== modified file 'src/app-indicator.c'
--- src/app-indicator.c	2010-06-17 18:21:59 +0000
+++ src/app-indicator.c	2010-06-19 13:39:27 +0000
@@ -1270,7 +1270,7 @@
     {
       dbusmenu_menuitem_property_set_bool (child,
                                            DBUSMENU_MENUITEM_PROP_ENABLED,
-                                           GTK_WIDGET_IS_SENSITIVE (widget));
+                                           gtk_widget_is_sensitive (widget));
     }
   else if (pspec->name == g_intern_static_string ("label"))
     {
@@ -1422,7 +1422,7 @@
 
   dbusmenu_menuitem_property_set_bool (child,
                                        DBUSMENU_MENUITEM_PROP_ENABLED,
-                                       GTK_WIDGET_IS_SENSITIVE (widget));
+                                       gtk_widget_is_sensitive (widget));
   dbusmenu_menuitem_property_set_bool (child,
                                        DBUSMENU_MENUITEM_PROP_VISIBLE,
                                        gtk_widget_get_visible (widget));

=== added file 'src/appindicator3-0.1.pc.in'
--- src/appindicator3-0.1.pc.in	1970-01-01 00:00:00 +0000
+++ src/appindicator3-0.1.pc.in	2010-06-19 13:39:27 +0000
@@ -0,0 +1,14 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+bindir=@bindir@
+includedir=@includedir@
+
+Cflags: -I${includedir}/libappindicator3-0.1
+Requires: dbusmenu-glib gtk+-3.0
+Libs: -L${libdir} -lappindicator3
+
+Name: appindicator3-0.1
+Description: Application indicators
+Version: @VERSION@
+

=== modified file 'src/dbus-properties-client.h'
--- src/dbus-properties-client.h	2010-01-08 02:53:46 +0000
+++ src/dbus-properties-client.h	2010-06-19 13:39:27 +0000
@@ -39,7 +39,7 @@
 {
   DBusGAsyncData *data = (DBusGAsyncData*) user_data;
   GError *error = NULL;
-  GValue OUT_Value = {0};
+  GValue OUT_Value = { 0, };
   dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_VALUE, &OUT_Value, G_TYPE_INVALID);
   (*(org_freedesktop_DBus_Properties_get_reply)data->cb) (proxy, OUT_Value, error, data->userdata);
   return;


Follow ups