Skip to content

Commit 994f788

Browse files
authored
Merge pull request #860 from Shamar/xcb-client-message
demo/xcb_cairo/nuklear_xcb.h: do not discard xcb_client_message_event_t
2 parents 3f71ae1 + dc4e69d commit 994f788

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

demo/xcb_cairo/nuklear_xcb.h

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ struct nk_cairo_context;
4444
enum nk_xcb_event_type {
4545
NK_XCB_EVENT_PAINT = 0x02,
4646
NK_XCB_EVENT_RESIZED = 0x04,
47-
NK_XCB_EVENT_STOP = 0x08
47+
NK_XCB_EVENT_STOP = 0x08,
48+
NK_XCB_CLIENT_MESSAGE = 0x10
4849
};
4950

5051
/* Xcb part: work on windows */
@@ -155,6 +156,7 @@ struct nk_xcb_context {
155156
int events;
156157
xcb_intern_atom_reply_t* del_atom;
157158
int width, height;
159+
xcb_client_message_event_t last_client_message;
158160
};
159161

160162
NK_API struct nk_xcb_context *nk_xcb_init(const char *title, int pos_x, int pos_y, int width, int height)
@@ -241,6 +243,7 @@ NK_API int nk_xcb_handle_event(struct nk_xcb_context *xcb_ctx, struct nk_context
241243
int events = 0;
242244
xcb_generic_event_t *event;
243245
static int insert_toggle = 0;
246+
static const xcb_client_message_event_t EMPTY_CLIENT_MESSAGE;
244247

245248
#ifdef NK_XCB_MIN_FRAME_TIME
246249
struct timespec tp;
@@ -251,6 +254,7 @@ NK_API int nk_xcb_handle_event(struct nk_xcb_context *xcb_ctx, struct nk_context
251254

252255
event = xcb_wait_for_event(xcb_ctx->conn);
253256

257+
xcb_ctx->last_client_message = EMPTY_CLIENT_MESSAGE;
254258
nk_input_begin(nk_ctx);
255259
do {
256260
switch (XCB_EVENT_RESPONSE_TYPE(event)) {
@@ -424,6 +428,11 @@ NK_API int nk_xcb_handle_event(struct nk_xcb_context *xcb_ctx, struct nk_context
424428
{
425429
events = NK_XCB_EVENT_STOP;
426430
}
431+
else
432+
{
433+
xcb_ctx->last_client_message = *cm;
434+
events = NK_XCB_CLIENT_MESSAGE;
435+
}
427436
}
428437
break;
429438
default:

0 commit comments

Comments
 (0)