diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/CMakeLists.txt | 6 | ||||
-rw-r--r-- | src/backend-dbus/actions.c | 19 |
2 files changed, 24 insertions, 1 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2a3acfd..7ee1692 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -16,13 +16,17 @@ add_library (libayatanaindicatorsessionservice STATIC include_directories(${SERVICE_INCLUDE_DIRS}) link_directories(${SERVICE_LIBRARY_DIRS}) +if(URLDISPATCHER_FOUND) + add_definitions( -DHAS_URLDISPATCHER ) +endif() + set (SERVICE_EXEC "ayatana-indicator-session-service") set_property (SOURCE main.c APPEND PROPERTY COMPILE_DEFINITIONS GETTEXT_PACKAGE="${GETTEXT_PACKAGE}" LOCALEDIR="${CMAKE_INSTALL_FULL_LOCALEDIR}") add_executable (${SERVICE_EXEC} main.c) -target_link_libraries (${SERVICE_EXEC} libayatanaindicatorsessionservice backenddbus ${SERVICE_LIBRARIES} ${GCOV_LIBS}) +target_link_libraries (${SERVICE_EXEC} libayatanaindicatorsessionservice backenddbus ${SERVICE_LIBRARIES} ${GCOV_LIBS} ${URLDISPATCHER_LIBRARIES}) install (TARGETS ${SERVICE_EXEC} RUNTIME DESTINATION ${CMAKE_INSTALL_FULL_PKGLIBEXECDIR}) # common properties diff --git a/src/backend-dbus/actions.c b/src/backend-dbus/actions.c index e3991fb..db7d3d5 100644 --- a/src/backend-dbus/actions.c +++ b/src/backend-dbus/actions.c @@ -20,6 +20,10 @@ #include <glib.h> #include <glib/gi18n.h> +#ifdef HAS_URLDISPATCHER +# include <url-dispatcher.h> +#endif + #include "dbus-end-session-dialog.h" #include "dbus-login1-manager.h" #include "dbus-webcredentials.h" @@ -1060,6 +1064,11 @@ have_gnome_control_center (void) static void my_settings (IndicatorSessionActions * self G_GNUC_UNUSED) { +#ifdef HAS_URLDISPATCHER + if (g_getenv ("MIR_SOCKET") != NULL) + url_dispatch_send("settings:///system", NULL, NULL); + else +#endif if (have_unity_control_center ()) run_outside_app ("unity-control-center"); else if (have_gnome_control_center()) @@ -1077,6 +1086,11 @@ my_settings (IndicatorSessionActions * self G_GNUC_UNUSED) static void my_online_accounts (IndicatorSessionActions * self G_GNUC_UNUSED) { +#ifdef HAS_URLDISPATCHER + if (g_getenv ("MIR_SOCKET") != NULL) + url_dispatch_send("settings:///system/online-accounts", NULL, NULL); + else +#endif if (have_unity_control_center ()) run_outside_app ("unity-control-center credentials"); else if (have_gnome_control_center()) @@ -1090,6 +1104,11 @@ my_online_accounts (IndicatorSessionActions * self G_GNUC_UNUSED) static void my_about (IndicatorSessionActions * self G_GNUC_UNUSED) { +#ifdef HAS_URLDISPATCHER + if (g_getenv ("MIR_SOCKET") != NULL) + url_dispatch_send("settings:///system/about", NULL, NULL); + else +#endif if (have_unity_control_center ()) run_outside_app ("unity-control-center info"); else if (have_gnome_control_center()) |