gnome-session r4860 - in branches/dbus_based: . gnome-session
- From: mccann svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-session r4860 - in branches/dbus_based: . gnome-session
- Date: Sun, 27 Jul 2008 19:42:33 +0000 (UTC)
Author: mccann
Date: Sun Jul 27 19:42:33 2008
New Revision: 4860
URL: http://svn.gnome.org/viewvc/gnome-session?rev=4860&view=rev
Log:
2008-07-27 William Jon McCann <jmccann redhat com>
* gnome-session/Makefile.am:
* gnome-session/gsm-client.c:
* gnome-session/gsm-inhibitor.c (register_inhibitor),
(gsm_inhibitor_constructor):
* gnome-session/gsm-inhibitor.xml:
Put inhibitors on the bus.
Added:
branches/dbus_based/gnome-session/gsm-inhibitor.xml
Modified:
branches/dbus_based/ChangeLog
branches/dbus_based/gnome-session/Makefile.am
branches/dbus_based/gnome-session/gsm-client.c
branches/dbus_based/gnome-session/gsm-inhibitor.c
Modified: branches/dbus_based/gnome-session/Makefile.am
==============================================================================
--- branches/dbus_based/gnome-session/Makefile.am (original)
+++ branches/dbus_based/gnome-session/Makefile.am Sun Jul 27 19:42:33 2008
@@ -113,6 +113,9 @@
gsm-client-glue.h: gsm-client.xml Makefile.am
dbus-binding-tool --prefix=gsm_client --mode=glib-server --output=gsm-client-glue.h $(srcdir)/gsm-client.xml
+gsm-inhibitor-glue.h: gsm-inhibitor.xml Makefile.am
+ dbus-binding-tool --prefix=gsm_inhibitor --mode=glib-server --output=gsm-inhibitor-glue.h $(srcdir)/gsm-inhibitor.xml
+
gsm-dbus-client-glue.h: gsm-dbus-client.xml Makefile.am
dbus-binding-tool --prefix=gsm_dbus_client --mode=glib-server --output=gsm-dbus-client-glue.h $(srcdir)/gsm-dbus-client.xml
@@ -120,6 +123,7 @@
gsm-marshal.c \
gsm-marshal.h \
gsm-manager-glue.h \
+ gsm-inhibitor-glue.h \
gsm-client-glue.h \
gsm-dbus-client-glue.h \
$(NULL)
@@ -133,6 +137,7 @@
gsm-marshal.list \
gsm-manager.xml \
gsm-client.xml \
+ gsm-inhibitor.xml \
gsm-dbus-client.xml \
$(NULL)
Modified: branches/dbus_based/gnome-session/gsm-client.c
==============================================================================
--- branches/dbus_based/gnome-session/gsm-client.c (original)
+++ branches/dbus_based/gnome-session/gsm-client.c Sun Jul 27 19:42:33 2008
@@ -19,9 +19,7 @@
* 02111-1307, USA.
*/
-#ifdef HAVE_CONFIG_H
#include "config.h"
-#endif
#include <dbus/dbus-glib.h>
@@ -94,7 +92,6 @@
return TRUE;
}
-
static GObject *
gsm_client_constructor (GType type,
guint n_construct_properties,
Modified: branches/dbus_based/gnome-session/gsm-inhibitor.c
==============================================================================
--- branches/dbus_based/gnome-session/gsm-inhibitor.c (original)
+++ branches/dbus_based/gnome-session/gsm-inhibitor.c Sun Jul 27 19:42:33 2008
@@ -26,7 +26,10 @@
#include <time.h>
#include <unistd.h>
+#include <dbus/dbus-glib.h>
+
#include "gsm-inhibitor.h"
+#include "gsm-inhibitor-glue.h"
static guint32 inhibitor_serial = 1;
@@ -42,6 +45,7 @@
guint flags;
guint toplevel_xid;
guint cookie;
+ DBusGConnection *connection;
};
enum {
@@ -71,12 +75,33 @@
return serial;
}
+static gboolean
+register_inhibitor (GsmInhibitor *inhibitor)
+{
+ GError *error;
+
+ error = NULL;
+ inhibitor->priv->connection = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
+ if (inhibitor->priv->connection == NULL) {
+ if (error != NULL) {
+ g_critical ("error getting session bus: %s", error->message);
+ g_error_free (error);
+ }
+ return FALSE;
+ }
+
+ dbus_g_connection_register_g_object (inhibitor->priv->connection, inhibitor->priv->id, G_OBJECT (inhibitor));
+
+ return TRUE;
+}
+
static GObject *
gsm_inhibitor_constructor (GType type,
guint n_construct_properties,
GObjectConstructParam *construct_properties)
{
GsmInhibitor *inhibitor;
+ gboolean res;
inhibitor = GSM_INHIBITOR (G_OBJECT_CLASS (gsm_inhibitor_parent_class)->constructor (type,
n_construct_properties,
@@ -84,6 +109,10 @@
g_free (inhibitor->priv->id);
inhibitor->priv->id = g_strdup_printf ("/org/gnome/SessionManager/Inhibitor%u", get_next_inhibitor_serial ());
+ res = register_inhibitor (inhibitor);
+ if (! res) {
+ g_warning ("Unable to register inhibitor with session bus");
+ }
return G_OBJECT (inhibitor);
}
Added: branches/dbus_based/gnome-session/gsm-inhibitor.xml
==============================================================================
--- (empty file)
+++ branches/dbus_based/gnome-session/gsm-inhibitor.xml Sun Jul 27 19:42:33 2008
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
+<node>
+ <interface name="org.gnome.SessionManager.Inhibitor">
+ </interface>
+</node>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]