mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
mate-base/mate-session-manager: remove old
Signed-off-by: Mart Raudsepp <leio@gentoo.org> Package-Manager: Portage-2.3.49, Repoman-2.3.11
This commit is contained in:
@@ -1,5 +1 @@
|
||||
DIST mate-session-manager-1.12.2.tar.xz 538832 BLAKE2B 6442fae3076e2ac54b4705326469f1ccc4c4daca8cc06bcfb720a89e347a725e46c18e7b6d987043cb1a9371f73c9cc82324c0d1d6fdf97bbed8c894ae2d398d SHA512 4b4a3ecb0f7cbb25e17db8c5833f789858c94fb236ed60b9e98f59cffa320ec32c2b1960fdcbb9c2c9f476ed76cb1f37c3e07746c7c90e08a0dbcc62aac9793e
|
||||
DIST mate-session-manager-1.14.1.tar.xz 574804 BLAKE2B af3ed0abec15a7bf2002d965252b07eb5327c2fc351b1f475c0afc64011a7b18d21d0b4f3d40f56282ea11b8055e21e52ac0a2df9e509442b2e43eeeb549c9af SHA512 993f314c887bca8d8e0b9450f0e62686e133ea16ee2b6675ff69766564d47a4e7d48581867e8d5e8395ee2e3b1735b121f16cb1be22c7da29015a58f98edd638
|
||||
DIST mate-session-manager-1.16.1.tar.xz 574540 BLAKE2B 40abb2655acf84c90a8805e967817d1ef4739a1278369f5b632071302d22a9c6cf15d83d69e8ccf7503dc19f8c39844f14afa976a96f905dfd355a7071a609a1 SHA512 fdce8351b5541e7e8455659c1107be2976a24602e61010261fd8d1931d07298033d15fda43163fabc2bfcd6b42120c68e377278b820100686a8ef8e36852ff0e
|
||||
DIST mate-session-manager-1.18.0.tar.xz 578256 BLAKE2B ef58007798ac15934b6e8c071ce97ad3bd52d47fdbf639ac7a2e6c1120d67492e77a2d1159700a17a6a6321645b4a63e6de2c493fdc26d65aba4e98f7262c6c5 SHA512 0b1299eed5a745112a9976a85965847fc7a579e161236f4d661cf08a1292037aa8246bd3e3efcf3d0c6ea8b005e9dfc33cec797c8dc48615f7bc88ce5d351ba8
|
||||
DIST mate-session-manager-1.18.2.tar.xz 570336 BLAKE2B d1fd8f6a037fa38833d4aae05dcc9ed98ff192c712819342a77d19fb00e09febaa90fd0396048a3cee64ea424c6a72e8ae90f067d61929ef524825c97d500f8e SHA512 e3d3e2524cd0d00930b5c6b81134b969555f00550d23a357d426a6f0d475884ce6ab16be365fd5e95801dd53c250069ad091dec6c93f2ab70818460fbef4765e
|
||||
|
||||
@@ -1,535 +0,0 @@
|
||||
diff -burN a/capplet/gsm-properties-dialog.c b/capplet/gsm-properties-dialog.c
|
||||
--- a/capplet/gsm-properties-dialog.c 2012-02-29 22:03:08.000000000 +0100
|
||||
+++ b/capplet/gsm-properties-dialog.c 2012-08-08 12:16:37.527332034 +0200
|
||||
@@ -26,6 +26,8 @@
|
||||
#include <glib.h>
|
||||
#include <glib/gi18n.h>
|
||||
#include <gtk/gtk.h>
|
||||
+#include <dbus/dbus-glib.h>
|
||||
+#include <dbus/dbus-glib-lowlevel.h>
|
||||
|
||||
#include <mateconf/mateconf-client.h>
|
||||
|
||||
@@ -36,6 +38,11 @@
|
||||
#include "gsp-app.h"
|
||||
#include "gsp-app-manager.h"
|
||||
|
||||
+
|
||||
+#define GSM_SERVICE_DBUS "org.gnome.SessionManager"
|
||||
+#define GSM_PATH_DBUS "/org.gnome.SessionManager"
|
||||
+#define GSM_INTERFACE_DBUS "org.gnome.SessionManager"
|
||||
+
|
||||
#define GSM_PROPERTIES_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSM_TYPE_PROPERTIES_DIALOG, GsmPropertiesDialogPrivate))
|
||||
|
||||
#define IS_STRING_EMPTY(x) ((x)==NULL||(x)[0]=='\0')
|
||||
@@ -50,6 +57,7 @@
|
||||
#define CAPPLET_DELETE_WIDGET_NAME "session_properties_delete_button"
|
||||
#define CAPPLET_EDIT_WIDGET_NAME "session_properties_edit_button"
|
||||
#define CAPPLET_SAVE_WIDGET_NAME "session_properties_save_button"
|
||||
+#define CAPPLET_SESSION_SAVED_WIDGET_NAME "session_properties_session_saved_label"
|
||||
#define CAPPLET_REMEMBER_WIDGET_NAME "session_properties_remember_toggle"
|
||||
|
||||
#define STARTUP_APP_ICON "system-run"
|
||||
@@ -493,10 +501,66 @@
|
||||
}
|
||||
|
||||
static void
|
||||
+session_saved_message (GsmPropertiesDialog *dialog,
|
||||
+ const char *msg,
|
||||
+ gboolean is_error)
|
||||
+{
|
||||
+ GtkLabel *label;
|
||||
+ gchar *markup;
|
||||
+
|
||||
+ label = GTK_LABEL (gtk_builder_get_object (dialog->priv->xml, CAPPLET_SESSION_SAVED_WIDGET_NAME));
|
||||
+ if (is_error)
|
||||
+ markup = g_markup_printf_escaped ("<span foreground=\"red\">%s</span>", msg);
|
||||
+ else
|
||||
+ markup = g_markup_escape_text (msg, -1);
|
||||
+
|
||||
+ gtk_label_set_markup (label, markup);
|
||||
+ g_free (markup);
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+session_saved_cb (DBusGProxy *proxy,
|
||||
+ DBusGProxyCall *call_id,
|
||||
+ void *user_data)
|
||||
+{
|
||||
+ gboolean res;
|
||||
+ GsmPropertiesDialog *dialog = user_data;
|
||||
+
|
||||
+ res = dbus_g_proxy_end_call (proxy, call_id, NULL, G_TYPE_INVALID);
|
||||
+ if (res)
|
||||
+ session_saved_message (dialog, _("Your session has been saved."), FALSE);
|
||||
+ else
|
||||
+ session_saved_message (dialog, _("Failed to save session"), TRUE);
|
||||
+
|
||||
+ g_object_unref (proxy);
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
on_save_session_clicked (GtkWidget *widget,
|
||||
GsmPropertiesDialog *dialog)
|
||||
{
|
||||
- g_debug ("Session saving is not implemented yet!");
|
||||
+ DBusGConnection *conn;
|
||||
+ DBusGProxy *proxy;
|
||||
+ DBusGProxyCall *call;
|
||||
+
|
||||
+ conn = dbus_g_bus_get (DBUS_BUS_SESSION, NULL);
|
||||
+ if (conn == NULL) {
|
||||
+ session_saved_message (dialog, _("Could not connect to the session bus"), TRUE);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ proxy = dbus_g_proxy_new_for_name (conn, GSM_SERVICE_DBUS, GSM_PATH_DBUS, GSM_INTERFACE_DBUS);
|
||||
+ if (proxy == NULL) {
|
||||
+ session_saved_message (dialog, _("Could not connect to the session manager"), TRUE);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ call = dbus_g_proxy_begin_call (proxy, "SaveSession", session_saved_cb, dialog, NULL, G_TYPE_INVALID);
|
||||
+ if (call == NULL) {
|
||||
+ session_saved_message (dialog, _("Failed to save session"), TRUE);
|
||||
+ g_object_unref (proxy);
|
||||
+ return;
|
||||
+ }
|
||||
}
|
||||
|
||||
static void
|
||||
diff -burN a/configure.ac b/configure.ac
|
||||
--- a/configure.ac 2012-02-29 22:03:09.000000000 +0100
|
||||
+++ b/configure.ac 2012-08-08 12:18:58.740336360 +0200
|
||||
@@ -75,6 +75,7 @@
|
||||
PKG_CHECK_MODULES(SESSION_PROPERTIES,
|
||||
glib-2.0 >= $GLIB_REQUIRED
|
||||
gtk+-$GTK_API_VERSION >= $GTK_REQUIRED
|
||||
+ dbus-glib-1 >= $DBUS_GLIB_REQUIRED
|
||||
)
|
||||
|
||||
PKG_CHECK_MODULES(SM, sm)
|
||||
diff -burN a/data/session-properties.ui b/data/session-properties.ui
|
||||
--- a/data/session-properties.ui 2012-02-29 22:03:08.000000000 +0100
|
||||
+++ b/data/session-properties.ui 2012-08-08 12:22:36.619343035 +0200
|
||||
@@ -148,6 +148,7 @@
|
||||
<property name="visible">True</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="session_properties_save_button">
|
||||
+ <property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
<child>
|
||||
@@ -191,6 +192,17 @@
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
+ <child>
|
||||
+ <object class="GtkLabel" id="session_properties_session_saved_label">
|
||||
+ <property name="visible">True</property>
|
||||
+ <property name="wrap">True</property>
|
||||
+ </object>
|
||||
+ <packing>
|
||||
+ <property name="expand">False</property>
|
||||
+ <property name="fill">False</property>
|
||||
+ <property name="position">2</property>
|
||||
+ </packing>
|
||||
+ </child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="position">1</property>
|
||||
diff -burN a/mate-session/gsm-client.c b/mate-session/gsm-client.c
|
||||
--- a/mate-session/gsm-client.c 2012-02-29 22:03:08.000000000 +0100
|
||||
+++ b/mate-session/gsm-client.c 2012-08-08 12:24:20.120346205 +0200
|
||||
@@ -510,6 +510,17 @@
|
||||
g_signal_emit (client, signals[DISCONNECTED], 0);
|
||||
}
|
||||
|
||||
+gboolean
|
||||
+gsm_client_request_save (GsmClient *client,
|
||||
+ guint flags,
|
||||
+ GError **error)
|
||||
+{
|
||||
+ g_return_val_if_fail (GSM_IS_CLIENT (client), FALSE);
|
||||
+
|
||||
+ return GSM_CLIENT_GET_CLASS (client)->impl_request_save (client, flags, error);
|
||||
+}
|
||||
+
|
||||
+
|
||||
GKeyFile *
|
||||
gsm_client_save (GsmClient *client,
|
||||
GError **error)
|
||||
diff -burN a/mate-session/gsm-client.h b/mate-session/gsm-client.h
|
||||
--- a/mate-session/gsm-client.h 2012-02-29 22:03:09.000000000 +0100
|
||||
+++ b/mate-session/gsm-client.h 2012-08-08 12:26:38.848350455 +0200
|
||||
@@ -94,6 +94,9 @@
|
||||
GError **error);
|
||||
gboolean (*impl_stop) (GsmClient *client,
|
||||
GError **error);
|
||||
+ gboolean (*impl_request_save) (GsmClient *client,
|
||||
+ guint flags,
|
||||
+ GError **error);
|
||||
GKeyFile * (*impl_save) (GsmClient *client,
|
||||
GError **error);
|
||||
};
|
||||
@@ -139,6 +142,10 @@
|
||||
|
||||
void gsm_client_disconnected (GsmClient *client);
|
||||
|
||||
+gboolean gsm_client_request_save (GsmClient *client,
|
||||
+ guint flags,
|
||||
+ GError **error);
|
||||
+
|
||||
GKeyFile *gsm_client_save (GsmClient *client,
|
||||
GError **error);
|
||||
/* exported to bus */
|
||||
diff -burN a/mate-session/gsm-dbus-client.c b/mate-session/gsm-dbus-client.c
|
||||
--- a/mate-session/gsm-dbus-client.c 2012-02-29 22:03:08.000000000 +0100
|
||||
+++ b/mate-session/gsm-dbus-client.c 2012-08-08 12:38:15.393371794 +0200
|
||||
@@ -413,6 +413,19 @@
|
||||
G_OBJECT_CLASS (gsm_dbus_client_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
+static gboolean
|
||||
+dbus_client_request_save (GsmClient *client,
|
||||
+ guint flags,
|
||||
+ GError **error)
|
||||
+{
|
||||
+ g_debug ("GsmDBusClient: sending save request to client with id %s",
|
||||
+ gsm_client_peek_id (client));
|
||||
+
|
||||
+ /* FIXME: The protocol does not support this */
|
||||
+
|
||||
+ return FALSE;
|
||||
+}
|
||||
+
|
||||
static GKeyFile *
|
||||
dbus_client_save (GsmClient *client,
|
||||
GError **error)
|
||||
@@ -665,6 +678,7 @@
|
||||
object_class->set_property = gsm_dbus_client_set_property;
|
||||
object_class->dispose = gsm_dbus_client_dispose;
|
||||
|
||||
+ client_class->impl_request_save = dbus_client_request_save;
|
||||
client_class->impl_save = dbus_client_save;
|
||||
client_class->impl_stop = dbus_client_stop;
|
||||
client_class->impl_query_end_session = dbus_client_query_end_session;
|
||||
diff -burN a/mate-session/gsm-manager.c b/mate-session/gsm-manager.c
|
||||
--- a/mate-session/gsm-manager.c 2012-02-29 22:03:09.000000000 +0100
|
||||
+++ b/mate-session/gsm-manager.c 2012-08-08 12:47:24.627388620 +0200
|
||||
@@ -68,6 +68,7 @@
|
||||
#define GSM_MANAGER_DBUS_NAME "org.gnome.SessionManager"
|
||||
|
||||
#define GSM_MANAGER_PHASE_TIMEOUT 30 /* seconds */
|
||||
+#define GSM_MANAGER_SAVE_SESSION_TIMEOUT 2
|
||||
|
||||
#define MDM_FLEXISERVER_COMMAND "mdmflexiserver"
|
||||
#define MDM_FLEXISERVER_ARGS "--startnew Standard"
|
||||
@@ -1176,6 +1177,69 @@
|
||||
|
||||
}
|
||||
|
||||
+static gboolean
|
||||
+_client_request_save (GsmClient *client,
|
||||
+ ClientEndSessionData *data)
|
||||
+{
|
||||
+ gboolean ret;
|
||||
+ GError *error;
|
||||
+
|
||||
+ error = NULL;
|
||||
+ ret = gsm_client_request_save (client, data->flags, &error);
|
||||
+ if (ret) {
|
||||
+ g_debug ("GsmManager: adding client to query clients: %s", gsm_client_peek_id (client));
|
||||
+ data->manager->priv->query_clients = g_slist_prepend (data->manager->priv->query_clients,
|
||||
+ client);
|
||||
+ } else if (error) {
|
||||
+ g_debug ("GsmManager: unable to query client: %s", error->message);
|
||||
+ g_error_free (error);
|
||||
+ }
|
||||
+
|
||||
+ return FALSE;
|
||||
+}
|
||||
+
|
||||
+static gboolean
|
||||
+_client_request_save_helper (const char *id,
|
||||
+ GsmClient *client,
|
||||
+ ClientEndSessionData *data)
|
||||
+{
|
||||
+ return _client_request_save (client, data);
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+query_save_session_complete (GsmManager *manager)
|
||||
+{
|
||||
+ GError *error = NULL;
|
||||
+
|
||||
+ if (g_slist_length (manager->priv->next_query_clients) > 0) {
|
||||
+ ClientEndSessionData data;
|
||||
+
|
||||
+ data.manager = manager;
|
||||
+ data.flags = GSM_CLIENT_END_SESSION_FLAG_LAST;
|
||||
+
|
||||
+ g_slist_foreach (manager->priv->next_query_clients,
|
||||
+ (GFunc)_client_request_save,
|
||||
+ &data);
|
||||
+
|
||||
+ g_slist_free (manager->priv->next_query_clients);
|
||||
+ manager->priv->next_query_clients = NULL;
|
||||
+
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ if (manager->priv->query_timeout_id > 0) {
|
||||
+ g_source_remove (manager->priv->query_timeout_id);
|
||||
+ manager->priv->query_timeout_id = 0;
|
||||
+ }
|
||||
+
|
||||
+ gsm_session_save (manager->priv->clients, &error);
|
||||
+
|
||||
+ if (error) {
|
||||
+ g_warning ("Error saving session: %s", error->message);
|
||||
+ g_error_free (error);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
static guint32
|
||||
generate_cookie (void)
|
||||
{
|
||||
@@ -1250,6 +1314,21 @@
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
+static gboolean
|
||||
+_on_query_save_session_timeout (GsmManager *manager)
|
||||
+{
|
||||
+ manager->priv->query_timeout_id = 0;
|
||||
+
|
||||
+ g_debug ("GsmManager: query to save session timed out");
|
||||
+
|
||||
+ g_slist_free (manager->priv->query_clients);
|
||||
+ manager->priv->query_clients = NULL;
|
||||
+
|
||||
+ query_save_session_complete (manager);
|
||||
+
|
||||
+ return FALSE;
|
||||
+}
|
||||
+
|
||||
static void
|
||||
do_phase_query_end_session (GsmManager *manager)
|
||||
{
|
||||
@@ -1886,13 +1965,32 @@
|
||||
const char *reason,
|
||||
GsmManager *manager)
|
||||
{
|
||||
- /* just ignore if received outside of shutdown */
|
||||
- if (manager->priv->phase < GSM_MANAGER_PHASE_QUERY_END_SESSION) {
|
||||
+ /* just ignore if we are not yet running */
|
||||
+ if (manager->priv->phase < GSM_MANAGER_PHASE_RUNNING) {
|
||||
return;
|
||||
}
|
||||
|
||||
g_debug ("GsmManager: Response from end session request: is-ok=%d do-last=%d cancel=%d reason=%s", is_ok, do_last, cancel, reason ? reason :"");
|
||||
|
||||
+ if (manager->priv->phase == GSM_MANAGER_PHASE_RUNNING) {
|
||||
+ /* Ignore responses when no requests were sent */
|
||||
+ if (manager->priv->query_clients == NULL) {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ manager->priv->query_clients = g_slist_remove (manager->priv->query_clients, client);
|
||||
+
|
||||
+ if (do_last) {
|
||||
+ manager->priv->next_query_clients = g_slist_prepend (manager->priv->next_query_clients,
|
||||
+ client);
|
||||
+ }
|
||||
+
|
||||
+ if (manager->priv->query_clients == NULL) {
|
||||
+ query_save_session_complete (manager);
|
||||
+ }
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
if (cancel) {
|
||||
cancel_end_session (manager);
|
||||
return;
|
||||
@@ -1991,6 +2089,15 @@
|
||||
}
|
||||
|
||||
static void
|
||||
+on_xsmp_client_save_request (GsmXSMPClient *client,
|
||||
+ gboolean show_dialog,
|
||||
+ GsmManager *manager)
|
||||
+{
|
||||
+ g_debug ("GsmManager: save_request");
|
||||
+ gsm_manager_save_session (manager, NULL);
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
on_store_client_added (GsmStore *store,
|
||||
const char *id,
|
||||
GsmManager *manager)
|
||||
@@ -2011,6 +2118,10 @@
|
||||
"logout-request",
|
||||
G_CALLBACK (on_xsmp_client_logout_request),
|
||||
manager);
|
||||
+ g_signal_connect (client,
|
||||
+ "save-request",
|
||||
+ G_CALLBACK (on_xsmp_client_save_request),
|
||||
+ manager);
|
||||
}
|
||||
|
||||
g_signal_connect (client,
|
||||
@@ -2968,6 +3079,41 @@
|
||||
}
|
||||
|
||||
gboolean
|
||||
+gsm_manager_save_session (GsmManager *manager,
|
||||
+ GError **error)
|
||||
+{
|
||||
+ ClientEndSessionData data;
|
||||
+
|
||||
+ g_debug ("GsmManager: SaveSession called");
|
||||
+
|
||||
+ g_return_val_if_fail (GSM_IS_MANAGER (manager), FALSE);
|
||||
+
|
||||
+ if (manager->priv->phase != GSM_MANAGER_PHASE_RUNNING) {
|
||||
+ g_set_error (error,
|
||||
+ GSM_MANAGER_ERROR,
|
||||
+ GSM_MANAGER_ERROR_NOT_IN_RUNNING,
|
||||
+ "SaveSession interface is only available during the Running phase");
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ data.manager = manager;
|
||||
+ data.flags = 0;
|
||||
+ gsm_store_foreach (manager->priv->clients,
|
||||
+ (GsmStoreFunc)_client_request_save_helper,
|
||||
+ &data);
|
||||
+
|
||||
+ if (manager->priv->query_clients) {
|
||||
+ manager->priv->query_timeout_id = g_timeout_add_seconds (GSM_MANAGER_SAVE_SESSION_TIMEOUT,
|
||||
+ (GSourceFunc)_on_query_save_session_timeout,
|
||||
+ manager);
|
||||
+ return TRUE;
|
||||
+ } else {
|
||||
+ g_debug ("GsmManager: Nothing to save");
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+gboolean
|
||||
gsm_manager_can_shutdown (GsmManager *manager,
|
||||
gboolean *shutdown_available,
|
||||
GError **error)
|
||||
diff -burN a/mate-session/gsm-manager.h b/mate-session/gsm-manager.h
|
||||
--- a/mate-session/gsm-manager.h 2012-02-29 22:03:09.000000000 +0100
|
||||
+++ b/mate-session/gsm-manager.h 2012-08-08 12:49:14.262391979 +0200
|
||||
@@ -154,6 +154,9 @@
|
||||
gboolean gsm_manager_shutdown (GsmManager *manager,
|
||||
GError **error);
|
||||
|
||||
+gboolean gsm_manager_save_session (GsmManager *manager,
|
||||
+ GError **error);
|
||||
+
|
||||
gboolean gsm_manager_can_shutdown (GsmManager *manager,
|
||||
gboolean *shutdown_available,
|
||||
GError **error);
|
||||
diff -burN a/mate-session/gsm-xsmp-client.c b/mate-session/gsm-xsmp-client.c
|
||||
--- a/mate-session/gsm-xsmp-client.c 2012-02-29 22:03:08.000000000 +0100
|
||||
+++ b/mate-session/gsm-xsmp-client.c 2012-08-08 12:52:27.719397905 +0200
|
||||
@@ -69,6 +69,7 @@
|
||||
enum {
|
||||
REGISTER_REQUEST,
|
||||
LOGOUT_REQUEST,
|
||||
+ SAVE_REQUEST,
|
||||
LAST_SIGNAL
|
||||
};
|
||||
|
||||
@@ -502,6 +503,31 @@
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
+static gboolean
|
||||
+xsmp_request_save (GsmClient *client,
|
||||
+ guint flags,
|
||||
+ GError **error)
|
||||
+{
|
||||
+ GsmXSMPClient *xsmp = (GsmXSMPClient *) client;
|
||||
+
|
||||
+ g_debug ("GsmXSMPClient: xsmp_request_save ('%s')", xsmp->priv->description);
|
||||
+
|
||||
+ if (xsmp->priv->conn == NULL) {
|
||||
+ g_set_error (error,
|
||||
+ GSM_CLIENT_ERROR,
|
||||
+ GSM_CLIENT_ERROR_NOT_REGISTERED,
|
||||
+ "Client is not registered");
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ if (flags & GSM_CLIENT_END_SESSION_FLAG_LAST)
|
||||
+ xsmp_save_yourself_phase2 (client);
|
||||
+ else
|
||||
+ do_save_yourself (xsmp, SmSaveLocal, FALSE);
|
||||
+
|
||||
+ return TRUE;
|
||||
+}
|
||||
+
|
||||
static char *
|
||||
get_desktop_file_path (GsmXSMPClient *client)
|
||||
{
|
||||
@@ -976,6 +1002,8 @@
|
||||
object_class->get_property = gsm_xsmp_client_get_property;
|
||||
object_class->set_property = gsm_xsmp_client_set_property;
|
||||
|
||||
+
|
||||
+ client_class->impl_request_save = xsmp_request_save;
|
||||
client_class->impl_save = xsmp_save;
|
||||
client_class->impl_stop = xsmp_stop;
|
||||
client_class->impl_query_end_session = xsmp_query_end_session;
|
||||
@@ -1003,6 +1031,16 @@
|
||||
NULL,
|
||||
NULL,
|
||||
g_cclosure_marshal_VOID__BOOLEAN,
|
||||
+ G_TYPE_NONE,
|
||||
+ 1, G_TYPE_BOOLEAN);
|
||||
+ signals[SAVE_REQUEST] =
|
||||
+ g_signal_new ("save-request",
|
||||
+ G_OBJECT_CLASS_TYPE (object_class),
|
||||
+ G_SIGNAL_RUN_LAST,
|
||||
+ G_STRUCT_OFFSET (GsmXSMPClientClass, save_request),
|
||||
+ NULL,
|
||||
+ NULL,
|
||||
+ g_cclosure_marshal_VOID__BOOLEAN,
|
||||
G_TYPE_NONE,
|
||||
1, G_TYPE_BOOLEAN);
|
||||
|
||||
diff -burN a/mate-session/gsm-xsmp-client.h b/mate-session/gsm-xsmp-client.h
|
||||
--- a/mate-session/gsm-xsmp-client.h 2012-02-29 22:03:09.000000000 +0100
|
||||
+++ b/mate-session/gsm-xsmp-client.h 2012-08-08 12:53:39.629400108 +0200
|
||||
@@ -57,6 +57,8 @@
|
||||
gboolean (*logout_request) (GsmXSMPClient *client,
|
||||
gboolean prompt);
|
||||
|
||||
+ gboolean (*save_request) (GsmXSMPClient *client,
|
||||
+ gboolean prompt);
|
||||
|
||||
void (*saved_state) (GsmXSMPClient *client);
|
||||
|
||||
diff -burN a/mate-session/org.gnome.SessionManager.xml b/mate-session/org.gnome.SessionManager.xml
|
||||
--- a/mate-session/org.gnome.SessionManager.xml 2012-02-29 22:03:09.000000000 +0100
|
||||
+++ b/mate-session/org.gnome.SessionManager.xml 2012-08-08 12:57:41.216407509 +0200
|
||||
@@ -256,6 +256,14 @@
|
||||
</doc:doc>
|
||||
</method>
|
||||
|
||||
+ <method name="SaveSession">
|
||||
+ <doc:doc>
|
||||
+ <doc:description>
|
||||
+ <doc:para>Request to save session</doc:para>
|
||||
+ </doc:description>
|
||||
+ </doc:doc>
|
||||
+ </method>
|
||||
+
|
||||
<method name="CanShutdown">
|
||||
<arg name="is_available" direction="out" type="b">
|
||||
<doc:doc>
|
||||
@@ -1,89 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit mate
|
||||
|
||||
if [[ ${PV} != 9999 ]]; then
|
||||
KEYWORDS="amd64 ~arm x86"
|
||||
fi
|
||||
|
||||
DESCRIPTION="MATE session manager"
|
||||
HOMEPAGE="http://mate-desktop.org/"
|
||||
|
||||
LICENSE="GPL-2 LGPL-2 FDL-1.1"
|
||||
SLOT="0"
|
||||
|
||||
IUSE="debug elibc_FreeBSD gnome-keyring gtk3 ipv6 systemd upower"
|
||||
|
||||
# x11-misc/xdg-user-dirs{,-gtk} are needed to create the various XDG_*_DIRs, and
|
||||
# create .config/user-dirs.dirs which is read by glib to get G_USER_DIRECTORY_*
|
||||
# xdg-user-dirs-update is run during login (see 10-user-dirs-update-gnome below).
|
||||
|
||||
RDEPEND=">=dev-libs/dbus-glib-0.76
|
||||
>=dev-libs/glib-2.36:2
|
||||
dev-libs/libxslt
|
||||
sys-apps/dbus
|
||||
x11-apps/xdpyinfo
|
||||
x11-libs/gdk-pixbuf:2
|
||||
x11-libs/libICE
|
||||
x11-libs/libSM
|
||||
x11-libs/libX11
|
||||
x11-libs/libXau
|
||||
x11-libs/libXext
|
||||
x11-libs/libXrender
|
||||
x11-libs/libXtst
|
||||
x11-libs/pango
|
||||
x11-libs/xtrans
|
||||
x11-misc/xdg-user-dirs
|
||||
x11-misc/xdg-user-dirs-gtk
|
||||
virtual/libintl
|
||||
elibc_FreeBSD? ( || ( dev-libs/libexecinfo >=sys-freebsd/freebsd-lib-10.0 ) )
|
||||
gnome-keyring? ( gnome-base/gnome-keyring )
|
||||
!gtk3? ( >=x11-libs/gtk+-2.14:2 )
|
||||
gtk3? ( >=x11-libs/gtk+-3.0:3 )
|
||||
systemd? ( sys-apps/systemd )
|
||||
upower? ( || ( >=sys-power/upower-0.9.23 >=sys-power/upower-pm-utils-0.9.23 ) )"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
>=dev-util/intltool-0.40:*
|
||||
>=dev-lang/perl-5
|
||||
>=sys-devel/gettext-0.10.40:*
|
||||
virtual/pkgconfig:*
|
||||
!<gnome-base/gdm-2.20.4"
|
||||
|
||||
# Add "session saving" button back,
|
||||
# see https://bugzilla.gnome.org/show_bug.cgi?id=575544
|
||||
PATCHES=( "${FILESDIR}"/${PN}-1.12.2-save-session-ui.patch )
|
||||
|
||||
MATE_FORCE_AUTORECONF=true
|
||||
|
||||
src_configure() {
|
||||
mate_src_configure \
|
||||
--docdir="${EPREFIX}/usr/share/doc/${PF}" \
|
||||
--with-gtk=$(usex gtk3 3.0 2.0) \
|
||||
$(use_with systemd) \
|
||||
$(use_enable debug) \
|
||||
$(use_enable ipv6) \
|
||||
$(use_enable upower)
|
||||
}
|
||||
|
||||
src_install() {
|
||||
mate_src_install
|
||||
|
||||
dodir /etc/X11/Sessions/
|
||||
exeinto /etc/X11/Sessions/
|
||||
doexe "${FILESDIR}"/MATE
|
||||
|
||||
dodir /usr/share/mate/applications/
|
||||
insinto /usr/share/mate/applications/
|
||||
doins "${FILESDIR}"/defaults.list
|
||||
|
||||
dodir /etc/X11/xinit/xinitrc.d/
|
||||
exeinto /etc/X11/xinit/xinitrc.d/
|
||||
doexe "${FILESDIR}"/15-xdg-data-mate
|
||||
|
||||
# This should be done in MATE too, see Gentoo bug #270852
|
||||
doexe "${FILESDIR}"/10-user-dirs-update-mate
|
||||
}
|
||||
@@ -1,87 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit mate
|
||||
|
||||
if [[ ${PV} != 9999 ]]; then
|
||||
KEYWORDS="~amd64 ~arm ~x86"
|
||||
fi
|
||||
|
||||
DESCRIPTION="MATE session manager"
|
||||
HOMEPAGE="http://mate-desktop.org/"
|
||||
|
||||
LICENSE="GPL-2 LGPL-2 FDL-1.1"
|
||||
SLOT="0"
|
||||
|
||||
IUSE="debug elibc_FreeBSD gnome-keyring gtk3 ipv6 systemd upower"
|
||||
|
||||
# x11-misc/xdg-user-dirs{,-gtk} are needed to create the various XDG_*_DIRs, and
|
||||
# create .config/user-dirs.dirs which is read by glib to get G_USER_DIRECTORY_*
|
||||
# xdg-user-dirs-update is run during login (see 10-user-dirs-update-gnome below).
|
||||
|
||||
COMMON_DEPEND=">=dev-libs/dbus-glib-0.76
|
||||
>=dev-libs/glib-2.36:2
|
||||
dev-libs/libxslt
|
||||
sys-apps/dbus
|
||||
x11-libs/gdk-pixbuf:2
|
||||
x11-libs/libICE
|
||||
x11-libs/libSM
|
||||
x11-libs/libX11
|
||||
x11-libs/libXau
|
||||
x11-libs/libXext
|
||||
x11-libs/libXrender
|
||||
x11-libs/libXtst
|
||||
x11-libs/pango
|
||||
x11-libs/xtrans
|
||||
virtual/libintl
|
||||
elibc_FreeBSD? ( || ( dev-libs/libexecinfo >=sys-freebsd/freebsd-lib-10.0 ) )
|
||||
!gtk3? ( >=x11-libs/gtk+-2.14:2 )
|
||||
gtk3? ( >=x11-libs/gtk+-3.0:3 )
|
||||
systemd? ( sys-apps/systemd )
|
||||
upower? ( || ( >=sys-power/upower-0.9.23 >=sys-power/upower-pm-utils-0.9.23 ) )"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
x11-apps/xdpyinfo
|
||||
x11-misc/xdg-user-dirs
|
||||
x11-misc/xdg-user-dirs-gtk
|
||||
gnome-keyring? ( gnome-base/gnome-keyring )"
|
||||
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
>=dev-util/intltool-0.40:*
|
||||
>=dev-lang/perl-5
|
||||
>=sys-devel/gettext-0.10.40:*
|
||||
virtual/pkgconfig:*
|
||||
!<gnome-base/gdm-2.20.4"
|
||||
|
||||
MATE_FORCE_AUTORECONF=true
|
||||
|
||||
src_configure() {
|
||||
mate_src_configure \
|
||||
--docdir="${EPREFIX}/usr/share/doc/${PF}" \
|
||||
--with-gtk=$(usex gtk3 3.0 2.0) \
|
||||
$(use_with systemd) \
|
||||
$(use_enable debug) \
|
||||
$(use_enable ipv6) \
|
||||
$(use_enable upower)
|
||||
}
|
||||
|
||||
src_install() {
|
||||
mate_src_install
|
||||
|
||||
dodir /etc/X11/Sessions/
|
||||
exeinto /etc/X11/Sessions/
|
||||
doexe "${FILESDIR}"/MATE
|
||||
|
||||
dodir /usr/share/mate/applications/
|
||||
insinto /usr/share/mate/applications/
|
||||
doins "${FILESDIR}"/defaults.list
|
||||
|
||||
dodir /etc/X11/xinit/xinitrc.d/
|
||||
exeinto /etc/X11/xinit/xinitrc.d/
|
||||
doexe "${FILESDIR}"/15-xdg-data-mate
|
||||
|
||||
# This should be done in MATE too, see Gentoo bug #270852
|
||||
doexe "${FILESDIR}"/10-user-dirs-update-mate
|
||||
}
|
||||
@@ -1,86 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit mate
|
||||
|
||||
if [[ ${PV} != 9999 ]]; then
|
||||
KEYWORDS="~amd64 ~arm ~x86"
|
||||
fi
|
||||
|
||||
DESCRIPTION="MATE session manager"
|
||||
HOMEPAGE="http://mate-desktop.org/"
|
||||
|
||||
LICENSE="GPL-2 LGPL-2 FDL-1.1"
|
||||
SLOT="0"
|
||||
|
||||
IUSE="debug elibc_FreeBSD gnome-keyring ipv6 systemd upower +xtrans"
|
||||
|
||||
# x11-misc/xdg-user-dirs{,-gtk} are needed to create the various XDG_*_DIRs, and
|
||||
# create .config/user-dirs.dirs which is read by glib to get G_USER_DIRECTORY_*
|
||||
# xdg-user-dirs-update is run during login (see 10-user-dirs-update-gnome below).
|
||||
|
||||
COMMON_DEPEND=">=dev-libs/dbus-glib-0.76
|
||||
>=dev-libs/glib-2.36:2
|
||||
dev-libs/libxslt
|
||||
sys-apps/dbus
|
||||
x11-libs/gdk-pixbuf:2
|
||||
x11-libs/libICE
|
||||
x11-libs/libSM
|
||||
x11-libs/libX11
|
||||
x11-libs/libXau
|
||||
x11-libs/libXext
|
||||
x11-libs/libXrender
|
||||
x11-libs/libXtst
|
||||
x11-libs/pango
|
||||
virtual/libintl
|
||||
elibc_FreeBSD? ( || ( dev-libs/libexecinfo >=sys-freebsd/freebsd-lib-10.0 ) )
|
||||
>=x11-libs/gtk+-3.14:3
|
||||
systemd? ( sys-apps/systemd )
|
||||
upower? ( || ( >=sys-power/upower-0.9.23 >=sys-power/upower-pm-utils-0.9.23 ) )
|
||||
xtrans? ( x11-libs/xtrans )"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
x11-apps/xdpyinfo
|
||||
x11-misc/xdg-user-dirs
|
||||
x11-misc/xdg-user-dirs-gtk
|
||||
gnome-keyring? ( gnome-base/gnome-keyring )"
|
||||
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
>=dev-util/intltool-0.40:*
|
||||
>=dev-lang/perl-5
|
||||
>=sys-devel/gettext-0.10.40:*
|
||||
virtual/pkgconfig:*
|
||||
!<gnome-base/gdm-2.20.4"
|
||||
|
||||
MATE_FORCE_AUTORECONF=true
|
||||
|
||||
src_configure() {
|
||||
mate_src_configure \
|
||||
--docdir="${EPREFIX}/usr/share/doc/${PF}" \
|
||||
$(use_with systemd) \
|
||||
$(use_with xtrans) \
|
||||
$(use_enable debug) \
|
||||
$(use_enable ipv6) \
|
||||
$(use_enable upower)
|
||||
}
|
||||
|
||||
src_install() {
|
||||
mate_src_install
|
||||
|
||||
dodir /etc/X11/Sessions/
|
||||
exeinto /etc/X11/Sessions/
|
||||
doexe "${FILESDIR}"/MATE
|
||||
|
||||
dodir /usr/share/mate/applications/
|
||||
insinto /usr/share/mate/applications/
|
||||
doins "${FILESDIR}"/defaults.list
|
||||
|
||||
dodir /etc/X11/xinit/xinitrc.d/
|
||||
exeinto /etc/X11/xinit/xinitrc.d/
|
||||
doexe "${FILESDIR}"/15-xdg-data-mate
|
||||
|
||||
# This should be done in MATE too, see Gentoo bug #270852
|
||||
doexe "${FILESDIR}"/10-user-dirs-update-mate
|
||||
}
|
||||
@@ -1,85 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit mate
|
||||
|
||||
if [[ ${PV} != 9999 ]]; then
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
|
||||
fi
|
||||
|
||||
DESCRIPTION="MATE session manager"
|
||||
HOMEPAGE="http://mate-desktop.org/"
|
||||
|
||||
LICENSE="GPL-2 LGPL-2 FDL-1.1"
|
||||
SLOT="0"
|
||||
|
||||
IUSE="debug elibc_FreeBSD gnome-keyring ipv6 systemd +xtrans"
|
||||
|
||||
# x11-misc/xdg-user-dirs{,-gtk} are needed to create the various XDG_*_DIRs, and
|
||||
# create .config/user-dirs.dirs which is read by glib to get G_USER_DIRECTORY_*
|
||||
# xdg-user-dirs-update is run during login (see 10-user-dirs-update-gnome below).
|
||||
|
||||
COMMON_DEPEND=">=dev-libs/dbus-glib-0.76
|
||||
>=dev-libs/glib-2.36:2
|
||||
dev-libs/libxslt
|
||||
sys-apps/dbus
|
||||
x11-libs/gdk-pixbuf:2
|
||||
>=x11-libs/gtk+-3.14:3
|
||||
x11-libs/libICE
|
||||
x11-libs/libSM
|
||||
x11-libs/libX11
|
||||
x11-libs/libXau
|
||||
x11-libs/libXext
|
||||
x11-libs/libXrender
|
||||
x11-libs/libXtst
|
||||
x11-libs/pango
|
||||
virtual/libintl
|
||||
elibc_FreeBSD? ( || ( dev-libs/libexecinfo >=sys-freebsd/freebsd-lib-10.0 ) )
|
||||
systemd? ( sys-apps/systemd )
|
||||
!systemd? ( >=sys-auth/consolekit-0.9.2 )
|
||||
xtrans? ( x11-libs/xtrans )"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
x11-apps/xdpyinfo
|
||||
x11-misc/xdg-user-dirs
|
||||
x11-misc/xdg-user-dirs-gtk
|
||||
gnome-keyring? ( gnome-base/gnome-keyring )"
|
||||
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
>=dev-util/intltool-0.40:*
|
||||
>=dev-lang/perl-5
|
||||
>=sys-devel/gettext-0.10.40:*
|
||||
virtual/pkgconfig:*
|
||||
!<gnome-base/gdm-2.20.4"
|
||||
|
||||
MATE_FORCE_AUTORECONF=true
|
||||
|
||||
src_configure() {
|
||||
mate_src_configure \
|
||||
--docdir="${EPREFIX}/usr/share/doc/${PF}" \
|
||||
$(use_with systemd) \
|
||||
$(use_with xtrans) \
|
||||
$(use_enable debug) \
|
||||
$(use_enable ipv6)
|
||||
}
|
||||
|
||||
src_install() {
|
||||
mate_src_install
|
||||
|
||||
dodir /etc/X11/Sessions/
|
||||
exeinto /etc/X11/Sessions/
|
||||
doexe "${FILESDIR}"/MATE
|
||||
|
||||
dodir /usr/share/mate/applications/
|
||||
insinto /usr/share/mate/applications/
|
||||
doins "${FILESDIR}"/defaults.list
|
||||
|
||||
dodir /etc/X11/xinit/xinitrc.d/
|
||||
exeinto /etc/X11/xinit/xinitrc.d/
|
||||
doexe "${FILESDIR}"/15-xdg-data-mate
|
||||
|
||||
# This should be done in MATE too, see Gentoo bug #270852
|
||||
doexe "${FILESDIR}"/10-user-dirs-update-mate
|
||||
}
|
||||
@@ -1,85 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit mate
|
||||
|
||||
if [[ ${PV} != 9999 ]]; then
|
||||
KEYWORDS="~amd64 ~arm ~x86"
|
||||
fi
|
||||
|
||||
DESCRIPTION="MATE session manager"
|
||||
HOMEPAGE="http://mate-desktop.org/"
|
||||
|
||||
LICENSE="GPL-2 LGPL-2 FDL-1.1"
|
||||
SLOT="0"
|
||||
|
||||
IUSE="debug elibc_FreeBSD gnome-keyring ipv6 systemd xtrans"
|
||||
|
||||
# x11-misc/xdg-user-dirs{,-gtk} are needed to create the various XDG_*_DIRs, and
|
||||
# create .config/user-dirs.dirs which is read by glib to get G_USER_DIRECTORY_*
|
||||
# xdg-user-dirs-update is run during login (see 10-user-dirs-update-gnome below).
|
||||
|
||||
COMMON_DEPEND=">=dev-libs/dbus-glib-0.76
|
||||
>=dev-libs/glib-2.36:2
|
||||
dev-libs/libxslt
|
||||
sys-apps/dbus
|
||||
x11-libs/gdk-pixbuf:2
|
||||
>=x11-libs/gtk+-3.14:3
|
||||
x11-libs/libICE
|
||||
x11-libs/libSM
|
||||
x11-libs/libX11
|
||||
x11-libs/libXau
|
||||
x11-libs/libXext
|
||||
x11-libs/libXrender
|
||||
x11-libs/libXtst
|
||||
x11-libs/pango
|
||||
virtual/libintl
|
||||
elibc_FreeBSD? ( || ( dev-libs/libexecinfo >=sys-freebsd/freebsd-lib-10.0 ) )
|
||||
systemd? ( sys-apps/systemd )
|
||||
!systemd? ( >=sys-auth/consolekit-0.9.2 )
|
||||
xtrans? ( x11-libs/xtrans )"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
x11-apps/xdpyinfo
|
||||
x11-misc/xdg-user-dirs
|
||||
x11-misc/xdg-user-dirs-gtk
|
||||
gnome-keyring? ( gnome-base/gnome-keyring )"
|
||||
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
>=dev-util/intltool-0.40:*
|
||||
>=dev-lang/perl-5
|
||||
>=sys-devel/gettext-0.10.40:*
|
||||
virtual/pkgconfig:*
|
||||
!<gnome-base/gdm-2.20.4"
|
||||
|
||||
MATE_FORCE_AUTORECONF=true
|
||||
|
||||
src_configure() {
|
||||
mate_src_configure \
|
||||
--docdir="${EPREFIX}/usr/share/doc/${PF}" \
|
||||
$(use_with systemd) \
|
||||
$(use_with xtrans) \
|
||||
$(use_enable debug) \
|
||||
$(use_enable ipv6)
|
||||
}
|
||||
|
||||
src_install() {
|
||||
mate_src_install
|
||||
|
||||
dodir /etc/X11/Sessions/
|
||||
exeinto /etc/X11/Sessions/
|
||||
doexe "${FILESDIR}"/MATE
|
||||
|
||||
dodir /usr/share/mate/applications/
|
||||
insinto /usr/share/mate/applications/
|
||||
doins "${FILESDIR}"/defaults.list
|
||||
|
||||
dodir /etc/X11/xinit/xinitrc.d/
|
||||
exeinto /etc/X11/xinit/xinitrc.d/
|
||||
doexe "${FILESDIR}"/15-xdg-data-mate
|
||||
|
||||
# This should be done in MATE too, see Gentoo bug #270852
|
||||
doexe "${FILESDIR}"/10-user-dirs-update-mate
|
||||
}
|
||||
@@ -6,7 +6,6 @@
|
||||
<name>Gentoo MATE Desktop</name>
|
||||
</maintainer>
|
||||
<use>
|
||||
<flag name="gtk3">Build with GTK+3 instead of GTK+2</flag>
|
||||
<flag name="xtrans">Build with Xtrans support;
|
||||
WARNING: Disabling this flag will result in ICE binding on all interfaces</flag>
|
||||
</use>
|
||||
|
||||
Reference in New Issue
Block a user