मैं किसी भी सूचक गति के बारे में अधिसूचित होने की कोशिश कर रहा हूं। चूंकि मैं विंडो मैनेजर के रूप में नहीं चलना चाहता हूं, इसलिए मुझे स्टार्टअप पर दोनों विंडोज़ पर XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY | XCB_EVENT_MASK_POINTER_MOTION
सेट करना होगा और जब मैं एक फॉर्म को सूचित करता हूं।एक्ससीबी - गति प्राप्त नहीं करना सभी विंडोज़ पर घटनाओं को सूचित करें
यह सामान्य रूप में ठीक से काम करने लगता है और मैं प्राप्त प्रस्ताव सभी खिड़कियों पर घटनाओं को सूचित करें। हालांकि, किसी भी तरह, यह Google क्रोम विंडोज़ के लिए सच नहीं है। मैंने इवेंट मास्क को स्पष्ट रूप से बाद में पूछताछ करके चेक किया और यह सही ढंग से सेट है। मैं प्रचार मास्क में असामान्य कुछ भी नहीं देखता हूं।
क्या गूगल क्रोम की रिपोर्ट नहीं करने के लिए प्रस्ताव की घटनाओं को सूचित कारण बन सकता है? AFAIK, एक्स प्रोटोकॉल अनुमति देता है कि सक्रिय पॉइंटर grabs को छोड़कर जो क्रोम निश्चित रूप से नहीं है।
यहाँ कैसे मैं अपने आप को सभी मौजूदा खिड़कियों पर रजिस्टर है। मैं जड़ खिड़की पर register_events
फोन और जब भी मैं भी एक को सूचित बनाने घटना प्राप्त करते हैं:
static void register_events(xcb_window_t window) {
xcb_void_cookie_t cookie = xcb_change_window_attributes_checked(connection,
window, XCB_CW_EVENT_MASK, (uint32_t[]) { XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY | XCB_EVENT_MASK_POINTER_MOTION | XCB_EVENT_MASK_LEAVE_WINDOW });
xcb_generic_error_t *error = xcb_request_check(connection, cookie);
if (error != NULL) {
xcb_disconnect(connection);
errx(EXIT_FAILURE, "could not subscribe to events on a window, bailing out");
}
}
static void register_existing_windows(void) {
xcb_query_tree_reply_t *reply;
if ((reply = xcb_query_tree_reply(connection, xcb_query_tree(connection, root), 0)) == NULL) {
return;
}
int len = xcb_query_tree_children_length(reply);
xcb_window_t *children = xcb_query_tree_children(reply);
for (int i = 0; i < len; i++) {
register_events(children[i]);
}
xcb_flush(connection);
free(reply);
}
यदि आप इसे चोम विंडो से संलग्न करते हैं तो आप 'xev' से क्या प्राप्त करते हैं? –
@AndrewHenle यह अटैच किया जा रहा है और वहाँ मेरी माउस को ले, यह चारों ओर घूमते रहते हैं, जिससे यह आराम और खिड़की फिर से छोड़ने के केवल देता है मुझे दर्ज/LeaveNotify, KeymapNotify और Focusin/आउट (http://pastebin.com/XQ3ZkVhW) –
मैं भी ऐसा करना चाहिए इंगित करें कि क्रोमियम के साथ एक अलग मशीन पर एक ही अवलोकन किया जा सकता है। –