From a81fe88eb6fc5d35650215d042c4ef8048cbe665 Mon Sep 17 00:00:00 2001 From: rabbitism Date: Thu, 12 Sep 2024 15:41:12 +0800 Subject: [PATCH] feat: add IsTopLevel property to OverlayDialogHost. only marked Host can trigger window movement. --- src/Ursa.Themes.Semi/Controls/UrsaWindow.axaml | 2 +- src/Ursa/Controls/OverlayShared/OverlayDialogHost.Dialog.cs | 2 +- src/Ursa/Controls/OverlayShared/OverlayDialogHost.Shared.cs | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Ursa.Themes.Semi/Controls/UrsaWindow.axaml b/src/Ursa.Themes.Semi/Controls/UrsaWindow.axaml index 2a52e0b..c34e92c 100644 --- a/src/Ursa.Themes.Semi/Controls/UrsaWindow.axaml +++ b/src/Ursa.Themes.Semi/Controls/UrsaWindow.axaml @@ -66,7 +66,7 @@ LeftContent="{Binding $parent[u:UrsaWindow].LeftContent}" RightContent="{Binding $parent[u:UrsaWindow].RightContent}" /> - + diff --git a/src/Ursa/Controls/OverlayShared/OverlayDialogHost.Dialog.cs b/src/Ursa/Controls/OverlayShared/OverlayDialogHost.Dialog.cs index 5478585..d53c544 100644 --- a/src/Ursa/Controls/OverlayShared/OverlayDialogHost.Dialog.cs +++ b/src/Ursa/Controls/OverlayShared/OverlayDialogHost.Dialog.cs @@ -72,7 +72,7 @@ public partial class OverlayDialogHost { if (e.Source is DialogControlBase item) { - if (item.IsFullScreen) + if (IsTopLevel && item.IsFullScreen) { var top = TopLevel.GetTopLevel(item); if (top is Window w) diff --git a/src/Ursa/Controls/OverlayShared/OverlayDialogHost.Shared.cs b/src/Ursa/Controls/OverlayShared/OverlayDialogHost.Shared.cs index 63db16d..164366b 100644 --- a/src/Ursa/Controls/OverlayShared/OverlayDialogHost.Shared.cs +++ b/src/Ursa/Controls/OverlayShared/OverlayDialogHost.Shared.cs @@ -56,6 +56,7 @@ public partial class OverlayDialogHost: Canvas } public bool IsAnimationDisabled { get; set; } + public bool IsTopLevel { get; set; } static OverlayDialogHost() { @@ -114,7 +115,7 @@ public partial class OverlayDialogHost: Canvas { rec.AddHandler(PointerReleasedEvent, ClickMaskToCloseDialog); } - else + else if(IsTopLevel) { rec.AddHandler(PointerPressedEvent, DragMaskToMoveWindow); }