[Xcb] Responding to _NET_WM_PING

Nicholas Allen nick.allen at onlinehome.de
Mon Mar 22 09:41:50 PDT 2010


If I make a copy of the event and then respond it seems to work:

xcb_client_message_event_t pingResponse;

               pingResponse.response_type = XCB_CLIENT_MESSAGE;
               pingResponse.format = 32;
               pingResponse.sequence = clientEvent->sequence;
               pingResponse.window = screen->root;
               pingResponse.type = displayData->WM_PROTOCOLS_ATOM;
              
               for (int i = 0; i < 5; i++)
               {
                  pingResponse.data.data32[i] = clientEvent->data.data32[i];
               }
              
               xcb_send_event(connection, false, screen->root,
XCB_EVENT_MASK_STRUCTURE_NOTIFY | XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT,
(const char*)&pingResponse);

Why is it necessary to make a copy of the event? It's a bit misleading
that the standard says to just set the window field and send it back but
this does not work with XCB.

But main thing is problem is solved ;-)

Nick




More information about the Xcb mailing list