Fix: Non-resizable Area
s now ignore mouse input outside their bounds
#3039
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.
As described in #576, the method
Memory::layer_id_at
expands the hit-testing region for everyArea
slightly. This is necessary so that, when the user clicks to resize aWindow
, the mouse input isn't routed to a differentWindow
.For non-resizable
Area
s (such as dropdown menus, context menus, date pickers, and any non-resizableWindow
), this causes them to be surrounded by a "dead zone" where any underlying widgets can't be hovered or clicked. The effect is particularly noticeable in menu bars.This commit adds a persisted
edges_padded_for_resize
property toArea
, which istrue
when theArea
belongs to a resizableWindow
andfalse
for all otherArea
s. The hit-testing region is only expanded when this property istrue
.