Bug #8770
ENTRY event is not sent for a frame when window receives focus
80%
Related issues
History
#1 Updated by Vladimir Tsichevski about 2 years ago
- File printEntryLeave.i added
- File 8770.p
added - File functions.i added
Then a window receives focus, and no field-level was in focus before in this window (for example, when a window is just opening), OE searches the window tab ring for a suitable field-level to set focus on.
For all suitable field-levels in the tab ring, OE sends ENTRY events, and selects the first field-level, for which the trigger code does not return NO-APPLY.
This seems to work the same in OE and FWD.
But for some reason, OE sends also an additional ENTRY event to the frame of the first tested field-level after the selection is done, and the focus is set to the suitable field. This trigger return is ignored.
No such event is sent in FWD.
The attached 8770.p example demonstrates this difference: in OE 3 ENTRY events are reported, while in FWD only 2 events are reported.
#2 Updated by Vladimir Tsichevski about 2 years ago
- Related to Bug #8673: Deduce the logic behind OE focus management and implement in FWD added
#3 Updated by Vladimir Tsichevski about 2 years ago
- Status changed from New to WIP
- % Done changed from 0 to 100
Fixed in 8809a rev. 15240.
#4 Updated by Vladimir Tsichevski about 2 years ago
- Status changed from WIP to Review
#5 Updated by Vladimir Tsichevski about 2 years ago
- % Done changed from 100 to 80
- Status changed from Review to WIP
The following code in TC.waitForWorker was probably intended to send ENTRY to the frame in question, but, at least in the case of focus was set with focusUndefImplicit, does this incorrectly:
// or else generate frame ENTRY event, only if previous focus is not
// part of this frame
else
{
Frame frame = UiUtils.locateFrame(UiUtils.getCurrentFocus());
if (saveFocus == null || frame != UiUtils.locateFrame(saveFocus))
{
if (frame != null)
sendEntry(frame);
After the patch, the ENTRY event sent by the code must not be sent anymore.
Since this code works for all cases, not only for focusUndefImplicit, an additional investigation is required, to get the right way to fix this.
#6 Updated by Vladimir Tsichevski about 2 years ago
The (incomplete) fix moved from 8809a to in 8770a rev. 15242.
#7 Updated by Vladimir Tsichevski about 2 years ago
- Related to Bug #8872: WAIT-FOR with FOCUS explicitly specified: NO-APPLY return from ENTRY trigger must be ignored added
#8 Updated by Vladimir Tsichevski about 2 years ago
- Related to deleted (Bug #8872: WAIT-FOR with FOCUS explicitly specified: NO-APPLY return from ENTRY trigger must be ignored)
#9 Updated by Vladimir Tsichevski about 2 years ago
- Assignee set to Vladimir Tsichevski
#10 Updated by Vladimir Tsichevski about 2 years ago
After the initial patch the ENTRY event is sent twice to the innerFrame in the example.
The sending code removed in the 8770a rev. 15304.
Now the 8770.p displays the expected results, but the removed code is used in other execution paths, e.g. when focus is explicitly passed to WAIT-FOR, so the code in focusXXXExplicit must be corrected either.
#11 Updated by Vladimir Tsichevski about 2 years ago
To complete this change testing, the change in 8809a must be also applied.
#13 Updated by Hynek Cihlar 5 months ago
What is the status of this issue?