Author: kelnos
Date: 2008-10-18 10:31:55 +0000 (Sat, 18 Oct 2008)
New Revision: 28290
Modified:
xfconf/trunk/NEWS
xfconf/trunk/docs/reference/Makefile.am
xfconf/trunk/docs/reference/tmpl/xfconf-channel.sgml
xfconf/trunk/docs/reference/xfconf-sections.txt
xfconf/trunk/xfconf/xfconf-binding.c
xfconf/trunk/xfconf/xfconf-channel.c
xfconf/trunk/xfconf/xfconf-channel.h
xfconf/trunk/xfconf/xfconf-private.h
xfconf/trunk/xfconf/xfconf.symbols
Log:
add xfconf_channel_new_with_property_base()
Modified: xfconf/trunk/NEWS
===================================================================
--- xfconf/trunk/NEWS 2008-10-18 08:42:09 UTC (rev 28289)
+++ xfconf/trunk/NEWS 2008-10-18 10:31:55 UTC (rev 28290)
@@ -1,3 +1,12 @@
+Xfce 4.6beta2 (Xfce 4.5.92)
+===========================
+
+ * Add xfconf_channel_new_with_property_base() to restrict a channel
+ to a subset of the property tree.
+ * Add G_GNUC_DEPRECATED guards to xfconf_channel_remove_property()
+ and xfconf_channel_remove_properties().
+
+
Xfce 4.6beta1 (Xfce 4.5.91)
===========================
Modified: xfconf/trunk/docs/reference/Makefile.am
===================================================================
--- xfconf/trunk/docs/reference/Makefile.am 2008-10-18 08:42:09 UTC (rev
28289)
+++ xfconf/trunk/docs/reference/Makefile.am 2008-10-18 10:31:55 UTC (rev
28290)
@@ -9,7 +9,7 @@
DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
# Extra options to supply to gtkdoc-scan
-SCAN_OPTIONS=--deprecated-guards="XFCE_DISABLE_DEPRECATED|XFCONF_DISABLE_DEPRECATED"
+SCAN_OPTIONS=--deprecated-guards="XFCONF_DISABLE_DEPRECATED"
# The directory containing the source code. Relative to $(srcdir)
DOC_SOURCE_DIR=../..
Modified: xfconf/trunk/docs/reference/tmpl/xfconf-channel.sgml
===================================================================
--- xfconf/trunk/docs/reference/tmpl/xfconf-channel.sgml 2008-10-18
08:42:09 UTC (rev 28289)
+++ xfconf/trunk/docs/reference/tmpl/xfconf-channel.sgml 2008-10-18
10:31:55 UTC (rev 28290)
@@ -40,6 +40,11 @@
</para>
+<!-- ##### ARG XfconfChannel:property-base ##### -->
+<para>
+
+</para>
+
<!-- ##### FUNCTION xfconf_channel_get ##### -->
<para>
@@ -58,6 +63,16 @@
@Returns:
+<!-- ##### FUNCTION xfconf_channel_new_with_property_base ##### -->
+<para>
+
+</para>
+
[EMAIL PROTECTED]:
[EMAIL PROTECTED]:
[EMAIL PROTECTED]:
+
+
<!-- ##### FUNCTION xfconf_channel_has_property ##### -->
<para>
Modified: xfconf/trunk/docs/reference/xfconf-sections.txt
===================================================================
--- xfconf/trunk/docs/reference/xfconf-sections.txt 2008-10-18 08:42:09 UTC
(rev 28289)
+++ xfconf/trunk/docs/reference/xfconf-sections.txt 2008-10-18 10:31:55 UTC
(rev 28290)
@@ -3,6 +3,7 @@
XfconfChannel
xfconf_channel_get
xfconf_channel_new
+xfconf_channel_new_with_property_base
xfconf_channel_has_property
xfconf_channel_is_property_locked
xfconf_channel_reset_property
Modified: xfconf/trunk/xfconf/xfconf-binding.c
===================================================================
--- xfconf/trunk/xfconf/xfconf-binding.c 2008-10-18 08:42:09 UTC (rev
28289)
+++ xfconf/trunk/xfconf/xfconf-binding.c 2008-10-18 10:31:55 UTC (rev
28290)
@@ -30,6 +30,7 @@
#include "xfconf.h"
#include "xfconf-alias.h"
#include "xfconf-common-private.h"
+#include "xfconf-private.h"
typedef struct
{
@@ -277,15 +278,21 @@
gchar buf[1024];
GSList *bindings;
GValue value = { 0, };
+ const gchar *property_base;
binding = g_slice_new0(XfconfGBinding);
binding->channel = channel;
- binding->xfconf_property = g_strdup(xfconf_property);
binding->xfconf_property_type = xfconf_property_type;
binding->object = object;
binding->object_property = g_strdup(object_property);
binding->object_property_type = object_property_type;
+ property_base = _xfconf_channel_get_property_base(channel);
+ if(G_UNLIKELY(property_base))
+ binding->xfconf_property = g_strconcat(property_base, xfconf_property,
NULL);
+ else
+ binding->xfconf_property = g_strdup(xfconf_property);
+
g_object_weak_ref(G_OBJECT(channel),
xfconf_g_binding_channel_destroyed,
binding);
@@ -293,7 +300,7 @@
xfconf_g_binding_object_destroyed,
binding);
- g_snprintf(buf, sizeof(buf), "property-changed::%s", xfconf_property);
+ g_snprintf(buf, sizeof(buf), "property-changed::%s",
binding->xfconf_property);
g_signal_connect(G_OBJECT(channel), buf,
G_CALLBACK(xfconf_g_binding_channel_property_changed),
binding);
@@ -405,12 +412,25 @@
{
GSList *bindings = g_object_steal_data(G_OBJECT(object), DATA_KEY);
GSList *l;
+ gchar *real_xfconf_property;
+ const gchar *property_base;
+ g_return_if_fail(XFCONF_IS_CHANNEL(channel)
+ && xfconf_property && *xfconf_property
+ && G_IS_OBJECT(object)
+ && object_property && *object_property);
+
+ property_base = _xfconf_channel_get_property_base(channel);
+ if(G_UNLIKELY (property_base))
+ real_xfconf_property = g_strconcat(property_base, xfconf_property,
NULL);
+ else
+ real_xfconf_property = (gchar *)xfconf_property;
+
for(l = bindings; l; l = l->next) {
XfconfGBinding *binding = l->data;
if(channel == binding->channel
- && !strcmp(xfconf_property, binding->xfconf_property)
+ && !strcmp(real_xfconf_property, binding->xfconf_property)
&& !strcmp(object_property, binding->object_property))
{
bindings = g_slist_delete_link(bindings, l);
@@ -419,6 +439,9 @@
}
}
+ if(real_xfconf_property != xfconf_property)
+ g_free(real_xfconf_property);
+
if(bindings) {
g_object_set_data_full(G_OBJECT(object), DATA_KEY,
bindings, (GDestroyNotify)g_slist_free);
Modified: xfconf/trunk/xfconf/xfconf-channel.c
===================================================================
--- xfconf/trunk/xfconf/xfconf-channel.c 2008-10-18 08:42:09 UTC (rev
28289)
+++ xfconf/trunk/xfconf/xfconf-channel.c 2008-10-18 10:31:55 UTC (rev
28290)
@@ -36,6 +36,11 @@
#define ALIGN_VAL(val, align) ( ((val) + ((align) -1)) & ~((align) - 1) )
+#define REAL_PROP(channel, property) ( (channel)->property_base \
+ ? g_strconcat
((channel)->property_base, \
+ (property), NULL) \
+ : (gchar *)(property) )
+
#ifdef XFCONF_ENABLE_CHECKS
#define ERROR_DEFINE GError *___error = NULL
@@ -66,6 +71,7 @@
GObject parent;
gchar *channel_name;
+ gchar *property_base;
};
typedef struct _XfconfChannelClass
@@ -87,6 +93,7 @@
{
PROP0 = 0,
PROP_CHANNEL_NAME,
+ PROP_PROPERTY_BASE,
};
static void xfconf_channel_class_init(XfconfChannelClass *klass);
@@ -170,6 +177,23 @@
| G_PARAM_STATIC_NAME
| G_PARAM_STATIC_NICK
|
G_PARAM_STATIC_BLURB));
+
+ /**
+ * XfconfChannel::property-base:
+ *
+ * The string identifier used for the property base inside a channel.
+ * This can be used to restrict a channel to a subset of properties.
+ **/
+ g_object_class_install_property(object_class, PROP_PROPERTY_BASE,
+ g_param_spec_string("property-base",
+ "Property Base",
+ "Base property path",
+ NULL,
+ G_PARAM_READWRITE
+ |
G_PARAM_CONSTRUCT_ONLY
+ | G_PARAM_STATIC_NAME
+ | G_PARAM_STATIC_NICK
+ |
G_PARAM_STATIC_BLURB));
}
static void
@@ -195,6 +219,10 @@
XFCONF_CHANNEL(object)->channel_name = g_value_dup_string(value);
break;
+ case PROP_PROPERTY_BASE:
+ XFCONF_CHANNEL(object)->property_base = g_value_dup_string(value);
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec);
break;
@@ -212,6 +240,10 @@
g_value_set_string(value, XFCONF_CHANNEL(object)->channel_name);
break;
+ case PROP_PROPERTY_BASE:
+ g_value_set_string(value, XFCONF_CHANNEL(object)->property_base);
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec);
break;
@@ -233,6 +265,7 @@
channel);
g_free(channel->channel_name);
+ g_free(channel->property_base);
if(__channel_singletons)
g_hash_table_remove(__channel_singletons, channel);
@@ -251,6 +284,14 @@
}
}
+
+const gchar *
+_xfconf_channel_get_property_base(XfconfChannel *channel)
+{
+ return channel->property_base;
+}
+
+
static void
xfconf_channel_property_changed(DBusGProxy *proxy,
const gchar *channel_name,
@@ -260,9 +301,19 @@
{
XfconfChannel *channel = XFCONF_CHANNEL(user_data);
- if(strcmp(channel_name, channel->channel_name))
+ if(strcmp(channel_name, channel->channel_name)
+ || (channel->property_base
+ && !g_str_has_prefix(property, channel->property_base)))
+ {
return;
+ }
+ if(channel->property_base) {
+ property += strlen(channel->property_base);
+ if(!*property)
+ property = "/";
+ }
+
g_signal_emit(G_OBJECT(channel), signals[SIG_PROPERTY_CHANGED],
g_quark_from_string(property), property, value);
}
@@ -276,15 +327,49 @@
XfconfChannel *channel = XFCONF_CHANNEL(user_data);
GValue value = { 0, };
- if(strcmp(channel_name, channel->channel_name))
+ if(strcmp(channel_name, channel->channel_name)
+ || (channel->property_base
+ && !g_str_has_prefix(property, channel->property_base)))
+ {
return;
+ }
+ if(channel->property_base) {
+ property += strlen(channel->property_base);
+ if(!*property)
+ property = "/";
+ }
+
g_signal_emit(G_OBJECT(channel), signals[SIG_PROPERTY_CHANGED],
g_quark_from_string(property), property, &value);
}
+
static gboolean
+xfconf_channel_set_internal(XfconfChannel *channel,
+ const gchar *property,
+ GValue *value)
+{
+ DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
+ gboolean ret;
+ gchar *real_property = REAL_PROP(channel, property);
+ ERROR_DEFINE;
+
+ g_return_val_if_fail(XFCONF_IS_CHANNEL(channel) && property, FALSE);
+
+ ret = xfconf_client_set_property(proxy, channel->channel_name,
real_property,
+ value, ERROR);
+ if(!ret)
+ ERROR_CHECK;
+
+ if(real_property != property)
+ g_free(real_property);
+
+ return ret;
+}
+
+static gboolean
xfconf_channel_get_internal(XfconfChannel *channel,
const gchar *property,
GValue *value)
@@ -292,6 +377,7 @@
DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
GValue tmp_val = { 0, }, *val;
gboolean ret;
+ gchar *real_property = REAL_PROP(channel, property);
ERROR_DEFINE;
/* we support 2 ways of using this function:
@@ -306,8 +392,8 @@
else
val = value;
- ret = xfconf_client_get_property(proxy, channel->channel_name, property,
- val, ERROR);
+ ret = xfconf_client_get_property(proxy, channel->channel_name,
+ real_property, val, ERROR);
if(!ret)
ERROR_CHECK;
@@ -315,13 +401,15 @@
if(!g_value_transform(val, value)) {
g_warning("Unable to tranform value of type \"%s\" to type \"%s\"
for property %s",
G_VALUE_TYPE_NAME(val), G_VALUE_TYPE_NAME(value),
- property);
- g_value_unset(val);
- return FALSE;
+ real_property);
+ ret = FALSE;
}
g_value_unset(val);
}
+ if(real_property != property)
+ g_free(real_property);
+
return ret;
}
@@ -480,6 +568,32 @@
}
/**
+ * xfconf_channel_new_with_property_base:
+ * @channel_name: A channel name.
+ * @property_base: A property root name.
+ *
+ * Creates a new channel using @name as the channel's identifier,
+ * restricting the accessible properties to be rooted at
+ * @property_base. This function always returns a valid object;
+ * no checking is done to see if the channel exists or has a valid
+ * name.
+ *
+ * Returns: A new #XfconfChannel. Release with g_object_unref()
+ * when no longer needed.
+ *
+ * Since: 4.5.92
+ **/
+XfconfChannel *
+xfconf_channel_new_with_property_base(const gchar *channel_name,
+ const gchar *property_base)
+{
+ return g_object_new(XFCONF_TYPE_CHANNEL,
+ "channel-name", channel_name,
+ "property-base", property_base,
+ NULL);
+}
+
+/**
* xfconf_channel_has_property:
* @channel: An #XfconfChannel.
* @property: A property name.
@@ -494,15 +608,19 @@
{
DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
gboolean exists = FALSE;
+ gchar *real_property = REAL_PROP(channel, property);
ERROR_DEFINE;
- if(!xfconf_client_property_exists(proxy, channel->channel_name, property,
- &exists, ERROR))
+ if(!xfconf_client_property_exists(proxy, channel->channel_name,
+ real_property, &exists, ERROR))
{
ERROR_CHECK;
- return FALSE;
+ exists = FALSE;
}
+ if(real_property != property)
+ g_free(real_property);
+
return exists;
}
@@ -526,15 +644,19 @@
{
DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
gboolean locked = FALSE;
+ gchar *real_property = REAL_PROP(channel, property);
ERROR_DEFINE;
if(!xfconf_client_is_property_locked(proxy, channel->channel_name,
property, &locked, ERROR))
{
ERROR_CHECK;
- return FALSE;
+ locked = FALSE;
}
+ if(real_property != property)
+ g_free(real_property);
+
return locked;
}
@@ -567,6 +689,7 @@
gboolean recursive)
{
DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
+ gchar *real_property_base = REAL_PROP(channel, property_base);
ERROR_DEFINE;
g_return_if_fail(XFCONF_IS_CHANNEL(channel) &&
@@ -574,10 +697,13 @@
|| recursive));
if(!xfconf_client_reset_property(proxy, channel->channel_name,
- property_base, recursive, ERROR))
+ real_property_base, recursive, ERROR))
{
ERROR_CHECK;
}
+
+ if(real_property_base != property_base)
+ g_free(real_property_base);
}
/**
@@ -638,16 +764,29 @@
{
DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
GHashTable *properties = NULL;
+ gchar *real_property_base;
ERROR_DEFINE;
+ if(!property_base || (property_base[0] == '/' && !property_base[1]))
+ real_property_base = channel->property_base;
+ else
+ real_property_base = REAL_PROP(channel, property_base);
+
if(!xfconf_client_get_all_properties(proxy, channel->channel_name,
- property_base ? property_base : "/",
+ real_property_base
+ ? real_property_base : "/",
&properties, ERROR))
{
ERROR_CHECK;
- return NULL;
+ properties = NULL;
}
+ if(real_property_base != property_base
+ && real_property_base != channel->property_base)
+ {
+ g_free(real_property_base);
+ }
+
return properties;
}
@@ -893,20 +1032,15 @@
const gchar *property,
const gchar *value)
{
- DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
GValue val = { 0, };
gboolean ret;
- ERROR_DEFINE;
g_return_val_if_fail(XFCONF_IS_CHANNEL(channel) && property && value,
FALSE);
g_value_init(&val, G_TYPE_STRING);
g_value_set_string(&val, value);
- ret = xfconf_client_set_property(proxy, channel->channel_name, property,
- &val, ERROR);
- if(!ret)
- ERROR_CHECK;
+ ret = xfconf_channel_set_internal(channel, property, &val);
g_value_unset(&val);
@@ -970,20 +1104,15 @@
const gchar *property,
gint value)
{
- DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
GValue val = { 0, };
gboolean ret;
- ERROR_DEFINE;
g_return_val_if_fail(XFCONF_IS_CHANNEL(channel) && property, FALSE);
g_value_init(&val, G_TYPE_INT);
g_value_set_int(&val, value);
- ret = xfconf_client_set_property(proxy, channel->channel_name, property,
- &val, ERROR);
- if(!ret)
- ERROR_CHECK;
+ ret = xfconf_channel_set_internal(channel, property, &val);
g_value_unset(&val);
@@ -1005,20 +1134,15 @@
const gchar *property,
guint32 value)
{
- DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
GValue val = { 0, };
gboolean ret;
- ERROR_DEFINE;
g_return_val_if_fail(XFCONF_IS_CHANNEL(channel) && property, FALSE);
g_value_init(&val, G_TYPE_UINT);
g_value_set_uint(&val, value);
- ret = xfconf_client_set_property(proxy, channel->channel_name, property,
- &val, ERROR);
- if(!ret)
- ERROR_CHECK;
+ ret = xfconf_channel_set_internal(channel, property, &val);
g_value_unset(&val);
@@ -1040,20 +1164,15 @@
const gchar *property,
guint64 value)
{
- DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
GValue val = { 0, };
gboolean ret;
- ERROR_DEFINE;
g_return_val_if_fail(XFCONF_IS_CHANNEL(channel) && property, FALSE);
g_value_init(&val, G_TYPE_UINT64);
g_value_set_uint64(&val, value);
- ret = xfconf_client_set_property(proxy, channel->channel_name, property,
- &val, ERROR);
- if(!ret)
- ERROR_CHECK;
+ ret = xfconf_channel_set_internal(channel, property, &val);
g_value_unset(&val);
@@ -1075,20 +1194,15 @@
const gchar *property,
gdouble value)
{
- DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
GValue val = { 0, };
gboolean ret;
- ERROR_DEFINE;
g_return_val_if_fail(XFCONF_IS_CHANNEL(channel) && property, FALSE);
g_value_init(&val, G_TYPE_DOUBLE);
g_value_set_double(&val, value);
- ret = xfconf_client_set_property(proxy, channel->channel_name, property,
- &val, ERROR);
- if(!ret)
- ERROR_CHECK;
+ ret = xfconf_channel_set_internal(channel, property, &val);
g_value_unset(&val);
@@ -1110,20 +1224,15 @@
const gchar *property,
gboolean value)
{
- DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
GValue val = { 0, };
gboolean ret;
- ERROR_DEFINE;
g_return_val_if_fail(XFCONF_IS_CHANNEL(channel) && property, FALSE);
g_value_init(&val, G_TYPE_BOOLEAN);
g_value_set_boolean(&val, value);
- ret = xfconf_client_set_property(proxy, channel->channel_name, property,
- &val, ERROR);
- if(!ret)
- ERROR_CHECK;
+ ret = xfconf_channel_set_internal(channel, property, &val);
g_value_unset(&val);
@@ -1224,11 +1333,9 @@
const gchar *property,
const GValue *value)
{
- DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
GValue *val, tmp_val = { 0, };
GPtrArray *arr_new = NULL;
gboolean ret;
- ERROR_DEFINE;
g_return_val_if_fail(XFCONF_IS_CHANNEL(channel) && property && value,
FALSE);
@@ -1254,10 +1361,7 @@
} else
val = (GValue *)value;
- ret = xfconf_client_set_property(proxy, channel->channel_name, property,
- val, ERROR);
- if(!ret)
- ERROR_CHECK;
+ ret = xfconf_channel_set_internal(channel, property, val);
if(val == &tmp_val)
g_value_unset(&tmp_val);
@@ -1439,19 +1543,15 @@
xfconf_channel_get_arrayv(XfconfChannel *channel,
const gchar *property)
{
- DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
GValue val = { 0, };
GPtrArray *arr = NULL;
- ERROR_DEFINE;
+ gboolean ret;
g_return_val_if_fail(XFCONF_IS_CHANNEL(channel) && property, NULL);
- if(!xfconf_client_get_property(proxy, channel->channel_name, property,
- &val, ERROR))
- {
- ERROR_CHECK;
+ ret = xfconf_channel_get_internal(channel, property, &val);
+ if(!ret)
return NULL;
- }
if(XFCONF_TYPE_G_VALUE_ARRAY != G_VALUE_TYPE(&val)) {
g_value_unset(&val);
@@ -1622,11 +1722,9 @@
const gchar *property,
GPtrArray *values)
{
- DBusGProxy *proxy = _xfconf_get_dbus_g_proxy();
GPtrArray *values_new = NULL;
GValue val = { 0, };
gboolean ret;
- ERROR_DEFINE;
g_return_val_if_fail(XFCONF_IS_CHANNEL(channel) && property && values,
FALSE);
@@ -1636,12 +1734,8 @@
g_value_init(&val, XFCONF_TYPE_G_VALUE_ARRAY);
g_value_set_static_boxed(&val, values_new ? values_new : values);
- ret = xfconf_client_set_property(proxy, channel->channel_name, property,
- &val, ERROR);
+ ret = xfconf_channel_set_internal(channel, property, &val);
- if(!ret)
- ERROR_CHECK;
-
g_value_unset(&val);
if(values_new)
Modified: xfconf/trunk/xfconf/xfconf-channel.h
===================================================================
--- xfconf/trunk/xfconf/xfconf-channel.h 2008-10-18 08:42:09 UTC (rev
28289)
+++ xfconf/trunk/xfconf/xfconf-channel.h 2008-10-18 10:31:55 UTC (rev
28290)
@@ -39,10 +39,13 @@
GType xfconf_channel_get_type() G_GNUC_CONST;
-XfconfChannel *xfconf_channel_get(const gchar *channel_name)
G_GNUC_WARN_UNUSED_RESULT;
+XfconfChannel *xfconf_channel_get(const gchar *channel_name);
XfconfChannel *xfconf_channel_new(const gchar *channel_name)
G_GNUC_WARN_UNUSED_RESULT;
+XfconfChannel *xfconf_channel_new_with_property_base(const gchar *channel_name,
+ const gchar
*property_base) G_GNUC_WARN_UNUSED_RESULT;
+
gboolean xfconf_channel_has_property(XfconfChannel *channel,
const gchar *property);
Modified: xfconf/trunk/xfconf/xfconf-private.h
===================================================================
--- xfconf/trunk/xfconf/xfconf-private.h 2008-10-18 08:42:09 UTC (rev
28289)
+++ xfconf/trunk/xfconf/xfconf-private.h 2008-10-18 10:31:55 UTC (rev
28290)
@@ -30,6 +30,8 @@
DBusGProxy *_xfconf_get_dbus_g_proxy();
DBusGProxy *_xfconf_get_gui_dbus_g_proxy();
+const gchar *_xfconf_channel_get_property_base(XfconfChannel *channel);
+
XfconfNamedStruct *_xfconf_named_struct_lookup(const gchar *struct_name);
void _xfconf_channel_shutdown();
Modified: xfconf/trunk/xfconf/xfconf.symbols
===================================================================
--- xfconf/trunk/xfconf/xfconf.symbols 2008-10-18 08:42:09 UTC (rev 28289)
+++ xfconf/trunk/xfconf/xfconf.symbols 2008-10-18 10:31:55 UTC (rev 28290)
@@ -58,6 +58,7 @@
xfconf_channel_get_type G_GNUC_CONST
xfconf_channel_get
xfconf_channel_new
+xfconf_channel_new_with_property_base
xfconf_channel_has_property
xfconf_channel_is_property_locked
xfconf_channel_reset_property
_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits