diff options
author | Robert Tari <robert@tari.in> | 2023-11-02 14:41:30 +0100 |
---|---|---|
committer | Robert Tari <robert@tari.in> | 2023-11-02 14:41:30 +0100 |
commit | 4a9824a84f44529254388cec9f08d80488f3c938 (patch) | |
tree | fc083a25efdf7f3d948172a2e2609fcb301ac190 | |
parent | 9e19aaef2031739d8ddba99aafc8f9f2d5d740fd (diff) | |
parent | eca237d3b0ba0cccbe8855db1fda53e70e4ee8ec (diff) | |
download | ayatana-indicator-session-4a9824a84f44529254388cec9f08d80488f3c938.tar.gz ayatana-indicator-session-4a9824a84f44529254388cec9f08d80488f3c938.tar.bz2 ayatana-indicator-session-4a9824a84f44529254388cec9f08d80488f3c938.zip |
Merge branch 'sunweaver-pr/rda-optional'
Attributes GH PR #91: https://github.com/AyatanaIndicators/ayatana-indicator-session/pull/91
-rw-r--r-- | CMakeLists.txt | 18 | ||||
-rw-r--r-- | src/service.c | 16 |
2 files changed, 26 insertions, 8 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index c14ca59..848a1df 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,6 +14,7 @@ set (GETTEXT_PACKAGE "ayatana-indicator-session") option(ENABLE_TESTS "Enable all tests and checks" OFF) option(ENABLE_COVERAGE "Enable coverage reports (includes enabling all tests and checks)" OFF) option(ENABLE_WERROR "Treat all build warnings as errors" OFF) +option(ENABLE_RDA "Enable RDA (remote desktop awareness)" ON) if(ENABLE_COVERAGE) set(ENABLE_TESTS ON) @@ -45,11 +46,18 @@ include (GNUInstallDirs) ## find_package (PkgConfig REQUIRED) include (FindPkgConfig) -pkg_check_modules (SERVICE REQUIRED - libayatana-common>=0.9.2 - glib-2.0>=2.36 - gio-unix-2.0>=2.36 - rda) +set (SERVICE REQUIRED + libayatana-common>=0.9.2 + glib-2.0>=2.36 + gio-unix-2.0>=2.36) + +if (ENABLE_RDA) + list (APPEND SERVICE rda) + add_definitions (-DRDA_ENABLED) +endif () + +pkg_check_modules (SERVICE REQUIRED ${SERVICE}) + include_directories (${SERVICE_INCLUDE_DIRS}) set (ARCHIVE_NAME ${CMAKE_PROJECT_NAME}-${PROJECT_VERSION}) diff --git a/src/service.c b/src/service.c index 7711f97..c3122cd 100644 --- a/src/service.c +++ b/src/service.c @@ -22,7 +22,9 @@ #include <glib/gi18n.h> #include <gio/gio.h> #include <ayatana/common/utils.h> -#include <rda/rda.h> +#ifdef RDA_ENABLED +# include <rda/rda.h> +#endif /* RDA_ENABLED */ #include "backend.h" #include "recoverable-problem.h" #include "service.h" @@ -885,12 +887,14 @@ create_session_section (IndicatorSessionService * self, int profile) } else { +#ifdef RDA_ENABLED gboolean bSuspendable = rda_session_can_be_suspended (); if (bSuspendable) { g_menu_append (menu, _("Suspend Remote Session"), "indicator.remotesuspend"); } +#endif } return G_MENU_MODEL (menu); @@ -1016,7 +1020,9 @@ on_logout_activated (GSimpleAction * a G_GNUC_UNUSED, if (!self->priv->bLocal) { +#ifdef RDA_ENABLED rda_session_terminate (); +#endif /* RDA_ENABLED */ } else { @@ -1097,9 +1103,11 @@ static void on_custom_activated (GSimpleAction *pAction G_GNUC_UNUSED, GVariant ayatana_common_utils_open_url (sUri); } -static void onRemoteSuspend (GSimpleAction *pAction G_GNUC_UNUSED, GVariant *pParam G_GNUC_UNUSED, gpointer pUserData) +static void on_remote_suspend (GSimpleAction *pAction G_GNUC_UNUSED, GVariant *pParam G_GNUC_UNUSED, gpointer pUserData) { +#ifdef RDA_ENABLED rda_session_suspend (); +#endif /* RDA_ENABLED */ } static void @@ -1124,7 +1132,7 @@ init_gactions (IndicatorSessionService * self) { "suspend", on_suspend_activated }, { "power-off", on_power_off_activated }, { "custom", on_custom_activated }, - { "remotesuspend", onRemoteSuspend } + { "remotesuspend", on_remote_suspend } }; p->actions = g_simple_action_group_new (); @@ -1413,7 +1421,9 @@ indicator_session_service_init (IndicatorSessionService * self) } self->priv = p; +#if RDA_ENABLED self->priv->bLocal = rda_session_is_local (); +#endif /* RDA_ENABLED */ /* init the backend objects */ p->cancellable = g_cancellable_new (); |