fix: close #1457
This commit is contained in:
1 parent
5b0be3b1ab
commit
ef5ab72301
1 file changed
+17
-3
@@ -257,7 +257,11 @@ public class TabItem : System.Windows.Controls.TabItem
|
|||||||
{
|
{
|
||||||
base.OnMouseRightButtonDown(e);
|
base.OnMouseRightButtonDown(e);
|
||||||
|
|
||||||
if (VisualTreeHelper.HitTest(this, e.GetPosition(this)) == null) return;
|
if (!IsMouseOverHeader(e))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
IsSelected = true;
|
IsSelected = true;
|
||||||
Focus();
|
Focus();
|
||||||
}
|
}
|
||||||
@@ -300,7 +304,11 @@ public class TabItem : System.Windows.Controls.TabItem
|
|||||||
{
|
{
|
||||||
base.OnMouseLeftButtonDown(e);
|
base.OnMouseLeftButtonDown(e);
|
||||||
|
|
||||||
if (VisualTreeHelper.HitTest(this, e.GetPosition(this)) == null) return;
|
if (!IsMouseOverHeader(e))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
var parent = TabControlParent;
|
var parent = TabControlParent;
|
||||||
if (parent == null) return;
|
if (parent == null) return;
|
||||||
|
|
||||||
@@ -391,7 +399,8 @@ public class TabItem : System.Windows.Controls.TabItem
|
|||||||
protected override void OnMouseDown(MouseButtonEventArgs e)
|
protected override void OnMouseDown(MouseButtonEventArgs e)
|
||||||
{
|
{
|
||||||
if (e is { ChangedButton: MouseButton.Middle, ButtonState: MouseButtonState.Pressed } &&
|
if (e is { ChangedButton: MouseButton.Middle, ButtonState: MouseButtonState.Pressed } &&
|
||||||
TabControlParent.CanBeClosedByMiddleButton)
|
TabControlParent.CanBeClosedByMiddleButton &&
|
||||||
|
IsMouseOverHeader(e))
|
||||||
{
|
{
|
||||||
if (ShowCloseButton || ShowContextMenu)
|
if (ShowCloseButton || ShowContextMenu)
|
||||||
{
|
{
|
||||||
@@ -474,6 +483,11 @@ public class TabItem : System.Windows.Controls.TabItem
|
|||||||
return result > maxIndex ? maxIndex : result;
|
return result > maxIndex ? maxIndex : result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private bool IsMouseOverHeader(MouseButtonEventArgs e)
|
||||||
|
{
|
||||||
|
return VisualTreeHelper.HitTest(this, e.GetPosition(this)) is not null;
|
||||||
|
}
|
||||||
|
|
||||||
public static readonly RoutedEvent ClosingEvent = EventManager.RegisterRoutedEvent("Closing", RoutingStrategy.Bubble, typeof(EventHandler), typeof(TabItem));
|
public static readonly RoutedEvent ClosingEvent = EventManager.RegisterRoutedEvent("Closing", RoutingStrategy.Bubble, typeof(EventHandler), typeof(TabItem));
|
||||||
|
|
||||||
public event EventHandler Closing
|
public event EventHandler Closing
|
||||||
|
|||||||
Reference in new issue
Block a user