[comp.windows.x] Controlling Widgets on different Displays

julian@comp.lancs.ac.uk (Julian G. Self) (04/25/91)

Hi,

I am trying to write some code that gives me two topLevelShellWidget's but
with each one being on a different display.

Is this possible without going to the Xlib level?

Thanks in advance to replies posted or emailed..


Julian


=+=-=+=-=+=-=+=-=+=-=+=-=+=-=+=-=+=-=+=-=+=-=+=-=+=-=+=-=+=-=+=-=+=-=+=-=+=-=+=
NAME:	Julian G. Self 			PHONE: +44 524 65201 ext 3816
EMAIL:  julian@uk.ac.lancs.comp         FAX:   +44 524 381707
POST:	University of Lancaster, Department of Computing, Engineering Building,
        Bailrigg, Lancaster, Lancashire, LA1 4YR, UNITED KINGDOM.

jordan@tcs.com (Jordan Hayes) (04/26/91)

Julian G. Self <julian@dcl-cs.UUCP> asks:

	I am trying to write some code that gives me two
	topLevelShellWidget's but with each one being on a different
	display.

	Is this possible without going to the Xlib level?

Yes.  The XtAppContext can handle multiple {di,}similar displays.

/jordan

klee@wsl.dec.com (Ken Lee) (04/26/91)

In article <1270@dcl-vitus.comp.lancs.ac.uk>, julian@comp.lancs.ac.uk (Julian G. Self) writes:
|> I am trying to write some code that gives me two topLevelShellWidget's but
|> with each one being on a different display.
|> 
|> Is this possible without going to the Xlib level?

You can use XtOpenDisplay() and XtCreateApplicationShell() to create
shell widgets on as many displays as you wish.  You can also do
XtGetApplicationResources() on each display to get per-display
resources.  Putting all the displays in the same application context
greatly simplifies event handling, but is not required.

-- 
Ken Lee
DEC Western Software Laboratory, Palo Alto, Calif.
Internet: klee@wsl.dec.com
uucp: uunet!decwrl!klee

slh@gibdo.engr.washington.edu (04/26/91)

In article <1270@dcl-vitus.comp.lancs.ac.uk> julian@dcl-cs.UUCP (Julian G. Self) writes:
|
|Hi,
|
|I am trying to write some code that gives me two topLevelShellWidget's but
|with each one being on a different display.
|
|Is this possible without going to the Xlib level?
|
	Use XtOpenDisplay() for each display and then
	use XtAppCreateShell() for each top level specifying whatever
	display you want for that widget.

david@ap542.uucp (05/14/91)

klee@wsl.dec.com writes:
>julian@comp.lancs.ac.uk (Julian G. Self) writes:
>|> I am trying to write some code that gives me two topLevelShellWidget's but
>|> with each one being on a different display.
>
>You can use XtOpenDisplay() and XtCreateApplicationShell() to create
>shell widgets on as many displays as you wish.  You can also do
>XtGetApplicationResources() on each display to get per-display
>resources.  Putting all the displays in the same application context
>greatly simplifies event handling, but is not required.

Also, if you are using Motif, you will have problems unless those other
display connections are maintained until you exit your application due
to the inappropriate cacheing of shadow pixmaps.  

If you've got source, you can (and must) fix this bug.  Its easy to find
(run it, and the problem is (thankfully) right where it crashes when
you are creating a new widget tree after you have closed a previous
display connection and destroyed that widget tree).   You can either
take out the stupid pixmap cache, or provide a destroy callback on the
application shell to clear out the pixmap cache on that display.

If you don't have source, why the hell don't you !?!

david%ap542@ztivax.siemens.com