Browse Source

Merge pull request #4744 from workgroupengineering/fixes/Issue_3428

fixes Issue #3428 : ComboBox should react on PointerReleasedEvent instead of PointerPressedEvent
pull/4792/head
Max Katz 6 years ago
committed by GitHub
parent
commit
d379485586
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 9
      src/Avalonia.Controls/Calendar/CalendarDatePicker.cs
  2. 4
      src/Avalonia.Controls/ComboBox.cs
  3. 2
      tests/Avalonia.Controls.UnitTests/ComboBoxTests.cs

9
src/Avalonia.Controls/Calendar/CalendarDatePicker.cs

@ -420,7 +420,7 @@ namespace Avalonia.Controls
_calendar.DayButtonMouseUp -= Calendar_DayButtonMouseUp;
_calendar.DisplayDateChanged -= Calendar_DisplayDateChanged;
_calendar.SelectedDatesChanged -= Calendar_SelectedDatesChanged;
_calendar.PointerPressed -= Calendar_PointerPressed;
_calendar.PointerReleased -= Calendar_PointerReleased;
_calendar.KeyDown -= Calendar_KeyDown;
}
_calendar = e.NameScope.Find<Calendar>(ElementCalendar);
@ -435,7 +435,7 @@ namespace Avalonia.Controls
_calendar.DayButtonMouseUp += Calendar_DayButtonMouseUp;
_calendar.DisplayDateChanged += Calendar_DisplayDateChanged;
_calendar.SelectedDatesChanged += Calendar_SelectedDatesChanged;
_calendar.PointerPressed += Calendar_PointerPressed;
_calendar.PointerReleased += Calendar_PointerReleased;
_calendar.KeyDown += Calendar_KeyDown;
//_calendar.SizeChanged += new SizeChangedEventHandler(Calendar_SizeChanged);
//_calendar.IsTabStop = true;
@ -831,9 +831,10 @@ namespace Avalonia.Controls
}
}
}
private void Calendar_PointerPressed(object sender, PointerPressedEventArgs e)
private void Calendar_PointerReleased(object sender, PointerReleasedEventArgs e)
{
if (e.GetCurrentPoint(this).Properties.IsLeftButtonPressed)
if (e.InitialPressMouseButton == MouseButton.Left)
{
e.Handled = true;
}

4
src/Avalonia.Controls/ComboBox.cs

@ -257,7 +257,7 @@ namespace Avalonia.Controls
}
/// <inheritdoc/>
protected override void OnPointerPressed(PointerPressedEventArgs e)
protected override void OnPointerReleased(PointerReleasedEventArgs e)
{
if (!e.Handled)
{
@ -276,7 +276,7 @@ namespace Avalonia.Controls
}
}
base.OnPointerPressed(e);
base.OnPointerReleased(e);
}
/// <inheritdoc/>

2
tests/Avalonia.Controls.UnitTests/ComboBoxTests.cs

@ -2,7 +2,6 @@ using Avalonia.Controls.Presenters;
using Avalonia.Controls.Primitives;
using Avalonia.Controls.Shapes;
using Avalonia.Controls.Templates;
using Avalonia.Input;
using Avalonia.LogicalTree;
using Avalonia.Media;
using Avalonia.UnitTests;
@ -27,6 +26,7 @@ namespace Avalonia.Controls.UnitTests
Assert.True(target.IsDropDownOpen);
_helper.Down(target);
_helper.Up(target);
Assert.False(target.IsDropDownOpen);
}

Loading…
Cancel
Save