Wandering Icons

Dik T. Winter dik at cwi.nl
Thu Sep 20 07:27:56 AEST 1990


In article <1990Sep19.160059.20600 at odin.corp.sgi.com> milt at sgi.com (Milton E. Tinkoff) writes:
 > In article <9009181900.AA25255 at aero4.larc.nasa.gov> blbates at AERO4.LARC.NASA.GOV ("Brent L. Bates AAD/TAB MS361 x42854") writes:
 > >                                              When you iconify something,
 > >it will always go back to the same place.
 > 
 > I think this was recently posted but if you have the line
 > 	UserProfile /TidyState /Never put
 > in your user.ps file icons will stay where you put them.
 > 
This almost certainly does not do what you want.  Try the following: login,
open five or six windows, do a stow all and see where all the icons appear:
random places on your screen.  (There is another problem, I will come back
to that later.)

Although /usr/NeWS/lib/NeWS/user.ps does not mention it, /TidyState allows
another value: /First.  So in your user.ps:
	UserProfile /TidyState /First put
This will put the icon at a tidy place the first time the window is iconified,
and it will stay put (unless you move the icon of course).

However, one bug is revealed if you use this (or if you use /Never): it can
occur that two icons will occupy exactly the same place; which was not
the intention, I think.  To show this, log in with /TidyState to /First,
open five windows or so and do stow all.  The icons will be in the upper
left corner of your screen (unless you have played with the positioning
parameters of course).  Next open the second window; create a new window;
iconify this last one.  Its icon will go at the place of the second windows
icon.  Iconify the second window: its icon will go on top.  The bug is in
/usr/NeWS/lib/NeWS/litewin.ps; it lets the IconTiler forget about icon
positions in the wrong places.  To rectify this, copy that file to a
directory NeWS in your home directory and make the following changes:

Modify:
    /DestroyIcon {
	Iconic? { IconX IconY /lift IconTiler send } if
    } def
to:
    /DestroyIcon {
	IconX IconY /lift IconTiler send
    }

and modify:
    /TileIcon {
	Iconic? {
	    IconPlace /move self send
	} {
	    IconX IconY /lift IconTiler send
	} ifelse
    } def
to:
    /TileIcon {
	Iconic? {
	    IconPlace /move self send
	} if
    } def

Hope this helps.
--
dik t. winter, cwi, amsterdam, nederland
dik at cwi.nl



More information about the Comp.sys.sgi mailing list