Posted by: Paul Du Bois
We have recently upgraded our existing CTD2.1 applications to Team Developer
4.2 latest build, and mostly the upgrade has been fine.
However we have recurring problems with MDI child windows not repainting
properly when a window is opened on top of them, or even with basic
behaviours like drop down lists and popup edit text columns.
An example is:
We have a form with a listview component displaying a list of data. User
then alt-tabs to another application window, and then alt-tabs back. The
listview goes grey - i.e. it does not repaint/refresh after focus is
returned to the Gupta application.
We have a string column in a table window that is set to Popup-Edit
property. When user clicks in the field, the field drops down the
multi-line entry as normal, but the whole thing is grey.
I have attached some screenshots showing what I mean. Functionally the
controls still work, but visually it is quite bad from a user perspective.
These are fairly obvious issues and we really need to resolve them.
We have found that in some cases, we can code in a SalInvalidateWindow call
to force the repaint, but the issue we have is that in a lot of cases we do
not have an event to hook into.
For example when the user alt-tabs or a dialog box returns control back to
the window having repainting issues, we cannot find an event that fires to
indicate that focus has returned.
ON_SAM_SetFocus and ON_SAM_Activate for example don't fire.
Interestingly, we also have some of our application suite that does not use
MDI - uses a frames based form approach instead - and that side works fine
with no repainting issues.
We have tried out the evaluation version of Team Developer 5.1, and still
have the same issues.
This is a definite bug then even in the latest version.
Attachment: Examples of repainting issues.doc