From cd1fdf7abfde870c8576bbb0d7f9f45fea2c6606 Mon Sep 17 00:00:00 2001 From: Ivaylo Dimitrov Date: Sat, 12 Nov 2016 01:33:00 +0200 Subject: [PATCH] Make it compilable under newer distros and GTK3 Signed-off-by: Ivaylo Dimitrov --- configure.ac | 16 +++++++++++++++- src/dbus.c | 9 +++++++-- src/ipm.c | 12 ++++++++++++ src/systemui.c | 2 ++ src/systemui.h | 4 ++++ 5 files changed, 40 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index a4fa9da..e104d62 100755 --- a/configure.ac +++ b/configure.ac @@ -17,13 +17,27 @@ AC_HEADER_STDC AC_DISABLE_STATIC AC_PROG_LIBTOOL -PKG_CHECK_MODULES(HILDON, hildon-1) +PKG_CHECK_MODULES([HILDON], [hildon-1], + [AC_DEFINE(WITH_HILDON,[1],[Use Hildon])], + [PKG_CHECK_MODULES(HILDON, gtk+-3.0, [AC_DEFINE(WITH_GTK3,[1],[Use Gtk3])])]) + PKG_CHECK_MODULES(OSSO, libosso) PKG_CHECK_MODULES(GCONF, gconf-2.0) PKG_CHECK_MODULES(DBUS, dbus-1) PKG_CHECK_MODULES(X11, x11) PKG_CHECK_MODULES(OSSO_SYSTEMUI_DBUS, osso-systemui-dbus) PKG_CHECK_MODULES(DBUS_GLIB, dbus-glib-1) +PKG_CHECK_MODULES(CANBERRA, libcanberra) + +OLD_CFLAGS=$CFLAGS +CFLAGS="$CFLAGS $DBUS_CFLAGS" +AC_CHECK_TYPES([DBusBasicValue],,,[[#include ]]) + +CFLAGS="$OLD_CFLAGS $HILDON_CFLAGS -Werror" +AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[#include ]], [[g_thread_init();]])], + [AC_DEFINE([HAVE_G_THREAD_INIT],[],["g_thread_init() is deprecated"])], []) +CFLAGS=$OLD_CFLAGS AC_ARG_ENABLE(cast-checks, [ --disable-cast-checks compile with GLIB cast checks disabled],[cchecks=${enableval}],cchecks=yes) if test "x$cchecks" = "xno"; then diff --git a/src/dbus.c b/src/dbus.c index 41edf6f..ac3a538 100644 --- a/src/dbus.c +++ b/src/dbus.c @@ -2,7 +2,9 @@ #include #include #include +#ifdef WITH_HILDON #include +#endif #include #include #include @@ -11,6 +13,7 @@ #include #include "dbus.h" +#include "config.h" /* Those are supposed to be in some osso-locale.h file, can't find it */ #define LOCALE_CHANGED_INTERFACE "com.nokia.LocaleChangeNotification" @@ -71,8 +74,9 @@ handle_thermal_notification(system_ui_data *ui, const char *state) DBusMessage *msg; ca_context *c = 0; int ca_error; +#ifdef WITH_HILDON GtkWidget *banner; - +#endif dbus_send_message(ui->system_bus, dbus_message_new_method_call(MCE_SERVICE, MCE_REQUEST_PATH, @@ -104,7 +108,7 @@ handle_thermal_notification(system_ui_data *ui, const char *state) if (ca_error) SYSTEMUI_ERROR("Failed to play sound (%d, %s)", ca_error, ca_strerror(ca_error)); - +#ifdef WITH_HILDON banner = hildon_banner_show_information(NULL, NULL, dgettext("osso-powerup-shutdown", @@ -112,6 +116,7 @@ handle_thermal_notification(system_ui_data *ui, const char *state) hildon_banner_set_timeout(HILDON_BANNER(banner), 9000); gtk_widget_show_all(banner); WindowPriority_ShowWindow(banner, 300u); +#endif thermal_shutdown_started = TRUE; } } diff --git a/src/ipm.c b/src/ipm.c index 8bf138a..7a3e159 100644 --- a/src/ipm.c +++ b/src/ipm.c @@ -3,6 +3,8 @@ #include #include +#include "config.h" + struct window_priority { guint32 priority; @@ -70,7 +72,13 @@ ipm_show_window(GtkWidget *widget, unsigned int priority) "_HILDON_STACKING_LAYER"); XChangeProperty(gdk_x11_display_get_xdisplay(dpy), + +#ifdef WITH_GTK3 + gdk_x11_window_get_xid(gtk_widget_get_window(widget)), + hsl_atom, +#else gdk_x11_drawable_get_xid(widget->window), hsl_atom, +#endif XA_CARDINAL, 32, PropModeReplace, (unsigned char *)layer, 1); } @@ -105,7 +113,11 @@ ipm_hide_window(GtkWidget *widget) g_free(l->data); window_priority_list = g_slist_delete_link(window_priority_list, l); +#ifdef WITH_GTK3 + gtk_widget_hide(widget); +#else gtk_widget_hide_all(widget); +#endif #if 0 /* Why is that? */ g_slist_length(window_priority_list); diff --git a/src/systemui.c b/src/systemui.c index 27f715e..e9d5c3a 100644 --- a/src/systemui.c +++ b/src/systemui.c @@ -431,7 +431,9 @@ main(int argc, char **argv) build_layers_tab(); gtk_init(&argc, &argv); +#ifdef HAVE_G_THREAD_INIT g_thread_init(0); +#endif app_ui_data->icontheme = gtk_icon_theme_get_default(); app_ui_data->gc_client = gconf_client_get_default(); diff --git a/src/systemui.h b/src/systemui.h index 34f5ef2..014b284 100644 --- a/src/systemui.h +++ b/src/systemui.h @@ -27,6 +27,8 @@ #include #include +#include "config.h" + typedef struct { GTree *handlers; @@ -45,6 +47,7 @@ typedef struct int unk2; } system_ui_data; +#ifndef HAVE_DBUSBASICVALUE typedef struct { dbus_uint32_t first32; @@ -69,6 +72,7 @@ typedef union char *str; int fd; } DBusBasicValue; +#endif typedef struct {