37 lines
1.4 KiB
Diff
37 lines
1.4 KiB
Diff
diff --git a/src/xselect.c b/src/xselect.c
|
|
index b3017c3..4ba4984 100644
|
|
--- a/src/xselect.c
|
|
+++ b/src/xselect.c
|
|
@@ -2659,6 +2659,8 @@ x_send_client_event (Lisp_Object display, Lisp_Object dest, Lisp_Object from,
|
|
|
|
block_input ();
|
|
|
|
+ event.xclient.send_event = True;
|
|
+ event.xclient.serial = 0;
|
|
event.xclient.message_type = message_type;
|
|
event.xclient.display = dpyinfo->display;
|
|
|
|
@@ -2667,18 +2669,19 @@ x_send_client_event (Lisp_Object display, Lisp_Object dest, Lisp_Object from,
|
|
event.xclient.window = to_root ? FRAME_OUTER_WINDOW (f) : wdest;
|
|
|
|
|
|
- memset (event.xclient.data.b, 0, sizeof (event.xclient.data.b));
|
|
+ memset (event.xclient.data.l, 0, sizeof (event.xclient.data.l));
|
|
x_fill_property_data (dpyinfo->display, values, event.xclient.data.b,
|
|
event.xclient.format);
|
|
|
|
/* If event mask is 0 the event is sent to the client that created
|
|
the destination window. But if we are sending to the root window,
|
|
- there is no such client. Then we set the event mask to 0xffff. The
|
|
+ there is no such client. Then we set the event mask to 0xffffff. The
|
|
event then goes to clients selecting for events on the root window. */
|
|
x_catch_errors (dpyinfo->display);
|
|
{
|
|
int propagate = to_root ? False : True;
|
|
- unsigned mask = to_root ? 0xffff : 0;
|
|
+ long mask = to_root ? 0xffffff : 0;
|
|
+
|
|
XSendEvent (dpyinfo->display, wdest, propagate, mask, &event);
|
|
XFlush (dpyinfo->display);
|
|
}
|