내가 감지하기 위해 다음과 같은 코드를 작성라고 :createNotify 이벤트는 윈도우가 (나의 코드에 의해) 다른 응용 프로그램에서 화면에 생성 될 때 너무 자주
Display* display = XOpenDisplay(":0");
XSetWindowAttributes attributes;
attributes.event_mask = SubstructureNotifyMask | StructureNotifyMask;
Window win = XDefaultRootWindow(display);
XChangeWindowAttributes(display, win, CWEventMask, &attributes);
while (1) {
XEvent event;
XNextEvent(display, &event);
if (event.type == CreateNotify)
puts("create Notify event occured\n");
}
코드는 기본적으로 작동
그러나, 나는 것으로 나타났습니다 , 응용 프로그램 (예 : 터미널)을 시작할 때 CreateNotify
이벤트가 여러 번 발생하는 것으로 보입니다. 아무도 이유를 설명 할 수 있습니까? CreateNotify
은 시작된 모든 응용 프로그램/창에 대해 번만 번만 발사 될 것으로 예상됩니다. 어떻게 이것을 달성하기 위해 코드를 수정해야합니까?
의견을 보내 주셔서 감사합니다. 그것을 시도했지만'event'에는'parent'라는 멤버가 없다고 보여집니다 :''XEvent {aka union _XEvent} '에는'parent '라는 멤버가 없습니다. – Moonlit
@Moonlit 죄송합니다 - 조합원을 잊어 버렸습니다. 결정된. – cxw
아, 고맙습니다. 지금은 컴파일 할 수 있지만, 불행히도 동작은 동일합니다. – Moonlit