diff options
-rw-r--r-- | CMakeLists.txt | 3 | ||||
-rw-r--r-- | debian/control | 1 | ||||
-rw-r--r-- | src/backend-dbus/actions.c | 13 |
3 files changed, 13 insertions, 4 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 3ed483b..72d9a5a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,7 +29,8 @@ find_package (PkgConfig REQUIRED) include (FindPkgConfig) pkg_check_modules (SERVICE REQUIRED glib-2.0>=2.36 - gio-unix-2.0>=2.36) + gio-unix-2.0>=2.36 + url-dispatcher-1>=1) include_directories (${SERVICE_INCLUDE_DIRS}) set (CC_WARNING_ARGS " -Wall -pedantic -Wextra -Wno-missing-field-initializers") diff --git a/debian/control b/debian/control index 528175c..77de6da 100644 --- a/debian/control +++ b/debian/control @@ -9,6 +9,7 @@ Build-Depends: cmake, intltool, libglib2.0-dev (>= 2.36), libgtest-dev, + liburl-dispatcher1-dev, python, Standards-Version: 3.9.3 Homepage: https://launchpad.net/indicator-session diff --git a/src/backend-dbus/actions.c b/src/backend-dbus/actions.c index 10be837..0fcdc08 100644 --- a/src/backend-dbus/actions.c +++ b/src/backend-dbus/actions.c @@ -19,6 +19,7 @@ #include <glib.h> #include <glib/gi18n.h> +#include <url-dispatcher.h> #include "dbus-end-session-dialog.h" #include "dbus-login1-manager.h" @@ -862,7 +863,9 @@ have_unity_control_center (void) static void my_settings (IndicatorSessionActions * self G_GNUC_UNUSED) { - if (have_unity_control_center ()) + if (g_getenv ("MIR_SOCKET") != NULL) + url_dispatch_send("settings:///system", NULL, NULL); + else if (have_unity_control_center ()) run_outside_app ("unity-control-center"); else run_outside_app ("gnome-control-center"); @@ -871,7 +874,9 @@ my_settings (IndicatorSessionActions * self G_GNUC_UNUSED) static void my_online_accounts (IndicatorSessionActions * self G_GNUC_UNUSED) { - if (have_unity_control_center ()) + if (g_getenv ("MIR_SOCKET") != NULL) + url_dispatch_send("settings:///system/online-accounts", NULL, NULL); + else if (have_unity_control_center ()) run_outside_app ("unity-control-center credentials"); else run_outside_app ("gnome-control-center credentials"); @@ -880,7 +885,9 @@ my_online_accounts (IndicatorSessionActions * self G_GNUC_UNUSED) static void my_about (IndicatorSessionActions * self G_GNUC_UNUSED) { - if (have_unity_control_center ()) + if (g_getenv ("MIR_SOCKET") != NULL) + url_dispatch_send("settings:///system/about", NULL, NULL); + else if (have_unity_control_center ()) run_outside_app ("unity-control-center info"); else run_outside_app ("gnome-control-center info"); |