[comp.windows.x] root-window

schwengeler@urz.unibas.ch (03/06/91)

Dear knowledgeable X_gurus,

I'd like to load an X11 bitmap file into the root window on my
VAXstation 3500 runnung under VMS V5.4-1 and DECwindows.
I use the program xloadimage which works fine for displaying
the image in a window. Appearently, DECwindows has over its
real root window some pseudo-root window which hides everything
uder it. When using "$ xloadimage -onroot imgae.xbm", the
image gets loaded correctly, but nothing can be seen until
logout (from the Session Manager). Then you will see briefly
the image which was hidden all the time.
Now I would like to get the image into the pseudo-root or
else delete the pseudo-root so that the real root window comes
to front. How do you achieve this? There's surely a way to fiddle
these windows?

Any hints appreciated.

					Yours, Hans Schwengeler
					schwengeler@urz.unibas.ch

andreess@mrlaxs.mrl.uiuc.edu (Marc Andreessen) (03/07/91)

In article <1991Mar6.151249.1421@urz.unibas.ch> schwengeler@urz.unibas.ch writes:
>I'd like to load an X11 bitmap file into the root window on my
>VAXstation 3500 runnung under VMS V5.4-1 and DECwindows.

Use Motif instead of the DECwindows window manager; this eliminates
the ``extra'' root window.

Marc

--
Marc Andreessen___________University of Illinois Materials Research Laboratory
Internet: andreessen@uimrl7.mrl.uiuc.edu____________Bitnet: andreessen@uiucmrl

dob@inel.GOV (Dave Brooks) (03/09/91)

   From: schwengeler@urz.unibas.ch
   Newsgroups: comp.windows.x
   Date: 6 Mar 91 14:12:49 GMT
   Organization: University of Basel, Switzerland

   Dear knowledgeable X_gurus,

   I'd like to load an X11 bitmap file into the root window on my
   VAXstation 3500 runnung under VMS V5.4-1 and DECwindows.
   I use the program xloadimage which works fine for displaying
   the image in a window. Appearently, DECwindows has over its
   real root window some pseudo-root window which hides everything
   uder it. When using "$ xloadimage -onroot imgae.xbm", the
   image gets loaded correctly, but nothing can be seen until
   logout (from the Session Manager). Then you will see briefly
   the image which was hidden all the time.
   Now I would like to get the image into the pseudo-root or
   else delete the pseudo-root so that the real root window comes
   to front. How do you achieve this? There's surely a way to fiddle
   these windows?

   Any hints appreciated.

					   Yours, Hans Schwengeler
					   schwengeler@urz.unibas.ch

I think i have a better suggestion than the poster who said to use Mwm,
even though i have no particular use for DECwindows.  under separate mail
i'll send you the file vroot.h, which is used to help applications deal
with the presence of the tvtwm window manager (which i use).  it too makes
a "pseudo-root" or virtual root window.  the method used in vroot.h is to
1) get the children of the root window and 2) check each to see if they
contain a certain property, the presence of which marks it as the
pseudo-root (in your context).  

i would do this:  use xlswins to get the window id of the pseudo root.  use
xprop -id 'this window id' to see what unique or distinctive properties it
has.  then modify vroot.h to look for this property (instead of the one it
currently looks for) and include vroot.h in xloadimage, in any of the
source files that use the macros RootWindow or DefaultRootWindow.

i've been in switzerland before; beautiful country.

this should help!  not having access to a decwindows machine, i can't
really help you too much directly.  however, i'm willing to correspond if
you would like assistance.

regards,
dlb
------------------------------------------------------------------------------
David L. Brooks
Idaho National Engineering Lab.  INTERNET: dob@INEL.GOV
POB 1625 MS 2603                 Phone: (208) 526-0826
Idaho Falls, Id. 83415		 FAX:   (208) 526-9936
------------------------------------------------------------------------------

bgh@ice9.uucp (barry hannigan) (03/13/91)

In article <1991Mar6.151249.1421@urz.unibas.ch> schwengeler@urz.unibas.ch writes:
>Dear knowledgeable X_gurus,
>
>I'd like to load an X11 bitmap file into the root window on my
>VAXstation 3500 runnung under VMS V5.4-1 and DECwindows.

the intent is fine, but the extent leaves a lot to be desired. the operation
mentioned works on a DECstation 5000, but any operation which causes an 
expose event is delayed 2 or 3 seconds while it plays. these were 8bit images
but considering the processor power difference, you should get the same with 
1bit ones

barry

-- 
~~~~~~~ ..walkin on the beaches, lookin at the peaches

qfhca81@memqa.uucp (Henry Melton) (03/15/91)

In article <9103081840.AA09751@mijen.inel.gov>, dob@inel.GOV (Dave Brooks) writes:
> a "pseudo-root" or virtual root window.  the method used in vroot.h is to
> 1) get the children of the root window and 2) check each to see if they
> contain a certain property, the presence of which marks it as the
> pseudo-root (in your context).  
> 
I tried this, but could find nothing distinctive about the other windows
that the dec window manager creates.  But, with a little careless trial
and error, I found that by hardcoding in 0x800012 for the value of root
window in xv, I could get quite nice root window pictures under 
Dec Windows. I haven't checked it extensively for side-effects, and there 
probably are some, but at least it worked on all the ncd terminals running
DecWindows in our area.  

If anyone trys this, I would be cautious. 
-- 
Henry Melton  qfhca81@memrqa.sps.mot.com 
{slow}  qfhca81@memqa   ..!cs.utexas.edu!execu!sequoia!memqa!qfhca81
{home}  henry@hutto     ..!emx.utexas.edu!hutto!henry

taylort@decus.com.au (Trevor Taylor) (03/18/91)

In article <21241@memqa.uucp>, qfhca81@memqa.uucp (Henry Melton) writes:
> In article <9103081840.AA09751@mijen.inel.gov>, dob@inel.GOV (Dave Brooks) writes:
>> a "pseudo-root" or virtual root window.  the method used in vroot.h is to
>> 1) get the children of the root window and 2) check each to see if they
>> contain a certain property, the presence of which marks it as the
>> pseudo-root (in your context).  
>> 
> I tried this, but could find nothing distinctive about the other windows
> that the dec window manager creates.  But, with a little careless trial
> and error, I found that by hardcoding in 0x800012 for the value of root
> window in xv, I could get quite nice root window pictures under 
> Dec Windows. I haven't checked it extensively for side-effects, and there 
> probably are some, but at least it worked on all the ncd terminals running
> DecWindows in our area.  

You are correct that there is no special property under DECwindows,
however I use a slightly different scheme:

1. Get the children of the root
2. Check for a window of exactly the same size as the root
(and at 0,0 I think).

Use the last one you find like this. In this way, even it there
is no pseudo-root, the real root is returned and there are no
side-effects. This is not to say that the selected window is
the pseudo-root either, but it always bas been to date :-)

/*--------------------------------------------------------------------*/
/*    Trevor Taylor               E-Mail: TaylorT@decus.com.au        */
/*    P.O. Box 155                        T.Taylor@praxa.com.au       */
/*    Aspley 4034                 Phone:  +(61) 7 369-8100            */
/*    Australia                   Fax:    +(61) 7 369-0722            */
/*--------------------------------------------------------------------*/

mikey@sgi.com (Mike Yang) (03/19/91)

In article <9497.27e527af@decus.com.au> taylort@decus.com.au (Trevor Taylor) writes:
>1. Get the children of the root
>2. Check for a window of exactly the same size as the root
>(and at 0,0 I think).

You should also check the map_state window attribute and make sure
it's IsVisible.  Otherwise, if you run mwm and restart it, you could
get confused with the full-screen window it creates for restarting and
keeps around (at least mwm 1.0 kept it around).

-----------------------------------------------------------------------
                 Mike Yang        Silicon Graphics, Inc.
               mikey@sgi.com           415/335-1786