[adsp.sw] Nasty bug with resizable windows under OS2.0

andy@digitm.UUCP (Andy Zanna) (03/20/91)

This was posted a while back on CBMNET, but, since I got no answers, I'll try
again.

Overview
========

I have an application running on a custom screen with a backdrop
superbitmap window. This lets me scroll over the bitmap when I need it. I
let the user draw on the on-screen bitmap while I keep the superbitmap
hidden. When I want to 'commit' the drawing, I expose the sbm layer and
sync the super bitmap. When I want to undo the drawing, I expose the sbm
layer and copy it back to the on-screen window.

On this same screen, I have several other plain (no SBM) windows. One of
these is resizable, draggable, closable.

Everything works fine under 1.3. Under 2.0, when I resize the one resizable
window, the system blows with no meaningful guru ##. It _looks_ like the
blitter is blitting all over the place when intuition is refreshing the
resized window borders.

Details
=======

I turn on the minimal New Look by passing a SA_Pens tag to OpenScreen with
an extended NewScreen structure. (I know about OpenScreenTags, but I work
with a 1.3 developement system and, since this is the only 2.0 feature I
support, I don't want to burden the code). Turning the New Look back off
the bug stays.

I respect the layers locking protocols to the best of my understanding. To
hide the backdrop window SBM, I NULL the Layer->SuperBitMap pointer and
turn off the SBM flags in the Layer and Window. This is 'experimental'.
Seems to work fine, but I'm willing to change it if it's plain wrong and if
somebody can suggest a better method to keep an undoable SBM with minimum
memory abuse.

I'm currently working with Kickstart 37.21, but the same thing happened
with earlier versions.

	Desperately seeking an answer...



--
  _     _   _  ___ __        
 (_)   | \|/ _| | |_  /\ |\/|   Andy Zanna
-----  |_/|\_/| | |__/--\|  |

BIX: digiteam
UUCP: {uunet|pyramid|rutgers}!cbmvax!cbmehq!cbmita!digitm!andy