summaryrefslogtreecommitdiffstats
path: root/xsettings/xsettings-client.c
diff options
context:
space:
mode:
Diffstat (limited to 'xsettings/xsettings-client.c')
-rw-r--r--xsettings/xsettings-client.c7
1 files changed, 4 insertions, 3 deletions
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;