Fix clicking on "+" button not working when a tab was underneath (#3755)

We were mistakenly pushing an opaque layer without intersecting it with
the content mask. Also, we were pushing two opaque layers for the same
div unnecessarily.

Release Notes:

- N/A
This commit is contained in:
Antonio Scandurra 2023-12-21 14:57:52 +01:00 committed by GitHub
commit f83d156d7b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1092,19 +1092,19 @@ impl Interactivity {
});
}
let interactive_bounds = InteractiveBounds {
bounds: bounds.intersect(&cx.content_mask().bounds),
stacking_order: cx.stacking_order().clone(),
};
if self.block_mouse
|| style.background.as_ref().is_some_and(|fill| {
fill.color().is_some_and(|color| !color.is_transparent())
})
{
cx.add_opaque_layer(bounds)
cx.add_opaque_layer(interactive_bounds.bounds);
}
let interactive_bounds = InteractiveBounds {
bounds: bounds.intersect(&cx.content_mask().bounds),
stacking_order: cx.stacking_order().clone(),
};
if !cx.has_active_drag() {
if let Some(mouse_cursor) = style.mouse_cursor {
let mouse_position = &cx.mouse_position();
@ -1534,15 +1534,7 @@ impl Interactivity {
cx.on_action(action_type, listener)
}
cx.with_z_index(style.z_index.unwrap_or(0), |cx| {
if style.background.as_ref().is_some_and(|fill| {
fill.color().is_some_and(|color| !color.is_transparent())
}) {
cx.add_opaque_layer(bounds)
}
f(&style, scroll_offset.unwrap_or_default(), cx)
})
f(&style, scroll_offset.unwrap_or_default(), cx)
},
);