aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2023-02-13 22:02:46 +0100
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2023-02-13 22:57:53 +0100
commit8c4df6215a986695edc6c6530f6d6388ea9640d5 (patch)
treeedbaa4c0de4c25d7e6ba5f2db9f46b819b6e6699 /src
parentf9d1e0d63e454dbd280342ea42aa741d7a6a2003 (diff)
downloadayatana-indicator-session-8c4df6215a986695edc6c6530f6d6388ea9640d5.tar.gz
ayatana-indicator-session-8c4df6215a986695edc6c6530f6d6388ea9640d5.tar.bz2
ayatana-indicator-session-8c4df6215a986695edc6c6530f6d6388ea9640d5.zip
UnitySession -> LomiriSession: Re-rename related changes that we erroneously hid away as Ayatana DesktopSession.
This brings full Lomiri integration finally. Until now, the session indicator somehow seemed to work, but in some odd ways. On the phone, the session indicator would fallback to direct systemd interaction while on Lomiri in Debian, it would fallback to Zenity dialogs (most of all because Zenity got installed by some other package as a dependency). With this massive renaming change, ayatana-indicator-session should now smoothly interact with the com.lomiri.Shell.Session DBus interface and also with the mimicked GNOME SessionManager End-Session-Dialog interface. As a downside, this change nearly fully removes Unity7 support which would need to be brought back +/- as a full duplicate of what we do for Lomiri. But as noone has dared integrating Ayatana Indicator Session with Unity7, so far, we should be able to live with that for now. Fixes https://github.com/AyatanaIndicators/ayatana-indicator-session/issues/82
Diffstat (limited to 'src')
-rw-r--r--src/backend-dbus/CMakeLists.txt7
-rw-r--r--src/backend-dbus/actions.c86
-rw-r--r--src/backend-dbus/com.lomiri.Shell.Session.xml (renamed from src/backend-dbus/org.ayatana.Desktop.Session.xml)2
3 files changed, 48 insertions, 47 deletions
diff --git a/src/backend-dbus/CMakeLists.txt b/src/backend-dbus/CMakeLists.txt
index 5c99e9f..bd87e27 100644
--- a/src/backend-dbus/CMakeLists.txt
+++ b/src/backend-dbus/CMakeLists.txt
@@ -43,9 +43,10 @@ add_gdbus_codegen (BACKEND_GENERATED_SOURCES dbus-end-session-dialog
org.gnome.SessionManager
${CMAKE_CURRENT_SOURCE_DIR}/org.gnome.SessionManager.EndSessionDialog.xml)
-add_gdbus_codegen (BACKEND_GENERATED_SOURCES desktop-session
- org.ayatana
- ${CMAKE_CURRENT_SOURCE_DIR}/org.ayatana.Desktop.Session.xml)
+add_gdbus_codegen_with_namespace (BACKEND_GENERATED_SOURCES lomiri-session
+ com.lomiri
+ Lomiri
+ ${CMAKE_CURRENT_SOURCE_DIR}/com.lomiri.Shell.Session.xml)
set (SOURCES actions.c guest.c users.c backend-dbus.c utils.c)
diff --git a/src/backend-dbus/actions.c b/src/backend-dbus/actions.c
index 9450865..d735f00 100644
--- a/src/backend-dbus/actions.c
+++ b/src/backend-dbus/actions.c
@@ -27,7 +27,7 @@
#include "dbus-webcredentials.h"
#include "gnome-screen-saver.h"
#include "gnome-session-manager.h"
-#include "desktop-session.h"
+#include "lomiri-session.h"
#include "actions.h"
@@ -48,7 +48,7 @@ struct _IndicatorSessionActionsDbusPrivate
GSettings * indicator_settings;
GnomeScreenSaver * screen_saver;
GnomeSessionManager * session_manager;
- DesktopSession * desktop_session;
+ LomiriShellSession * lomiri_session;
Login1Manager * login1_manager;
GCancellable * login1_manager_cancellable;
Login1Seat * login1_seat;
@@ -92,7 +92,7 @@ typedef enum
{
PROMPT_NONE,
PROMPT_WITH_ZENITY,
- PROMPT_WITH_AYATANA,
+ PROMPT_WITH_LOMIRI,
PROMPT_WITH_MATE,
PROMPT_WITH_BUDGIE,
PROMPT_WITH_XFCE,
@@ -121,13 +121,13 @@ get_prompt_status (IndicatorSessionActionsDbus * self)
if ((prompt == PROMPT_NONE) && ayatana_common_utils_have_xfce_program ("xfce4-session-logout"))
prompt = PROMPT_WITH_XFCE;
- /* can we use the Unity/Ayatana prompt? */
+ /* can we use Lomiri prompt? */
if ((prompt == PROMPT_NONE) && p && p->end_session_dialog)
{
GDBusProxy * proxy = G_DBUS_PROXY (p->end_session_dialog);
char * name = g_dbus_proxy_get_name_owner (proxy);
if (name != NULL)
- prompt = PROMPT_WITH_AYATANA;
+ prompt = PROMPT_WITH_LOMIRI;
g_free (name);
}
@@ -219,16 +219,16 @@ on_screensaver_proxy_ready (GObject * o G_GNUC_UNUSED, GAsyncResult * res, gpoin
}
static void
-on_desktop_proxy_ready (GObject * o G_GNUC_UNUSED, GAsyncResult * res, gpointer gself)
+on_lomiri_proxy_ready (GObject * o G_GNUC_UNUSED, GAsyncResult * res, gpointer gself)
{
GError * err;
- DesktopSession * us;
+ LomiriShellSession * us;
err = NULL;
- us = desktop_session_proxy_new_for_bus_finish (res, &err);
+ us = lomiri_shell_session_proxy_new_for_bus_finish (res, &err);
if (err == NULL)
{
- INDICATOR_SESSION_ACTIONS_DBUS(gself)->priv->desktop_session = us;
+ INDICATOR_SESSION_ACTIONS_DBUS(gself)->priv->lomiri_session = us;
}
log_and_clear_error (&err, G_STRLOC, G_STRFUNC);
@@ -420,7 +420,7 @@ my_can_reboot (IndicatorSessionActions * actions)
/* Shutdown and Restart are the same dialog prompt in Unity,
so disable the redundant 'Restart' menuitem in that mode */
if (!g_settings_get_boolean (p->indicator_settings, "suppress-shutdown-menuitem"))
- if (ayatana_common_utils_is_unity())
+ if (ayatana_common_utils_is_unity() || ayatana_common_utils_is_lomiri())
return FALSE;
return TRUE;
@@ -547,14 +547,14 @@ logout_now_gnome_session_manager (IndicatorSessionActionsDbus * self)
}
static void
-on_desktop_logout_response (GObject * o,
- GAsyncResult * res,
- gpointer gself)
+on_lomiri_logout_response (GObject * o,
+ GAsyncResult * res,
+ gpointer gself)
{
GError * error;
error = NULL;
- desktop_session_call_request_logout_finish (DESKTOP_SESSION(o), res, &error);
+ lomiri_shell_session_call_request_logout_finish (LOMIRI_SHELL_SESSION(o), res, &error);
if (error != NULL)
{
@@ -574,15 +574,15 @@ logout_now_desktop (IndicatorSessionActionsDbus * self)
priv_t * p = self->priv;
gboolean called = FALSE;
- if (is_owned_proxy (p->desktop_session))
+ if (is_owned_proxy (p->lomiri_session))
{
called = TRUE;
- g_debug ("calling desktop_session_call_request_logout()");
- desktop_session_call_request_logout (p->desktop_session,
- p->cancellable,
- on_desktop_logout_response,
- self);
- }
+ g_debug ("calling lomiri_shell_session_call_request_logout()");
+ lomiri_shell_session_call_request_logout (p->lomiri_session,
+ p->cancellable,
+ on_lomiri_logout_response,
+ self);
+ }
return called;
}
@@ -675,7 +675,7 @@ on_open_end_session_dialog_ready (GObject * o,
}
static void
-show_desktop_end_session_dialog (IndicatorSessionActionsDbus * self, int type)
+show_lomiri_end_session_dialog (IndicatorSessionActionsDbus * self, int type)
{
priv_t * p = INDICATOR_SESSION_ACTIONS_DBUS(self)->priv;
gpointer o = p->end_session_dialog;
@@ -761,8 +761,8 @@ my_logout (IndicatorSessionActions * actions)
switch (get_prompt_status (self))
{
- case PROMPT_WITH_AYATANA:
- show_desktop_end_session_dialog (self, END_SESSION_TYPE_LOGOUT);
+ case PROMPT_WITH_LOMIRI:
+ show_lomiri_end_session_dialog (self, END_SESSION_TYPE_LOGOUT);
break;
case PROMPT_WITH_MATE:
@@ -809,8 +809,8 @@ my_reboot (IndicatorSessionActions * actions)
switch (get_prompt_status (self))
{
- case PROMPT_WITH_AYATANA:
- show_desktop_end_session_dialog (self, END_SESSION_TYPE_REBOOT);
+ case PROMPT_WITH_LOMIRI:
+ show_lomiri_end_session_dialog (self, END_SESSION_TYPE_REBOOT);
break;
case PROMPT_WITH_MATE:
@@ -847,13 +847,13 @@ my_power_off (IndicatorSessionActions * actions)
switch (get_prompt_status (self))
{
- case PROMPT_WITH_AYATANA:
+ case PROMPT_WITH_LOMIRI:
/* NB: TYPE_REBOOT instead of TYPE_SHUTDOWN because
- the latter adds lock & logout options in Unity... */
- if (ayatana_common_utils_is_unity())
- show_desktop_end_session_dialog (self, END_SESSION_TYPE_REBOOT);
+ the latter adds lock & logout options in Unity and Lomiri... */
+ if (ayatana_common_utils_is_unity() || ayatana_common_utils_is_lomiri())
+ show_lomiri_end_session_dialog (self, END_SESSION_TYPE_REBOOT);
else
- show_desktop_end_session_dialog (self, END_SESSION_TYPE_SHUTDOWN);
+ show_lomiri_end_session_dialog (self, END_SESSION_TYPE_SHUTDOWN);
break;
case PROMPT_WITH_MATE:
@@ -983,15 +983,15 @@ lock_current_session (IndicatorSessionActions * self, gboolean immediate)
{
priv_t * p = INDICATOR_SESSION_ACTIONS_DBUS(self)->priv;
- if (is_owned_proxy (p->desktop_session))
+ if (is_owned_proxy (p->lomiri_session))
{
if (immediate)
{
- desktop_session_call_prompt_lock (p->desktop_session, p->cancellable, NULL, NULL);
+ lomiri_shell_session_call_prompt_lock (p->lomiri_session, p->cancellable, NULL, NULL);
}
else
{
- desktop_session_call_lock (p->desktop_session, p->cancellable, NULL, NULL);
+ lomiri_shell_session_call_lock (p->lomiri_session, p->cancellable, NULL, NULL);
}
}
else if (ayatana_common_utils_have_mate_program ("mate-screensaver-command"))
@@ -1100,7 +1100,7 @@ my_dispose (GObject * o)
g_clear_object (&p->screen_saver);
g_clear_object (&p->session_manager);
- g_clear_object (&p->desktop_session);
+ g_clear_object (&p->lomiri_session);
set_dm_seat (self, NULL);
set_login1_manager (self, NULL);
set_login1_seat (self, NULL);
@@ -1203,13 +1203,13 @@ indicator_session_actions_dbus_init (IndicatorSessionActionsDbus * self)
on_screensaver_proxy_ready,
self);
- desktop_session_proxy_new_for_bus (G_BUS_TYPE_SESSION,
- G_DBUS_PROXY_FLAGS_NONE,
- "org.ayatana.Desktop",
- "/org/ayatana/Desktop/Session",
- p->cancellable,
- on_desktop_proxy_ready,
- self);
+ lomiri_shell_session_proxy_new_for_bus (G_BUS_TYPE_SESSION,
+ G_DBUS_PROXY_FLAGS_NONE,
+ "com.lomiri.Shell",
+ "/com/lomiri/Shell/Session",
+ p->cancellable,
+ on_lomiri_proxy_ready,
+ self);
gnome_session_manager_proxy_new_for_bus (G_BUS_TYPE_SESSION,
G_DBUS_PROXY_FLAGS_NONE,
@@ -1229,7 +1229,7 @@ indicator_session_actions_dbus_init (IndicatorSessionActionsDbus * self)
end_session_dialog_proxy_new_for_bus (G_BUS_TYPE_SESSION,
G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
- "org.ayatana.Desktop",
+ "com.lomiri.Shell",
"/org/gnome/SessionManager/EndSessionDialog",
p->cancellable,
on_end_session_dialog_proxy_ready,
diff --git a/src/backend-dbus/org.ayatana.Desktop.Session.xml b/src/backend-dbus/com.lomiri.Shell.Session.xml
index 9257b91..0e1e903 100644
--- a/src/backend-dbus/org.ayatana.Desktop.Session.xml
+++ b/src/backend-dbus/com.lomiri.Shell.Session.xml
@@ -2,7 +2,7 @@
"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
- <interface name="org.ayatana.Desktop.Session">
+ <interface name="com.lomiri.Shell.Session">
<method name="Lock" />
<method name="PromptLock" />
<method name="RequestLogout" />