aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Tari <robert@tari.in>2023-11-02 14:41:30 +0100
committerRobert Tari <robert@tari.in>2023-11-02 14:41:30 +0100
commit4a9824a84f44529254388cec9f08d80488f3c938 (patch)
treefc083a25efdf7f3d948172a2e2609fcb301ac190
parent9e19aaef2031739d8ddba99aafc8f9f2d5d740fd (diff)
parenteca237d3b0ba0cccbe8855db1fda53e70e4ee8ec (diff)
downloadayatana-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.txt18
-rw-r--r--src/service.c16
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 ();