Browse Source

Merge pull request #4404 from Deadpikle/fix/4395

Fix native menus not being setup properly
repro/carousel-not-materializing-content
danwalmsley 6 years ago
committed by GitHub
parent
commit
1eb77f3b36
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 11
      src/Avalonia.Native/AvaloniaNativeMenuExporter.cs

11
src/Avalonia.Native/AvaloniaNativeMenuExporter.cs

@ -11,7 +11,7 @@ namespace Avalonia.Native
class AvaloniaNativeMenuExporter : ITopLevelNativeMenuExporter
{
private IAvaloniaNativeFactory _factory;
private bool _resetQueued;
private bool _resetQueued = true;
private bool _exported = false;
private IAvnWindow _nativeWindow;
private NativeMenu _menu;
@ -39,8 +39,7 @@ namespace Avalonia.Native
public void SetNativeMenu(NativeMenu menu)
{
_menu = menu == null ? new NativeMenu() : menu;
DoLayoutReset();
DoLayoutReset(true);
}
internal void UpdateIfNeeded()
@ -74,9 +73,9 @@ namespace Avalonia.Native
return result;
}
private void DoLayoutReset()
private void DoLayoutReset(bool forceUpdate = false)
{
if (_resetQueued)
if (_resetQueued || forceUpdate)
{
_resetQueued = false;
@ -109,7 +108,7 @@ namespace Avalonia.Native
if (_resetQueued)
return;
_resetQueued = true;
Dispatcher.UIThread.Post(DoLayoutReset, DispatcherPriority.Background);
Dispatcher.UIThread.Post(() => DoLayoutReset(), DispatcherPriority.Background);
}
private void SetMenu(NativeMenu menu)

Loading…
Cancel
Save