diff options
-rw-r--r-- | CMakeLists.txt | 3 | ||||
-rw-r--r-- | debian/control | 1 | ||||
-rw-r--r-- | src/notifier.c | 11 | ||||
-rw-r--r-- | src/service.c | 17 |
4 files changed, 30 insertions, 2 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 9b64b00..db80c6f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,7 +41,8 @@ pkg_check_modules(SERVICE_DEPS REQUIRED glib-2.0>=2.36 gio-2.0>=2.36 gio-unix-2.0>=2.36 - libnotify>=0.7.6) + libnotify>=0.7.6 + url-dispatcher-1>=1) include_directories (SYSTEM ${SERVICE_DEPS_INCLUDE_DIRS}) diff --git a/debian/control b/debian/control index 4391580..d5725aa 100644 --- a/debian/control +++ b/debian/control @@ -5,6 +5,7 @@ Maintainer: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Build-Depends: cmake, libnotify-dev (>= 0.7.6), libglib2.0-dev (>= 2.36), + liburl-dispatcher1-dev, python:any, # for packaging debhelper (>= 9), diff --git a/src/notifier.c b/src/notifier.c index 5601825..f51032e 100644 --- a/src/notifier.c +++ b/src/notifier.c @@ -21,6 +21,8 @@ #include "dbus-shared.h" #include "notifier.h" +#include <url-dispatcher.h> + #include <libnotify/notify.h> #include <glib/gi18n.h> @@ -166,6 +168,14 @@ notification_clear (IndicatorPowerNotifier * self) } static void +on_battery_settings_clicked(NotifyNotification * nn G_GNUC_UNUSED, + char * action G_GNUC_UNUSED, + gpointer user_data G_GNUC_UNUSED) +{ + url_dispatch_send("settings:///system/battery", NULL, NULL); +} + +static void on_dismiss_clicked(NotifyNotification * nn G_GNUC_UNUSED, char * action G_GNUC_UNUSED, gpointer user_data G_GNUC_UNUSED) @@ -240,6 +250,7 @@ notification_show(IndicatorPowerNotifier * self) notify_notification_set_hint(nn, "x-canonical-snap-decisions-timeout", g_variant_new_int32(INT32_MAX)); notify_notification_set_timeout(nn, NOTIFY_EXPIRES_NEVER); notify_notification_add_action(nn, "dismiss", _("OK"), on_dismiss_clicked, NULL, NULL); + notify_notification_add_action(nn, "settings", _("Battery settings"), on_battery_settings_clicked, NULL, NULL); } /* if we can show it, keep it */ diff --git a/src/service.c b/src/service.c index 22b8dfb..cf7d808 100644 --- a/src/service.c +++ b/src/service.c @@ -20,6 +20,7 @@ #include <glib/gi18n.h> #include <gio/gio.h> +#include <url-dispatcher.h> #include "brightness.h" #include "dbus-shared.h" @@ -815,7 +816,12 @@ on_settings_activated (GSimpleAction * a G_GNUC_UNUSED, if (control_center_cmd == NULL) { - if ((!g_strcmp0 (g_getenv ("DESKTOP_SESSION"), "xubuntu")) || (!g_strcmp0 (g_getenv ("DESKTOP_SESSION"), "xfce"))) + if (g_getenv ("MIR_SOCKET") != NULL) + { + url_dispatch_send("settings:///system/battery", NULL, NULL); + return; + } + else if ((!g_strcmp0 (g_getenv ("DESKTOP_SESSION"), "xubuntu")) || (!g_strcmp0 (g_getenv ("DESKTOP_SESSION"), "xfce"))) { control_center_cmd = "xfce4-power-manager-settings"; } @@ -865,6 +871,14 @@ on_statistics_activated (GSimpleAction * a G_GNUC_UNUSED, } } +static void +on_phone_settings_activated (GSimpleAction * a G_GNUC_UNUSED, + GVariant * param G_GNUC_UNUSED, + gpointer gself G_GNUC_UNUSED) +{ + url_dispatch_send("settings:///system/battery", NULL, NULL); +} + /*** **** ***/ @@ -901,6 +915,7 @@ init_gactions (IndicatorPowerService * self) GActionEntry entries[] = { { "activate-settings", on_settings_activated }, + { "activate-phone-settings", on_phone_settings_activated }, { "activate-statistics", on_statistics_activated, "s" } }; |