Three new fields have been added to XTRCTL:
... ! (existing)
MAP2 XTR'CLOSEDENDED,B,1 ! (exiting)
MAP2 XTR'XVALIDATE,B,1 ! [119] 1=must validate xrow,xrol
MAP2 XTR'CLICKROW,B,4 ! [118] last clicked on row
MAP2 XTR'CLICKCOL,B,1 ! [118] last clicked on column
MAP2 XTR'UNUSED2,X,19 ! [118] (was 25) [119] was 20
XTR'CLICKROW and XTR'CLICKCOL return the row/col position of where the mouse was clicked when that clicked caused an exit from an editable cell for which validation was needed. In such a case, the existing XTR'XROW and XTR'XCOL fields will continue to identify the cell that needs to be validated. On re-entry, if XTR'CLICKCOL and XTR'CLICKROW fields, if non-zero, will determine the re-entry position.
The XTR'XVALIDATE field will be set to one if the cell indicated by XTR'XROW and XTR'XCOL needs validation. Previously you had to rely on exitcode -48 to identify when validation was needed, but this is not adequate when the even which terminates an editable cell operation is a click on another control that generates its own exitcode. In that case, the exitcode returned to the application will be that of the clicked-on control, and the XTR'XVALIDATE flag will be handy to indicate that the cell identified by XTR'XROW and XTR'XCOL needs to be validated.
You can now have multiple editable XTREEs on the same screen, with the ability to click directly from an editable cell in one, to an editable cell in the other. Note that you will need to transfer the XTR'CLICKCOL and XTR'CLICKROW values returned from the original XTREE into the XTRCTL structure passed to the clicked-on XTREE.