The following paragraphs describe changes that can affect programs originally written with ACUCOBOL-GT Version 5.0.
Two compilation switches provide compatibility with Version 5.0:
||Causes the compiler to generate code according to the rules used by Version 5.0.
||Creates object code that can be run with a Version 5.0 runtime.
- In versions prior to 5.1, a CMD-ACTIVATE event would be generated only if there was an active ACCEPT statement running to
receive it. Under some (unusual) circumstances, this could cause the runtime to enter a state where it believed the wrong
window was active.
In Version 5.1, this rule is modified so that CMD-ACTIVATE events are generated unless the window generating the event is
in the process of being built. It no longer matters whether or not an ACCEPT statement is running. The new rule is needed
to prevent the first ACCEPT in each window from immediately terminating due to a queued CMD-ACTIVATE event (generated by the
window's own creation).
Note: This is a change in the rules for when CMD-ACTIVATE is generated. As a result, it is possible for CMD-ACTIVATE events to
occur in cases where they did not previously. In order to prevent this change from adversely affecting a working program,
the new rule is used only for programs compiled for 5.1 semantics. This means that the 5.1 runtime will not behave any differently
in this regard when executing programs compiled with 5.0 or earlier (or compiled with the
-C50 switch). You can explicitly enable this rule by setting the configuration variable
1 or disable it by setting it to
0. When the variable is set to
-1 (the default), the program semantics apply as described above.
- In Version 5.1, you can assign pop-up menus to labels. This change has the side-effect that labels are now aware of mouse-clicks
where previously they were not. This matters only if you happen to have a label and another control (like a push button) that
overlap. Previously, the push button would always get all the mouse events. In Version 5.1, the label could start getting
them. This can prevent the push button from working (because it is not "seeing" the mouse clicks). Normally, you would not
overlap controls, but it can happen unintentionally if the label contains only spaces.
To correct this situation, make the controls not overlap or make label invisible instead of setting it to spaces if you want
to hide it. You can inhibit this change by compiling for 5.0 or earlier semantics (this also means that you must compile for
5.1 or later semantics if you want to attach a pop-up menu to a label).
- The configuration variable V42_TRANSPARENT is now obsolete. Transparent labels always appear transparently. If this variable
is set in your environment or in the runtime configuration file, it is simply ignored.