gnome-session r4777 - in trunk: . gnome-session
- From: lucasr svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-session r4777 - in trunk: . gnome-session
- Date: Wed, 25 Jun 2008 18:03:50 +0000 (UTC)
Author: lucasr
Date: Wed Jun 25 18:03:50 2008
New Revision: 4777
URL: http://svn.gnome.org/viewvc/gnome-session?rev=4777&view=rev
Log:
2008-06-25 Lucas Rocha <lucasr gnome org>
Provide a CanShutdown D-Bus method so that other apps (such as
gnome-panel) are able to query session manager if it's a Shutdown
D-Bus call is possible. #536915, Vincent Untz.
* gnome-session/org.gnome.SessionManagement.xml, gnome-session/dbus.c
(gsm_dbus_server_can_shutdown): added CanShutdown method to session
manager D-Bus API.
* gnome-session/logout.[ch] (gsm_logout_can_shutdown,
gsm_logout_can_reboot): renamed logout-dialog.[ch] to logout.[ch] for
consistency (and updated related files accordingly).
Made gsm_logout_can_shutdown() and gsm_logout_can_reboot() public
methods.
Added:
trunk/gnome-session/logout.c
- copied, changed from r4768, /trunk/gnome-session/logout-dialog.c
trunk/gnome-session/logout.h
- copied, changed from r4768, /trunk/gnome-session/logout-dialog.h
Removed:
trunk/gnome-session/logout-dialog.c
trunk/gnome-session/logout-dialog.h
Modified:
trunk/ChangeLog
trunk/gnome-session/Makefile.am
trunk/gnome-session/dbus.c
trunk/gnome-session/org.gnome.SessionManagement.xml
trunk/gnome-session/session.c
Modified: trunk/gnome-session/Makefile.am
==============================================================================
--- trunk/gnome-session/Makefile.am (original)
+++ trunk/gnome-session/Makefile.am Wed Jun 25 18:03:50 2008
@@ -45,8 +45,8 @@
gdm.h \
gdm.c \
gsm.h \
- logout-dialog.h \
- logout-dialog.c \
+ logout.h \
+ logout.c \
main.c \
power-manager.h \
power-manager.c \
Modified: trunk/gnome-session/dbus.c
==============================================================================
--- trunk/gnome-session/dbus.c (original)
+++ trunk/gnome-session/dbus.c Wed Jun 25 18:03:50 2008
@@ -34,7 +34,7 @@
#include "dbus.h"
#include "gsm.h"
-#include "dbus.h"
+#include "logout.h"
enum {
SESSION_RUNNING,
@@ -164,6 +164,10 @@
const char *session_name,
GError **error);
+static gboolean gsm_dbus_server_can_shutdown (GsmDBusServer *dbus,
+ gboolean *can_shutdown,
+ GError **error);
+
#include "dbus-glue.h"
G_DEFINE_TYPE (GsmDBusServer, gsm_dbus_server, G_TYPE_OBJECT)
@@ -323,6 +327,23 @@
return TRUE;
}
+static gboolean
+gsm_dbus_server_can_shutdown (GsmDBusServer *dbus,
+ gboolean *can_shutdown,
+ GError **error)
+{
+ if (gsm_session_get_phase (global_session) != GSM_SESSION_PHASE_RUNNING)
+ {
+ *can_shutdown = FALSE;
+ }
+ else
+ {
+ *can_shutdown = gsm_logout_can_shutdown ();
+ }
+
+ return TRUE;
+}
+
static GsmDBusServer *global_dbus_server;
void
Copied: trunk/gnome-session/logout.c (from r4768, /trunk/gnome-session/logout-dialog.c)
==============================================================================
--- /trunk/gnome-session/logout-dialog.c (original)
+++ trunk/gnome-session/logout.c Wed Jun 25 18:03:50 2008
@@ -31,7 +31,7 @@
#include "gsm.h"
#include "session.h"
-#include "logout-dialog.h"
+#include "logout.h"
#include "power-manager.h"
#include "consolekit.h"
#include "gdm.h"
@@ -198,35 +198,6 @@
current_dialog = NULL;
}
-static gboolean
-gsm_logout_supports_reboot (GsmLogoutDialog *logout_dialog)
-{
- gboolean ret;
-
- ret = gsm_consolekit_can_restart (logout_dialog->priv->consolekit);
- if (!ret)
- {
- ret = gdm_supports_logout_action (GDM_LOGOUT_ACTION_REBOOT);
- }
-
- return ret;
-}
-
-static gboolean
-gsm_logout_supports_shutdown (GsmLogoutDialog *logout_dialog)
-{
- gboolean ret;
-
- ret = gsm_consolekit_can_stop (logout_dialog->priv->consolekit);
-
- if (!ret)
- {
- ret = gdm_supports_logout_action (GDM_LOGOUT_ACTION_SHUTDOWN);
- }
-
- return ret;
-}
-
static void
gsm_logout_dialog_show (GsmLogoutDialog *logout_dialog, gpointer user_data)
{
@@ -326,7 +297,7 @@
}
GtkWidget *
-gsm_get_logout_dialog (GsmSessionLogoutType type,
+gsm_logout_get_dialog (GsmSessionLogoutType type,
GdkScreen *screen,
guint32 activate_time)
{
@@ -388,7 +359,7 @@
_("_Hibernate"),
GSM_LOGOUT_RESPONSE_STD);
- if (gsm_logout_supports_reboot (logout_dialog))
+ if (gsm_logout_can_reboot ())
gtk_dialog_add_button (GTK_DIALOG (logout_dialog),
_("_Restart"),
GSM_LOGOUT_RESPONSE_REBOOT);
@@ -397,7 +368,7 @@
GTK_STOCK_CANCEL,
GTK_RESPONSE_CANCEL);
- if (gsm_logout_supports_shutdown (logout_dialog))
+ if (gsm_logout_can_shutdown ())
gtk_dialog_add_button (GTK_DIALOG (logout_dialog),
_("_Shut Down"),
GSM_LOGOUT_RESPONSE_SHUTDOWN);
@@ -419,3 +390,44 @@
return GTK_WIDGET (logout_dialog);
}
+
+gboolean
+gsm_logout_can_reboot ()
+{
+ GsmConsolekit *consolekit;
+ gboolean ret;
+
+ consolekit = gsm_get_consolekit ();
+
+ ret = gsm_consolekit_can_restart (consolekit);
+
+ if (!ret)
+ {
+ ret = gdm_supports_logout_action (GDM_LOGOUT_ACTION_REBOOT);
+ }
+
+ g_object_unref (consolekit);
+
+ return ret;
+}
+
+gboolean
+gsm_logout_can_shutdown ()
+{
+ GsmConsolekit *consolekit;
+ gboolean ret;
+
+ consolekit = gsm_get_consolekit ();
+
+ ret = gsm_consolekit_can_stop (consolekit);
+
+ if (!ret)
+ {
+ ret = gdm_supports_logout_action (GDM_LOGOUT_ACTION_SHUTDOWN);
+ }
+
+ g_object_unref (consolekit);
+
+ return ret;
+}
+
Copied: trunk/gnome-session/logout.h (from r4768, /trunk/gnome-session/logout-dialog.h)
==============================================================================
--- /trunk/gnome-session/logout-dialog.h (original)
+++ trunk/gnome-session/logout.h Wed Jun 25 18:03:50 2008
@@ -20,8 +20,8 @@
* Vincent Untz <vuntz gnome org>
*/
-#ifndef __GSM_LOGOUT_DIALOG_H__
-#define __GSM_LOGOUT_DIALOG_H__
+#ifndef __GSM_LOGOUT_H__
+#define __GSM_LOGOUT_H__
#include <gtk/gtk.h>
@@ -62,10 +62,14 @@
GType gsm_logout_dialog_get_type (void) G_GNUC_CONST;
-GtkWidget *gsm_get_logout_dialog (GsmSessionLogoutType type,
+GtkWidget *gsm_logout_get_dialog (GsmSessionLogoutType type,
GdkScreen *screen,
guint32 activate_time);
+gboolean gsm_logout_can_shutdown (void);
+
+gboolean gsm_logout_can_reboot (void);
+
G_END_DECLS
-#endif /* __GSM_LOGOUT_DIALOG_H__ */
+#endif /* __GSM_LOGOUT_H__ */
Modified: trunk/gnome-session/org.gnome.SessionManagement.xml
==============================================================================
--- trunk/gnome-session/org.gnome.SessionManagement.xml (original)
+++ trunk/gnome-session/org.gnome.SessionManagement.xml Wed Jun 25 18:03:50 2008
@@ -27,6 +27,10 @@
<arg name="name" type="s" direction="in"/>
</method>
+ <method name="CanShutdown">
+ <arg name="can_shutdown" type="b" direction="out"/>
+ </method>
+
<!-- Signals -->
<signal name="SessionRunning">
Modified: trunk/gnome-session/session.c
==============================================================================
--- trunk/gnome-session/session.c (original)
+++ trunk/gnome-session/session.c Wed Jun 25 18:03:50 2008
@@ -24,7 +24,7 @@
#include "app-autostart.h"
#include "app-resumed.h"
-#include "logout-dialog.h"
+#include "logout.h"
#include "consolekit.h"
#include "power-manager.h"
#include "gdm.h"
@@ -759,7 +759,7 @@
{
GtkWidget *logout_dialog;
- logout_dialog = gsm_get_logout_dialog (logout_type,
+ logout_dialog = gsm_logout_get_dialog (logout_type,
gdk_screen_get_default (),
gtk_get_current_event_time ());
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]