summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--xsettings/ChangeLog19
-rw-r--r--xsettings/xsettings-client.c7
-rw-r--r--xsettings/xsettings-client.h2
-rw-r--r--xsettings/xsettings-common.c3
4 files changed, 27 insertions, 4 deletions
diff --git a/xsettings/ChangeLog b/xsettings/ChangeLog
index 08ae09e..141a909 100644
--- a/xsettings/ChangeLog
+++ b/xsettings/ChangeLog
@@ -1,3 +1,22 @@
+Tue Oct 8 19:19:37 2002 Owen Taylor <otaylor@redhat.com>
+
+ * xsettings-common.c (xsettings_setting_free): Fre
+ the setting name. (Anders Carlsson)
+
+ * xsettings-client.c (xsettings_client_process_event):
+ Be more selective about which manager client events
+ we process. (Anders Carlsson)
+
+ * xsettings-client.c (fetch_card8): Fix cut-and-paste
+ bug (Jacob Berkman, bugzilla.gnome.org #73585)
+
+ * xsettings-client.c (parse_settings): Suppress
+ a signed-unsigned warning (David L. Cooper II
+ bugzilla.gnome.org, #85853)
+
+ * xsettings-client.h (enum): Remove trailing ,
+ (Miroslaw Dobrzanski-Neumann, bugzilla.gnome.org #72182)
+
Thu May 10 15:23:50 2001 Owen Taylor <otaylor@redhat.com>
* xsettings-manager.[ch]: Add xsettings_manager_delete_setting().
diff --git a/xsettings/xsettings-client.c b/xsettings/xsettings-client.c
index fc4ef80..7be2dd1 100644
--- a/xsettings/xsettings-client.c
+++ b/xsettings/xsettings-client.c
@@ -169,7 +169,7 @@ fetch_card8 (XSettingsBuffer *buffer,
if (BYTES_LEFT (buffer) < 1)
return XSETTINGS_ACCESS;
- *result = *(CARD32 *)buffer->pos;
+ *result = *(CARD8 *)buffer->pos;
buffer->pos += 1;
return XSETTINGS_SUCCESS;
@@ -194,7 +194,7 @@ parse_settings (unsigned char *data,
buffer.pos = buffer.data = data;
buffer.len = len;
- result = fetch_card8 (&buffer, &buffer.byte_order);
+ result = fetch_card8 (&buffer, (char *)&buffer.byte_order);
if (buffer.byte_order != MSBFirst &&
buffer.byte_order != LSBFirst)
{
@@ -511,7 +511,8 @@ xsettings_client_process_event (XSettingsClient *client,
if (xev->xany.window == RootWindow (client->display, client->screen))
{
if (xev->xany.type == ClientMessage &&
- xev->xclient.message_type == client->manager_atom)
+ xev->xclient.message_type == client->manager_atom &&
+ xev->xclient.data.l[1] == client->selection_atom)
{
check_manager_window (client);
return True;
diff --git a/xsettings/xsettings-client.h b/xsettings/xsettings-client.h
index 1201829..1b13fe3 100644
--- a/xsettings/xsettings-client.h
+++ b/xsettings/xsettings-client.h
@@ -36,7 +36,7 @@ typedef enum
{
XSETTINGS_ACTION_NEW,
XSETTINGS_ACTION_CHANGED,
- XSETTINGS_ACTION_DELETED,
+ XSETTINGS_ACTION_DELETED
} XSettingsAction;
typedef void (*XSettingsNotifyFunc) (const char *name,
diff --git a/xsettings/xsettings-common.c b/xsettings/xsettings-common.c
index 7507714..3d74440 100644
--- a/xsettings/xsettings-common.c
+++ b/xsettings/xsettings-common.c
@@ -147,6 +147,9 @@ xsettings_setting_free (XSettingsSetting *setting)
{
if (setting->type == XSETTINGS_TYPE_STRING)
free (setting->data.v_string);
+
+ if (setting->name)
+ free (setting->name);
free (setting);
}