Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!wuarchive!bcm!etaylor From: etaylor@wilkins.iaims.bcm.tmc.edu (Eric Taylor) Newsgroups: comp.windows.x Subject: Re: How Do You Monitor Events For More Than 1 Display? Message-ID: <3014@gazette.bcm.tmc.edu> Date: 3 Dec 90 16:24:36 GMT References: <9401@pasteur.Berkeley.EDU> Sender: usenet@bcm.tmc.edu Reply-To: etaylor@wilkins.iaims.bcm.tmc.edu (Eric Taylor) Organization: Baylor College of Medicine, Houston, Tx Lines: 33 Nntp-Posting-Host: wilkins.iaims.bcm.tmc.edu With mulitple displays, you have to use select. If you are not familiar with it, refer to UNIX documentation. Essentially, use select on all of the file descriptors of the displays you have open. When data is avaliable on one of them, do your XNextEvent on it. Be careful to make sure that XPending is 0 on all displays before calling select. for ever busy = False ; for each display dpy if XPending(dpy) > 0 XNextEvent(dpy,&event) Process event busy = True end if end for if not busy Construct fdset of all displays select(...,&fdset,...) for each display dpy that had activity XNextEvent(dpy,&event) Process event end for end if end for -- Eric Taylor Baylor College of Medicine etaylor@wilkins.bcm.tmc.edu (713) 798-3776