Browse Source

Merge branch 'master' into update-xamlil-submodule

pull/6554/head
Tako 4 years ago
committed by GitHub
parent
commit
bed46b01ad
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 10
      native/Avalonia.Native/src/OSX/window.mm
  2. 2
      src/Avalonia.Base/Threading/AvaloniaSynchronizationContext.cs
  3. 16
      src/Avalonia.Controls/AutoCompleteBox.cs
  4. 10
      tests/Avalonia.Controls.UnitTests/AutoCompleteBoxTests.cs

10
native/Avalonia.Native/src/OSX/window.mm

@ -641,6 +641,7 @@ private:
[Window setCanBecomeKeyAndMain]; [Window setCanBecomeKeyAndMain];
[Window disableCursorRects]; [Window disableCursorRects];
[Window setTabbingMode:NSWindowTabbingModeDisallowed]; [Window setTabbingMode:NSWindowTabbingModeDisallowed];
[Window setCollectionBehavior:NSWindowCollectionBehaviorFullScreenPrimary];
} }
void HideOrShowTrafficLights () void HideOrShowTrafficLights ()
@ -1091,14 +1092,7 @@ private:
{ {
_fullScreenActive = true; _fullScreenActive = true;
[Window setHasShadow:YES];
[Window setTitleVisibility:NSWindowTitleVisible];
[Window setTitlebarAppearsTransparent:NO];
[Window setTitle:_lastTitle]; [Window setTitle:_lastTitle];
Window.styleMask = Window.styleMask | NSWindowStyleMaskTitled | NSWindowStyleMaskResizable;
Window.styleMask = Window.styleMask & ~NSWindowStyleMaskFullSizeContentView;
[Window toggleFullScreen:nullptr]; [Window toggleFullScreen:nullptr];
} }
@ -1672,6 +1666,7 @@ NSArray* AllLoopModes = [NSArray arrayWithObjects: NSDefaultRunLoopMode, NSEvent
switch(event.buttonNumber) switch(event.buttonNumber)
{ {
case 2:
case 3: case 3:
_isMiddlePressed = true; _isMiddlePressed = true;
[self mouseEvent:event withType:MiddleButtonDown]; [self mouseEvent:event withType:MiddleButtonDown];
@ -1704,6 +1699,7 @@ NSArray* AllLoopModes = [NSArray arrayWithObjects: NSDefaultRunLoopMode, NSEvent
{ {
switch(event.buttonNumber) switch(event.buttonNumber)
{ {
case 2:
case 3: case 3:
_isMiddlePressed = false; _isMiddlePressed = false;
[self mouseEvent:event withType:MiddleButtonUp]; [self mouseEvent:event withType:MiddleButtonUp];

2
src/Avalonia.Base/Threading/AvaloniaSynchronizationContext.cs

@ -39,7 +39,7 @@ namespace Avalonia.Threading
if (Dispatcher.UIThread.CheckAccess()) if (Dispatcher.UIThread.CheckAccess())
d(state); d(state);
else else
Dispatcher.UIThread.InvokeAsync(() => d(state), DispatcherPriority.Send).Wait(); Dispatcher.UIThread.InvokeAsync(() => d(state), DispatcherPriority.Send).GetAwaiter().GetResult();
} }

16
src/Avalonia.Controls/AutoCompleteBox.cs

@ -2094,7 +2094,21 @@ namespace Avalonia.Controls
bool inResults = !(stringFiltering || objectFiltering); bool inResults = !(stringFiltering || objectFiltering);
if (!inResults) if (!inResults)
{ {
inResults = stringFiltering ? TextFilter(text, FormatValue(item)) : ItemFilter(text, item); if (stringFiltering)
{
inResults = TextFilter(text, FormatValue(item));
}
else
{
if (ItemFilter is null)
{
throw new Exception("ItemFilter property can not be null when FilterMode has value AutoCompleteFilterMode.Custom");
}
else
{
inResults = ItemFilter(text, item);
}
}
} }
if (view_count > view_index && inResults && _view[view_index] == item) if (view_count > view_index && inResults && _view[view_index] == item)

10
tests/Avalonia.Controls.UnitTests/AutoCompleteBoxTests.cs

@ -105,6 +105,16 @@ namespace Avalonia.Controls.UnitTests
}); });
} }
[Fact]
public void Custom_FilterMode_Without_ItemFilter_Setting_Throws_Exception()
{
RunTest((control, textbox) =>
{
control.FilterMode = AutoCompleteFilterMode.Custom;
Assert.Throws<Exception>(() => { control.Text = "a"; });
});
}
[Fact] [Fact]
public void Text_Completion_Via_Text_Property() public void Text_Completion_Via_Text_Property()
{ {

Loading…
Cancel
Save