[comp.sys.amiga.tech] Intuition and Rectangles

dykimber@phoenix.Princeton.EDU (Daniel Yaron Kimberg) (12/05/88)

Hi, I've been bothered by something for a while and I wondered if anyone could
give me a legit explanation of why exactly it's necessary.  First I'll describe
the symptoms.  I have, say, two windows on the workbench screen, both the size
of the screen.  I open up a very small window (like the virusx title-only
window) and start dragging it around the screen, dropping it off more or less
randomly, and then moving it again.  After about ten or twenty times, the
delay between when I let go of the button and the time I have control of the
mouse again is very high, more than a second.  Now, if I try to flip back and
forth between the other two windows, it takes a long time and it's easy to see
how the system has divided the whole thing up into rectangles.
    Okay, now it's pretty obvious what's going on here, so I won't embarrass
myself by misdescribing it, but my question is the following: why?  Is it too
costly to try to consolidate some of these areas after every move?  If this is
true, couldn't it be set up like lisp garbage collection so that it only went
through the whole process, say, every so many rectangles or perhaps according
to system performance?  Or am I misunderstanding something that makes it
clearly impossible to do what I want in any sensible way? As it stands, it's
somewhat annoying for people like me who have the nervous habit of idly
dragging small windows around the screen while they're thinking.  Thanks for
any info,

                                                   -Dan

jimm@amiga.UUCP (Jim Mackraz) (12/13/88)

In article <4714@phoenix.Princeton.EDU> dykimber@phoenix.Princeton.EDU (Daniel Yaron Kimberg) writes:
)I open up a very small window (like the virusx title-only
)window) and start dragging it around the screen, dropping it off more or less
)randomly, and then moving it again.  After about ten or twenty times, the
)delay between when I let go of the button and the time I have control of the
)mouse again is very high, more than a second.  Now, if I try to flip back and
)forth between the other two windows, it takes a long time and it's easy to see
)how the system has divided the whole thing up into rectangles.

You have found the well-known bug in the layers library where "dedicing" of
these rectangles fails to do the trick.

), couldn't it be set up like lisp garbage collection so that it only went
)through the whole process, say, every so many rectangles or perhaps according
)to system performance? 

It's *attempted* every time a layers if removed, moved, or sized.  Never on
depth arrangements, which our system is set up to favor.

It's a hard problem, especially so in tight memory.  To reallocate all saved
regions ahead of time for a conversion to a new rectangular "dicing" has
a high transient memory requirement.  Combining rectangles two at a time
has smaller transients, but isn't a complete solution.

In V1.4, we'll combine two approaches for best possible results.  It will be much
improved.

)... it's somewhat annoying for people like me who have the nervous habit of idly
)dragging small windows around the screen while they're thinking. 

Bad habit.  Break it now.  Try to minimize resizing and moving when smart-refresh
windows are around.

If you get into a dicing mess, it sometimes helps to shrink all your smart-refresh
windows (e.g., CLIs) to their minimum and align them in the upper left corner.
Resize and position them to their working positions and leave them there.

I use IHelp to make my operating procedure more depth arranging and less resizing.

)                                                   -Dan

	jimm
-- 
	Jim Mackraz, I and I Computing	  
	amiga!jimm	BIX:jmackraz
Opinions are my own.  Comments regarding the Amiga operating system, and
all others, are not to be taken as Commodore official policy.