Max Katz
6 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with
61 additions and
2 deletions
-
native/Avalonia.Native/src/OSX/rendertarget.mm
-
src/Avalonia.Controls/ContextMenu.cs
-
tests/Avalonia.Controls.UnitTests/ContextMenuTests.cs
|
|
|
@ -111,7 +111,11 @@ |
|
|
|
if(_renderbuffer != 0) |
|
|
|
glDeleteRenderbuffers(1, &_renderbuffer); |
|
|
|
} |
|
|
|
CFRelease(surface); |
|
|
|
|
|
|
|
if(surface != nullptr) |
|
|
|
{ |
|
|
|
CFRelease(surface); |
|
|
|
} |
|
|
|
} |
|
|
|
@end |
|
|
|
|
|
|
|
@ -145,6 +149,12 @@ static IAvnGlSurfaceRenderTarget* CreateGlRenderTarget(IOSurfaceRenderTarget* ta |
|
|
|
} |
|
|
|
|
|
|
|
- (void)resize:(AvnPixelSize)size withScale: (float) scale{ |
|
|
|
|
|
|
|
if(size.Height <= 0) |
|
|
|
size.Height = 1; |
|
|
|
if(size.Width <= 0) |
|
|
|
size.Width = 1; |
|
|
|
|
|
|
|
@synchronized (lock) { |
|
|
|
if(surface == nil |
|
|
|
|| surface->size.Width != size.Width |
|
|
|
|
|
|
|
@ -246,7 +246,7 @@ namespace Avalonia.Controls |
|
|
|
/// <summary>
|
|
|
|
/// Opens the menu.
|
|
|
|
/// </summary>
|
|
|
|
public override void Open() => throw new NotSupportedException(); |
|
|
|
public override void Open() => Open(null); |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Opens a context menu on the specified control.
|
|
|
|
|
|
|
|
@ -44,6 +44,55 @@ namespace Avalonia.Controls.UnitTests |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Open_Should_Use_Default_Control() |
|
|
|
{ |
|
|
|
using (Application()) |
|
|
|
{ |
|
|
|
var sut = new ContextMenu(); |
|
|
|
var target = new Panel |
|
|
|
{ |
|
|
|
ContextMenu = sut |
|
|
|
}; |
|
|
|
|
|
|
|
var window = new Window { Content = target }; |
|
|
|
window.ApplyTemplate(); |
|
|
|
window.Presenter.ApplyTemplate(); |
|
|
|
|
|
|
|
bool opened = false; |
|
|
|
|
|
|
|
sut.MenuOpened += (sender, args) => |
|
|
|
{ |
|
|
|
opened = true; |
|
|
|
}; |
|
|
|
|
|
|
|
sut.Open(); |
|
|
|
|
|
|
|
Assert.True(opened); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Open_Should_Raise_Exception_If_AlreadyDetached() |
|
|
|
{ |
|
|
|
using (Application()) |
|
|
|
{ |
|
|
|
var sut = new ContextMenu(); |
|
|
|
var target = new Panel |
|
|
|
{ |
|
|
|
ContextMenu = sut |
|
|
|
}; |
|
|
|
|
|
|
|
var window = new Window { Content = target }; |
|
|
|
window.ApplyTemplate(); |
|
|
|
window.Presenter.ApplyTemplate(); |
|
|
|
|
|
|
|
target.ContextMenu = null; |
|
|
|
|
|
|
|
Assert.ThrowsAny<Exception>(()=> sut.Open()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Closing_Raises_Single_Closed_Event() |
|
|
|
{ |
|
|
|
|