summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorWilliam Jon McCann <mccann@jhu.edu>2007-03-19 16:35:55 -0400
committerWilliam Jon McCann <mccann@jhu.edu>2007-03-19 16:35:55 -0400
commit4c365a8e28adafd6619ada97d4239e9e6df429ab (patch)
tree07747bdf4b591fffdf753ab7242d8cfbd13f5b02 /src
parentc40a87c622ac1543dc2d9cdccc651e33affadcfa (diff)
add CanActivateSessions to Seat interface
And associated documentation and added to test-fus.
Diffstat (limited to 'src')
-rw-r--r--src/ck-seat.c14
-rw-r--r--src/ck-seat.h32
-rw-r--r--src/ck-seat.xml3
-rwxr-xr-xsrc/test-fus6
4 files changed, 39 insertions, 16 deletions
diff --git a/src/ck-seat.c b/src/ck-seat.c
index 0b8ef80..06f0240 100644
--- a/src/ck-seat.c
+++ b/src/ck-seat.c
@@ -593,6 +593,20 @@ ck_seat_add_session (CkSeat *seat,
}
gboolean
+ck_seat_can_activate_sessions (CkSeat *seat,
+ gboolean *can_activate,
+ GError **error)
+{
+ g_return_val_if_fail (CK_IS_SEAT (seat), FALSE);
+
+ if (can_activate != NULL) {
+ *can_activate = (seat->priv->kind == CK_SEAT_KIND_STATIC);
+ }
+
+ return TRUE;
+}
+
+gboolean
ck_seat_get_kind (CkSeat *seat,
CkSeatKind *kind,
GError **error)
diff --git a/src/ck-seat.h b/src/ck-seat.h
index 0b13eb4..4707bf9 100644
--- a/src/ck-seat.h
+++ b/src/ck-seat.h
@@ -89,22 +89,22 @@ gboolean ck_seat_set_active_session (CkSeat *seat,
GError **error);
/* exported methods */
-gboolean ck_seat_get_id (CkSeat *seat,
- char **sid,
- GError **error);
-gboolean ck_seat_get_seat_type (CkSeat *seat,
- char **type,
- GError **error);
-gboolean ck_seat_get_sessions (CkSeat *seat,
- GPtrArray **sessions,
- GError **error);
-gboolean ck_seat_get_active_session (CkSeat *seat,
- char **ssid,
- GError **error);
-
-gboolean ck_seat_activate_session (CkSeat *seat,
- const char *ssid,
- DBusGMethodInvocation *context);
+gboolean ck_seat_get_id (CkSeat *seat,
+ char **sid,
+ GError **error);
+gboolean ck_seat_get_sessions (CkSeat *seat,
+ GPtrArray **sessions,
+ GError **error);
+gboolean ck_seat_get_active_session (CkSeat *seat,
+ char **ssid,
+ GError **error);
+
+gboolean ck_seat_can_activate_sessions (CkSeat *seat,
+ gboolean *can_activate,
+ GError **error);
+gboolean ck_seat_activate_session (CkSeat *seat,
+ const char *ssid,
+ DBusGMethodInvocation *context);
G_END_DECLS
diff --git a/src/ck-seat.xml b/src/ck-seat.xml
index c6d3ed6..5fda057 100644
--- a/src/ck-seat.xml
+++ b/src/ck-seat.xml
@@ -10,6 +10,9 @@
<method name="GetActiveSession">
<arg name="ssid" direction="out" type="o"/>
</method>
+ <method name="CanActivateSessions">
+ <arg name="can_activate" direction="out" type="b"/>
+ </method>
<method name="ActivateSession">
<annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
<arg name="ssid" direction="in" type="o"/>
diff --git a/src/test-fus b/src/test-fus
index 3ac7921..f904ea9 100755
--- a/src/test-fus
+++ b/src/test-fus
@@ -45,6 +45,12 @@ seat.connect_to_signal ('SessionAdded', session_added_cb)
seat.connect_to_signal ('SessionRemoved', session_removed_cb)
seat.connect_to_signal ('ActiveSessionChanged', active_session_changed_cb)
+can_fus = seat.CanActivateSessions()
+if can_fus:
+ print "The current seat supports session switching"
+else:
+ print "The current seat does not support session switching"
+
# Show a list of sessions on the current seat
sessions = seat.GetSessions ()
for ssid in sessions: