On Wed, 3 Apr 2024 19:54:20 GMT, Jose Pereda <[email protected]> wrote:

>> This PR fixes the issue that after committing an edit on a 
>> ListView/TreeView/TableView/TreeTableView control, the control might lose 
>> the focus unexpectedly.
>> 
>> For that, it refactors the 
>> `ControlUtils::requestFocusOnControlOnlyIfCurrentFocusOwnerIsChild` method, 
>> in order to check if the control (`ListView`, `TreeView`, `TableView`, 
>> `TreeTableView`) should request the focus _before_ the actual focus owner 
>> (which could be the control added to the cell to edit its content, like a 
>> `TextField`) is removed from the cell, so the `Control::requestFocus` call, 
>> if needed, can be still invoked after the edit commit is done (as it was 
>> done before).
>> 
>> By adding 
>> `ControlUtils::controlShouldRequestFocusIfCurrentFocusOwnerIsChild` the 
>> `Cell::commitEdit` implementations can now query if the control should have 
>> the focus, after `super.commitEdit(newValue);` but before firing the 
>> `CellEditEvent` and calling `updateItem()`, and if the result is true, then 
>> request focus after the edit commit ends (like it was done before).
>> 
>> Two new tests per control have been included, to verify that the focus 
>> remains at the control, one for edit cancel (this passes before and after 
>> the proposed changes), one for edit commit (this fails before and passes 
>> after including the proposed fix).
>
> Jose Pereda has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Address feedback from reviewer

Marked as reviewed by angorya (Reviewer).

-------------

PR Review: https://git.openjdk.org/jfx/pull/1411#pullrequestreview-1978103130

Reply via email to