Problem: 1609209

Title: MAShowWindow & IsFloatingWindow over-optimized

Received: Dec 3 1996 3:33PM


In UWindow.cp, TWindow::MAShowWindow() calls IsFloatingWindow() inside an if block that tests (!IsWindowVisible()), but IsFloatingWindow() has an optimization that always returns false if IsWindowVisible() is false, so if you're about to show a floating window, MAShowWindow doesn't do the right thing. It should be up to the caller to decide whether visibility matters.

This affects a required change to support ODIA (nee ALOE).

I recommend adding a new function IsVisibleFloatWindow() that does what IsFloatWindow() currently does and gets called by everything that was calling IsFloatWindow(), and modify IsFloatWindow() to perform that actual float test without the visibility test, and keep the call to IsFloatWindow() in MAShowWindow().


Fix:

Made all places that don't check visible-ness of a window call IsVisibleFloatWindow (UWindow.cp). Verify that floaters still work using DemoDialogs, put up windoid, switch out, post a dialog, etc.