forked from pool/lxsession
- new upstream version 0.4.5
OBS-URL: https://build.opensuse.org/package/show/X11:lxde/lxsession?expand=0&rev=39
This commit is contained in:
parent
77f415de4c
commit
fb787139bf
@ -1,24 +0,0 @@
|
||||
From b87979e4dfe4279be4f96f7e010ea4c8557f50a6 Mon Sep 17 00:00:00 2001
|
||||
From: Marty Jack <martyj@linux.local>
|
||||
Date: Fri, 16 Jul 2010 16:46:58 -0400
|
||||
Subject: [PATCH] Soften from g_error to fprintf(stderr) to quiet abrt (Bug3030576)
|
||||
|
||||
---
|
||||
lxsession/lxsession.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/lxsession/lxsession.c b/lxsession/lxsession.c
|
||||
index 17e3ff7..026a30b 100644
|
||||
--- a/lxsession/lxsession.c
|
||||
+++ b/lxsession/lxsession.c
|
||||
@@ -289,7 +289,7 @@ int main(int argc, char** argv)
|
||||
else if( G_UNLIKELY( !single_instance_check()) )
|
||||
{
|
||||
/* only one instance is allowed for each X. */
|
||||
- g_error( "Only one lxsession can be executed at a time." );
|
||||
+ fprintf(stderr, "Only one lxsession can be executed at a time");
|
||||
return 1;
|
||||
}
|
||||
|
||||
--
|
||||
1.6.3
|
@ -1,500 +0,0 @@
|
||||
diff -uNr old-lxsession-0.4.4//lxsession-logout/dbus-interface.c lxsession-0.4.4/lxsession-logout/dbus-interface.c
|
||||
--- old-lxsession-0.4.4//lxsession-logout/dbus-interface.c 2010-03-28 20:20:12.000000000 +0200
|
||||
+++ lxsession-0.4.4/lxsession-logout/dbus-interface.c 2010-07-25 23:39:52.059867576 +0200
|
||||
@@ -54,7 +54,7 @@
|
||||
}
|
||||
|
||||
/* Send a message. */
|
||||
-static DBusMessage * dbus_send_message(DBusMessage * message)
|
||||
+static DBusMessage * dbus_send_message(DBusMessage * message, char * * error_text)
|
||||
{
|
||||
/* Get a connection handle. */
|
||||
DBusConnection * connection = dbus_connect();
|
||||
@@ -68,36 +68,25 @@
|
||||
dbus_message_unref(message);
|
||||
if (reply == NULL)
|
||||
{
|
||||
- g_warning(G_STRLOC ": DBUS: %s", error.message);
|
||||
+ if ((error.name == NULL) || (strcmp(error.name, DBUS_ERROR_NO_REPLY) != 0))
|
||||
+ {
|
||||
+ if (error_text != NULL)
|
||||
+ *error_text = g_strdup(error.message);
|
||||
+ g_warning(G_STRLOC ": DBUS: %s", error.message);
|
||||
+ }
|
||||
dbus_error_free(&error);
|
||||
}
|
||||
return reply;
|
||||
}
|
||||
|
||||
-/* Send a message with no reply expected. */
|
||||
-static gboolean dbus_send_message_without_reply(DBusMessage * message)
|
||||
-{
|
||||
- /* Get a connection handle. */
|
||||
- DBusConnection * connection = dbus_connect();
|
||||
- if (connection == NULL)
|
||||
- return FALSE;
|
||||
-
|
||||
- /* Send the message in the blind. */
|
||||
- dbus_bool_t status = dbus_connection_send(connection, message, NULL);
|
||||
- dbus_message_unref(message);
|
||||
- if ( ! status)
|
||||
- g_warning(G_STRLOC ": DBUS: dbus_connection_send failed\n");
|
||||
- return status;
|
||||
-}
|
||||
-
|
||||
/* Read a result for a method that returns void. */
|
||||
-static gboolean dbus_read_result_void(DBusMessage * reply)
|
||||
+static char * dbus_read_result_void(DBusMessage * reply)
|
||||
{
|
||||
if (reply != NULL)
|
||||
dbus_message_unref(reply);
|
||||
|
||||
/* No result. Assume success. */
|
||||
- return TRUE;
|
||||
+ return NULL;
|
||||
}
|
||||
|
||||
/* Read a result for a method that returns boolean. */
|
||||
@@ -144,19 +133,21 @@
|
||||
static gboolean dbus_ConsoleKit_query(const char * const query)
|
||||
{
|
||||
#ifdef HAVE_DBUS
|
||||
- return dbus_read_result_boolean(dbus_send_message(dbus_ConsoleKit_formulate_message(query)));
|
||||
+ return dbus_read_result_boolean(dbus_send_message(dbus_ConsoleKit_formulate_message(query), NULL));
|
||||
#else
|
||||
return FALSE;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Send a specified message to the ConsoleKit interface and process a void result. */
|
||||
-static gboolean dbus_ConsoleKit_command(const char * const command)
|
||||
+static char * dbus_ConsoleKit_command(const char * const command)
|
||||
{
|
||||
#ifdef HAVE_DBUS
|
||||
- return dbus_read_result_void(dbus_send_message(dbus_ConsoleKit_formulate_message(command)));
|
||||
+ char * error = NULL;
|
||||
+ dbus_read_result_void(dbus_send_message(dbus_ConsoleKit_formulate_message(command), &error));
|
||||
+ return error;
|
||||
#else
|
||||
- return FALSE;
|
||||
+ return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -173,49 +164,49 @@
|
||||
}
|
||||
|
||||
/* Invoke the Stop method on ConsoleKit. */
|
||||
-gboolean dbus_ConsoleKit_Stop(void)
|
||||
+char * dbus_ConsoleKit_Stop(void)
|
||||
{
|
||||
return dbus_ConsoleKit_command("Stop");
|
||||
}
|
||||
|
||||
/* Invoke the Restart method on ConsoleKit. */
|
||||
-gboolean dbus_ConsoleKit_Restart(void)
|
||||
+char * dbus_ConsoleKit_Restart(void)
|
||||
{
|
||||
return dbus_ConsoleKit_command("Restart");
|
||||
}
|
||||
|
||||
-/*** DeviceKit Power mechanism ***/
|
||||
+/*** UPower mechanism ***/
|
||||
|
||||
#ifdef HAVE_DBUS
|
||||
-/* Formulate a message to the DeviceKit Power interface. */
|
||||
-static DBusMessage * dbus_DeviceKit_formulate_command(const char * const command)
|
||||
+/* Formulate a message to the UPower interface. */
|
||||
+static DBusMessage * dbus_UPower_formulate_command(const char * const command)
|
||||
{
|
||||
return dbus_message_new_method_call(
|
||||
- "org.freedesktop.DeviceKit.Power",
|
||||
- "/org/freedesktop/DeviceKit/Power",
|
||||
- "org.freedesktop.DeviceKit.Power",
|
||||
+ "org.freedesktop.UPower",
|
||||
+ "/org/freedesktop/UPower",
|
||||
+ "org.freedesktop.UPower",
|
||||
command);
|
||||
}
|
||||
#endif
|
||||
|
||||
-/* Send a specified message to the DeviceKit interface and process a boolean result. */
|
||||
-static gboolean dbus_DeviceKit_query(const char * const query)
|
||||
+/* Send a specified message to the UPower interface and process a boolean result. */
|
||||
+static gboolean dbus_UPower_query(const char * const query)
|
||||
{
|
||||
#ifdef HAVE_DBUS
|
||||
/* Formulate a message to the Properties interface. */
|
||||
DBusMessage * message = dbus_message_new_method_call(
|
||||
- "org.freedesktop.DeviceKit.Power",
|
||||
- "/org/freedesktop/DeviceKit/Power",
|
||||
+ "org.freedesktop.UPower",
|
||||
+ "/org/freedesktop/UPower",
|
||||
"org.freedesktop.DBus.Properties",
|
||||
"Get");
|
||||
- const char * const interface_name = "org.freedesktop.DeviceKit.Power";
|
||||
+ const char * const interface_name = "org.freedesktop.UPower";
|
||||
dbus_message_append_args(message,
|
||||
DBUS_TYPE_STRING, &interface_name,
|
||||
DBUS_TYPE_STRING, &query,
|
||||
DBUS_TYPE_INVALID);
|
||||
|
||||
/* Send the message. */
|
||||
- DBusMessage * reply = dbus_send_message(message);
|
||||
+ DBusMessage * reply = dbus_send_message(message, NULL);
|
||||
if (reply == NULL)
|
||||
return FALSE;
|
||||
|
||||
@@ -237,39 +228,40 @@
|
||||
#endif
|
||||
}
|
||||
|
||||
-/* Send a specified message to the DeviceKit interface and process a void result. */
|
||||
-static gboolean dbus_DeviceKit_command(const char * const command)
|
||||
+/* Send a specified message to the UPower interface and process a void result. */
|
||||
+static char * dbus_UPower_command(const char * const command)
|
||||
{
|
||||
#ifdef HAVE_DBUS
|
||||
- return dbus_read_result_void(dbus_send_message(dbus_DeviceKit_formulate_command(command)));
|
||||
-// return dbus_send_message_without_reply(dbus_DeviceKit_formulate_command(command)); It seems they don't send a reply; to be checked out
|
||||
+ char * error = NULL;
|
||||
+ dbus_read_result_void(dbus_send_message(dbus_UPower_formulate_command(command), &error));
|
||||
+ return error;
|
||||
#else
|
||||
- return FALSE;
|
||||
+ return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
-/* Read the can-suspend property of DeviceKit/Power. */
|
||||
-gboolean dbus_DeviceKit_CanSuspend(void)
|
||||
+/* Read the can-suspend property of UPower. */
|
||||
+gboolean dbus_UPower_CanSuspend(void)
|
||||
{
|
||||
- return dbus_DeviceKit_query("CanSuspend");
|
||||
+ return dbus_UPower_query("CanSuspend");
|
||||
}
|
||||
|
||||
-/* Read the can-hibernate property of DeviceKit/Power. */
|
||||
-gboolean dbus_DeviceKit_CanHibernate(void)
|
||||
+/* Read the can-hibernate property of UPower. */
|
||||
+gboolean dbus_UPower_CanHibernate(void)
|
||||
{
|
||||
- return dbus_DeviceKit_query("CanHibernate");
|
||||
+ return dbus_UPower_query("CanHibernate");
|
||||
}
|
||||
|
||||
-/* Invoke the Suspend method on DeviceKit/Power. */
|
||||
-gboolean dbus_DeviceKit_Suspend(void)
|
||||
+/* Invoke the Suspend method on UPower. */
|
||||
+char * dbus_UPower_Suspend(void)
|
||||
{
|
||||
- return dbus_DeviceKit_command("Suspend");
|
||||
+ return dbus_UPower_command("Suspend");
|
||||
}
|
||||
|
||||
-/* Invoke the Hibernate method on DeviceKit/Power. */
|
||||
-gboolean dbus_DeviceKit_Hibernate(void)
|
||||
+/* Invoke the Hibernate method on UPower. */
|
||||
+char * dbus_UPower_Hibernate(void)
|
||||
{
|
||||
- return dbus_DeviceKit_command("Hibernate");
|
||||
+ return dbus_UPower_command("Hibernate");
|
||||
}
|
||||
|
||||
/*** HAL mechanism ***/
|
||||
@@ -318,7 +310,7 @@
|
||||
DBusMessage * message = dbus_HAL_formulate_string_property_query(property);
|
||||
if (message == NULL)
|
||||
return FALSE;
|
||||
- DBusMessage * reply = dbus_send_message(message);
|
||||
+ DBusMessage * reply = dbus_send_message(message, NULL);
|
||||
if (reply == NULL)
|
||||
return FALSE;
|
||||
dbus_message_unref(reply);
|
||||
@@ -332,20 +324,20 @@
|
||||
static gboolean dbus_HAL_boolean_query(const char * const property)
|
||||
{
|
||||
#ifdef HAVE_DBUS
|
||||
- return dbus_read_result_boolean(dbus_send_message(dbus_HAL_formulate_boolean_property_query(property)));
|
||||
+ return dbus_read_result_boolean(dbus_send_message(dbus_HAL_formulate_boolean_property_query(property), NULL));
|
||||
#else
|
||||
return FALSE;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Send a specified message to the HAL interface and process a void result. */
|
||||
-static gboolean dbus_HAL_command(const char * const command)
|
||||
+static char * dbus_HAL_command(const char * const command)
|
||||
{
|
||||
#ifdef HAVE_DBUS
|
||||
/* Formulate the message. */
|
||||
DBusMessage * message = dbus_HAL_formulate_message(command);
|
||||
if (message == NULL)
|
||||
- return FALSE;
|
||||
+ return NULL;
|
||||
|
||||
/* Suspend has an argument. */
|
||||
if (strcmp(command, "Suspend") == 0)
|
||||
@@ -355,9 +347,11 @@
|
||||
}
|
||||
|
||||
/* Send the message and wait for a reply. */
|
||||
- return dbus_read_result_void(dbus_send_message(message));
|
||||
+ char * error = NULL;
|
||||
+ dbus_read_result_void(dbus_send_message(message, &error));
|
||||
+ return error;
|
||||
#else
|
||||
- return FALSE;
|
||||
+ return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -386,25 +380,25 @@
|
||||
}
|
||||
|
||||
/* Invoke the Shutdown method on HAL. */
|
||||
-gboolean dbus_HAL_Shutdown(void)
|
||||
+char * dbus_HAL_Shutdown(void)
|
||||
{
|
||||
return dbus_HAL_command("Shutdown");
|
||||
}
|
||||
|
||||
/* Invoke the Reboot method on HAL. */
|
||||
-gboolean dbus_HAL_Reboot(void)
|
||||
+char * dbus_HAL_Reboot(void)
|
||||
{
|
||||
return dbus_HAL_command("Reboot");
|
||||
}
|
||||
|
||||
/* Invoke the Suspend method on HAL. */
|
||||
-gboolean dbus_HAL_Suspend(void)
|
||||
+char * dbus_HAL_Suspend(void)
|
||||
{
|
||||
return dbus_HAL_command("Suspend");
|
||||
}
|
||||
|
||||
/* Invoke the Hibernate method on HAL. */
|
||||
-gboolean dbus_HAL_Hibernate(void)
|
||||
+char * dbus_HAL_Hibernate(void)
|
||||
{
|
||||
return dbus_HAL_command("Hibernate");
|
||||
}
|
||||
diff -uNr old-lxsession-0.4.4//lxsession-logout/dbus-interface.h lxsession-0.4.4/lxsession-logout/dbus-interface.h
|
||||
--- old-lxsession-0.4.4//lxsession-logout/dbus-interface.h 2010-03-06 11:20:19.000000000 +0100
|
||||
+++ lxsession-0.4.4/lxsession-logout/dbus-interface.h 2010-07-25 23:39:52.068871814 +0200
|
||||
@@ -24,14 +24,14 @@
|
||||
/* Interface to ConsoleKit for shutdown and reboot. */
|
||||
extern gboolean dbus_ConsoleKit_CanStop(void);
|
||||
extern gboolean dbus_ConsoleKit_CanRestart(void);
|
||||
-extern gboolean dbus_ConsoleKit_Stop(void);
|
||||
-extern gboolean dbus_ConsoleKit_Restart(void);
|
||||
+extern char * dbus_ConsoleKit_Stop(void);
|
||||
+extern char * dbus_ConsoleKit_Restart(void);
|
||||
|
||||
-/* Interface to DeviceKit/Power for suspend and hibernate. */
|
||||
-extern gboolean dbus_DeviceKit_CanSuspend(void);
|
||||
-extern gboolean dbus_DeviceKit_CanHibernate(void);
|
||||
-extern gboolean dbus_DeviceKit_Suspend(void);
|
||||
-extern gboolean dbus_DeviceKit_Hibernate(void);
|
||||
+/* Interface to UPower for suspend and hibernate. */
|
||||
+extern gboolean dbus_UPower_CanSuspend(void);
|
||||
+extern gboolean dbus_UPower_CanHibernate(void);
|
||||
+extern char * dbus_UPower_Suspend(void);
|
||||
+extern char * dbus_UPower_Hibernate(void);
|
||||
|
||||
/* Interface to HAL for shutdown, reboot, suspend, and hibernate.
|
||||
* HAL is being replaced by the above two mechanisms; this support is legacy. */
|
||||
@@ -39,9 +39,9 @@
|
||||
extern gboolean dbus_HAL_CanReboot(void);
|
||||
extern gboolean dbus_HAL_CanSuspend(void);
|
||||
extern gboolean dbus_HAL_CanHibernate(void);
|
||||
-gboolean dbus_HAL_Shutdown(void);
|
||||
-gboolean dbus_HAL_Reboot(void);
|
||||
-gboolean dbus_HAL_Suspend(void);
|
||||
-gboolean dbus_HAL_Hibernate(void);
|
||||
+extern char * dbus_HAL_Shutdown(void);
|
||||
+extern char * dbus_HAL_Reboot(void);
|
||||
+extern char * dbus_HAL_Suspend(void);
|
||||
+extern char * dbus_HAL_Hibernate(void);
|
||||
|
||||
#endif
|
||||
diff -uNr old-lxsession-0.4.4//lxsession-logout/lxsession-logout.c lxsession-0.4.4/lxsession-logout/lxsession-logout.c
|
||||
--- old-lxsession-0.4.4//lxsession-logout/lxsession-logout.c 2010-07-25 23:39:12.933867740 +0200
|
||||
+++ lxsession-0.4.4/lxsession-logout/lxsession-logout.c 2010-07-25 23:50:55.106114634 +0200
|
||||
@@ -53,6 +53,7 @@
|
||||
|
||||
typedef struct {
|
||||
GPid lxsession_pid; /* Process ID of lxsession */
|
||||
+ GtkWidget * error_label; /* Text of an error, if we get one */
|
||||
|
||||
int shutdown_available : 1; /* Shutdown is available */
|
||||
int reboot_available : 1; /* Reboot is available */
|
||||
@@ -62,20 +63,21 @@
|
||||
|
||||
int shutdown_ConsoleKit : 1; /* Shutdown is available via ConsoleKit */
|
||||
int reboot_ConsoleKit : 1; /* Reboot is available via ConsoleKit */
|
||||
- int suspend_DeviceKit : 1; /* Suspend is available via DeviceKit */
|
||||
- int hibernate_DeviceKit : 1; /* Hibernate is available via DeviceKit */
|
||||
+ int suspend_UPower : 1; /* Suspend is available via UPower */
|
||||
+ int hibernate_UPower : 1; /* Hibernate is available via UPower */
|
||||
int shutdown_HAL : 1; /* Shutdown is available via HAL */
|
||||
int reboot_HAL : 1; /* Reboot is available via HAL */
|
||||
int suspend_HAL : 1; /* Suspend is available via HAL */
|
||||
int hibernate_HAL : 1; /* Hibernate is available via HAL */
|
||||
int switch_user_GDM : 1; /* Switch User is available via GDM */
|
||||
int switch_user_KDM : 1; /* Switch User is available via KDM */
|
||||
- int ltsp : 1; /* under LTSP environment */
|
||||
+ int ltsp : 1; /* Shutdown and reboot is accomplished via LTSP */
|
||||
} HandlerContext;
|
||||
|
||||
static gboolean lock_screen(void);
|
||||
static gboolean verify_running(char * display_manager, char * executable);
|
||||
static void logout_clicked(GtkButton * button, HandlerContext * handler_context);
|
||||
+static void change_root_property(GtkWidget* w, const char* prop_name, const char* value);
|
||||
static void shutdown_clicked(GtkButton * button, HandlerContext * handler_context);
|
||||
static void reboot_clicked(GtkButton * button, HandlerContext * handler_context);
|
||||
static void suspend_clicked(GtkButton * button, HandlerContext * handler_context);
|
||||
@@ -187,6 +189,7 @@
|
||||
gtk_main_quit();
|
||||
}
|
||||
|
||||
+/* Replace a property on the root window. */
|
||||
static void change_root_property(GtkWidget* w, const char* prop_name, const char* value)
|
||||
{
|
||||
GdkDisplay* dpy = gtk_widget_get_display(w);
|
||||
@@ -199,59 +202,81 @@
|
||||
/* Handler for "clicked" signal on Shutdown button. */
|
||||
static void shutdown_clicked(GtkButton * button, HandlerContext * handler_context)
|
||||
{
|
||||
- if (G_UNLIKELY(handler_context->ltsp))
|
||||
+ char * error_result = NULL;
|
||||
+ gtk_label_set_text(GTK_LABEL(handler_context->error_label), NULL);
|
||||
+
|
||||
+ if (handler_context->ltsp)
|
||||
{
|
||||
change_root_property(GTK_WIDGET(button), "LTSP_LOGOUT_ACTION", "HALT");
|
||||
kill(handler_context->lxsession_pid, SIGTERM);
|
||||
}
|
||||
else if (handler_context->shutdown_ConsoleKit)
|
||||
- dbus_ConsoleKit_Stop();
|
||||
+ error_result = dbus_ConsoleKit_Stop();
|
||||
else if (handler_context->shutdown_HAL)
|
||||
- dbus_HAL_Shutdown();
|
||||
- gtk_main_quit();
|
||||
+ error_result = dbus_HAL_Shutdown();
|
||||
+ if (error_result != NULL)
|
||||
+ gtk_label_set_text(GTK_LABEL(handler_context->error_label), error_result);
|
||||
+ else gtk_main_quit();
|
||||
}
|
||||
|
||||
/* Handler for "clicked" signal on Reboot button. */
|
||||
static void reboot_clicked(GtkButton * button, HandlerContext * handler_context)
|
||||
{
|
||||
- if (G_UNLIKELY(handler_context->ltsp))
|
||||
+ char * error_result = NULL;
|
||||
+ gtk_label_set_text(GTK_LABEL(handler_context->error_label), NULL);
|
||||
+
|
||||
+ if (handler_context->ltsp)
|
||||
{
|
||||
change_root_property(GTK_WIDGET(button), "LTSP_LOGOUT_ACTION", "REBOOT");
|
||||
kill(handler_context->lxsession_pid, SIGTERM);
|
||||
}
|
||||
else if (handler_context->reboot_ConsoleKit)
|
||||
- dbus_ConsoleKit_Restart();
|
||||
+ error_result = dbus_ConsoleKit_Restart();
|
||||
else if (handler_context->reboot_HAL)
|
||||
- dbus_HAL_Reboot();
|
||||
- gtk_main_quit();
|
||||
+ error_result = dbus_HAL_Reboot();
|
||||
+ if (error_result != NULL)
|
||||
+ gtk_label_set_text(GTK_LABEL(handler_context->error_label), error_result);
|
||||
+ else gtk_main_quit();
|
||||
}
|
||||
|
||||
/* Handler for "clicked" signal on Suspend button. */
|
||||
static void suspend_clicked(GtkButton * button, HandlerContext * handler_context)
|
||||
{
|
||||
lock_screen();
|
||||
- if (handler_context->suspend_DeviceKit)
|
||||
- dbus_DeviceKit_Suspend();
|
||||
+ char * error_result = NULL;
|
||||
+ gtk_label_set_text(GTK_LABEL(handler_context->error_label), NULL);
|
||||
+
|
||||
+ if (handler_context->suspend_UPower)
|
||||
+ error_result = dbus_UPower_Suspend();
|
||||
else if (handler_context->suspend_HAL)
|
||||
- dbus_HAL_Suspend();
|
||||
- gtk_main_quit();
|
||||
+ error_result = dbus_HAL_Suspend();
|
||||
+ if (error_result != NULL)
|
||||
+ gtk_label_set_text(GTK_LABEL(handler_context->error_label), error_result);
|
||||
+ else gtk_main_quit();
|
||||
}
|
||||
|
||||
/* Handler for "clicked" signal on Hibernate button. */
|
||||
static void hibernate_clicked(GtkButton * button, HandlerContext * handler_context)
|
||||
{
|
||||
lock_screen();
|
||||
- if (handler_context->hibernate_DeviceKit)
|
||||
- dbus_DeviceKit_Hibernate();
|
||||
+ char * error_result = NULL;
|
||||
+ gtk_label_set_text(GTK_LABEL(handler_context->error_label), NULL);
|
||||
+
|
||||
+ if (handler_context->hibernate_UPower)
|
||||
+ error_result = dbus_UPower_Hibernate();
|
||||
else if (handler_context->hibernate_HAL)
|
||||
- dbus_HAL_Hibernate();
|
||||
- gtk_main_quit();
|
||||
+ error_result = dbus_HAL_Hibernate();
|
||||
+ if (error_result != NULL)
|
||||
+ gtk_label_set_text(GTK_LABEL(handler_context->error_label), error_result);
|
||||
+ else gtk_main_quit();
|
||||
}
|
||||
|
||||
/* Handler for "clicked" signal on Switch User button. */
|
||||
static void switch_user_clicked(GtkButton * button, HandlerContext * handler_context)
|
||||
{
|
||||
+
|
||||
lock_screen();
|
||||
+ gtk_label_set_text(GTK_LABEL(handler_context->error_label), NULL);
|
||||
if (handler_context->switch_user_GDM)
|
||||
g_spawn_command_line_sync("gdmflexiserver --startnew", NULL, NULL, NULL, NULL);
|
||||
else if (handler_context->switch_user_KDM)
|
||||
@@ -386,19 +411,17 @@
|
||||
handler_context.reboot_ConsoleKit = TRUE;
|
||||
}
|
||||
|
||||
-#ifdef LATENT_DEVICEKIT_SUPPORT
|
||||
- /* Initialize capabilities of the DeviceKit mechanism. */
|
||||
- if (dbus_DeviceKit_CanSuspend())
|
||||
+ /* Initialize capabilities of the UPower mechanism. */
|
||||
+ if (dbus_UPower_CanSuspend())
|
||||
{
|
||||
handler_context.suspend_available = TRUE;
|
||||
- handler_context.suspend_DeviceKit = TRUE;
|
||||
+ handler_context.suspend_UPower = TRUE;
|
||||
}
|
||||
- if (dbus_DeviceKit_CanHibernate())
|
||||
+ if (dbus_UPower_CanHibernate())
|
||||
{
|
||||
handler_context.hibernate_available = TRUE;
|
||||
- handler_context.hibernate_DeviceKit = TRUE;
|
||||
+ handler_context.hibernate_UPower = TRUE;
|
||||
}
|
||||
-#endif
|
||||
|
||||
/* Initialize capabilities of the HAL mechanism. */
|
||||
if (!handler_context.shutdown_available && dbus_HAL_CanShutdown())
|
||||
@@ -597,6 +620,11 @@
|
||||
g_signal_connect(G_OBJECT(cancel_button), "clicked", G_CALLBACK(cancel_clicked), NULL);
|
||||
gtk_box_pack_start(GTK_BOX(controls), cancel_button, FALSE, FALSE, 4);
|
||||
|
||||
+ /* Create the error text. */
|
||||
+ handler_context.error_label = gtk_label_new("");
|
||||
+ gtk_label_set_justify(GTK_LABEL(handler_context.error_label), GTK_JUSTIFY_CENTER);
|
||||
+ gtk_box_pack_start(GTK_BOX(controls), handler_context.error_label, FALSE, FALSE, 4);
|
||||
+
|
||||
/* Show everything. */
|
||||
gtk_widget_show_all(window);
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f1631ab39f2f69e875e57153c3d78de168e8c50692d506af3890fa9d15ba5af4
|
||||
size 202400
|
3
lxsession-0.4.5.tar.bz2
Normal file
3
lxsession-0.4.5.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:afcabd5da0e7341e9cb61b501f2f487fafc5fb1ce76bb4f907955dbb32b42883
|
||||
size 209431
|
@ -1,3 +1,8 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 16 16:22:16 UTC 2010 - andrea@opensuse.org
|
||||
|
||||
- new upstream version 0.4.5
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jul 26 06:54:37 UTC 2010 - andrea@opensuse.org
|
||||
|
||||
|
@ -19,22 +19,16 @@
|
||||
|
||||
|
||||
Name: lxsession
|
||||
Version: 0.4.4
|
||||
Version: 0.4.5
|
||||
Release: 7
|
||||
Summary: LXDE Session Manager, required for running the desktop environment
|
||||
Group: System/GUI/LXDE
|
||||
License: GPL
|
||||
Url: http://www.lxde.org/
|
||||
Source0: %{name}-%{version}.tar.bz2
|
||||
# PATCH-FIX-UPSTREAM lxsession-0.4.4-lock-screen-bnc622083.patch bnc#622083 guido+opensuse.org@berhoerster.name
|
||||
# PATCH-FIX-OPENSUSE lxsession-0.4.4-lock-screen-bnc622083.patch bnc#622083 guido+opensuse.org@berhoerster.name
|
||||
# lxsession-logout should lock the screen before suspending/hibernating/switching users
|
||||
Patch0: %name-0.4.4-lock-screen-bnc622083.patch
|
||||
# PATCH-FIX-UPSTREAM lxsession-0.4.4-fix-bnc623192.patch bnc#623192 andrea@opensuse.org
|
||||
# lxsession crasch with signal 6 (SIGABRT)
|
||||
Patch1: %name-0.4.4-fix-bnc623192.patch
|
||||
# PATCH-FIX-UPSTREAM lxsession-0.4.4-fix-bnc627416.patch andrea@opensuse.org
|
||||
# lxsession-logout now finally fully work without hal (using upower) backport patch from upstream git
|
||||
Patch2: %name-0.4.4-fix-bnc627416.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
BuildRequires: dbus-1-glib-devel fdupes gtk2-devel intltool pkg-config
|
||||
BuildRequires: docbook-utils docbook-xsl-stylesheets hal-devel libxslt
|
||||
@ -52,8 +46,6 @@ Authors:
|
||||
%prep
|
||||
%setup -q -n %name-%version
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
|
||||
%build
|
||||
export CFLAGS="$RPM_OPT_FLAGS"
|
||||
|
Loading…
Reference in New Issue
Block a user