feat: OverlayDialogHost remake: support host with same id in different toplevel. support modal status propagation.

This commit is contained in:
rabbitism
2024-07-08 15:39:48 +08:00
parent 678bcdef9c
commit 9cbefe6307
11 changed files with 165 additions and 133 deletions

View File

@@ -56,7 +56,7 @@ public partial class OverlayDialogHost
control.Arrange(new Rect(control.DesiredSize));
SetDrawerPosition(control);
_modalCount++;
HasModal = _modalCount > 0;
IsInModalStatus = _modalCount > 0;
control.AddHandler(OverlayFeedbackElement.ClosedEvent, OnDrawerControlClosing);
var animation = CreateAnimation(control.Bounds.Size, control.Position);
if (IsAnimationDisabled)
@@ -162,7 +162,7 @@ public partial class OverlayDialogHost
if (layer.Mask is not null)
{
_modalCount--;
HasModal = _modalCount > 0;
IsInModalStatus = _modalCount > 0;
layer.Mask.RemoveHandler(PointerPressedEvent, ClickMaskToCloseDialog);
if (!IsAnimationDisabled)
{