j'ai écrit le code suivant pour détecter lorsqu'une fenêtre est créée sur l'écran par une autre application (et non par mon code): cependant,événement createNotify appelé trop souvent
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");
}
Le code fonctionne essentiellement, je remarquai que , quand je démarre une application (par exemple terminal) l'événement CreateNotify
semble être tiré plusieurs fois. Quelqu'un peut-il expliquer pourquoi? Je me serais attendu à ce que CreateNotify
ne soit tiré une fois pour chaque application/fenêtre démarrée. Comment dois-je modifier le code pour y parvenir?
merci pour votre suggestion. essayé mais il semble que 'event' n'a pas de membre appelé' parent': '' XEvent {aka union _XEvent} 'n'a pas de membre nommé' parent'' – Moonlit
@Moonlit Désolé - j'ai oublié le membre du syndicat. Fixé. – cxw
ah ok, merci je suis maintenant compilable, mais malheureusement, le comportement est le même. – Moonlit