Find/replace overlay: react to target relocation instead of paint events #2253
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The FindReplaceOverlay currently registers a paint listener to the target in order to reposition itself upon move or resize events of the parent (paint events subsume resize and move events). This has two drawbacks:
This change replaces the repaint listener with a move and resize listener. In consequence, less (unnecessary) updates of the overlay's position and size are executed and on Wayland at least the shell contents do not move out of the window anymore.
Contributes to eclipse-platform/eclipse.platform.swt#1447
Behavior on Wayland
This change does not resolve the location problem of the overlay when using Wayland. That issue is not specific for the overlay but affect all shells/dialogs. It only works towards its contents not vanishing, thus improving usability of the overlay, even though its location is wrong.
Before change:
After change: