Problem: 1640530
Title: (Window -floating) Floating window doesn't get back after resolution setting
Received: Mar 19 1997 10:56AM
Launch the DemoDialogs app and bring up the windoid. Position it half way
down the screen and so that part of it is off the right edge of the screen.
(Note that I haven't had to position other windows off the screen, it's just
that this one is so large this was necessary.) See the enclosed screen shots
for an example.
Open the Monitors control panel. Change the resolution of the screen from
1024x768 to 832x624 and back again.
Flip back to the DemoDialogs app. The windoid should now look like the second
screen shot.
Some other information:
- This only appears to happen if the window is entirely outside the screen bounds of the smaller resolution when the change is made.
- In my application and in the Nothing demo app where I added a windoid, I did not need to change back to the higher resolution. The window didn't draw correctly when I first changed to the smaller resolution.
- Different parts of the window don't redraw correctly if other floating windows are positioned around it.
- Different parts of the window don't redraw correctly if you change monitor settings using the Control Strip.
To reproduce this move the message windiod down to the lower right of the monitor.
Change the resolution of the monitor from the max resolution to the min resolution and
then back again. What you'll see is a blank windoid that won't update. Window shading
the window a few times seems to fix the problem.
This problem happens with all windows, not just floating windows.
Fix:
What's happening is, the window is moved by the OS and MacApp's TWindow::fLocation is
still thinking it's in the old spot, so window updates don't affect the window
until fLocation is updated. I applied a fix that checks for this condition in
TWindow::Update that seems to only get triggered when screen monitor resolution
shrinks and the window is indeed moved behind MacApp's back.