Browse Source

fix up osx implementation.

pull/3967/head
Dan Walmsley 6 years ago
parent
commit
466f015836
  1. 11
      native/Avalonia.Native/inc/avalonia-native.h
  2. 14
      native/Avalonia.Native/src/OSX/window.mm

11
native/Avalonia.Native/inc/avalonia-native.h

@ -207,12 +207,11 @@ enum AvnMenuItemToggleType
enum AvnExtendClientAreaChromeHints enum AvnExtendClientAreaChromeHints
{ {
AvnChromeHintsNoChrome, AvnNoChrome = 0,
AvnChromeHintsSystemTitleBar = 0x01, AvnSystemChrome = 0x01,
AvnChromeHintsManagedChromeButtons = 0x02, AvnPreferSystemChrome = 0x02,
AvnChromeHintsSystemChromeButtons = 0x04, AvnOSXThickTitleBar = 0x08,
AvnChromeHintsOSXThickTitleBar = 0x08, AvnDefaultChrome = AvnSystemChrome,
AvnChromeHintsDefault = AvnChromeHintsSystemTitleBar | AvnChromeHintsSystemChromeButtons,
}; };
AVNCOM(IAvaloniaNativeFactory, 01) : IUnknown AVNCOM(IAvaloniaNativeFactory, 01) : IUnknown

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

@ -488,7 +488,7 @@ private:
WindowImpl(IAvnWindowEvents* events, IAvnGlContext* gl) : WindowBaseImpl(events, gl) WindowImpl(IAvnWindowEvents* events, IAvnGlContext* gl) : WindowBaseImpl(events, gl)
{ {
_isClientAreaExtended = false; _isClientAreaExtended = false;
_extendClientHints = AvnChromeHintsDefault; _extendClientHints = AvnDefaultChrome;
_fullScreenActive = false; _fullScreenActive = false;
_canResize = true; _canResize = true;
_decorations = SystemDecorationsFull; _decorations = SystemDecorationsFull;
@ -511,7 +511,7 @@ private:
{ {
if(_isClientAreaExtended) if(_isClientAreaExtended)
{ {
[button setHidden: !(_extendClientHints & AvnChromeHintsSystemChromeButtons)]; [button setHidden: !((_extendClientHints & AvnSystemChrome)) || (_extendClientHints & AvnPreferSystemChrome)];
} }
else else
{ {
@ -599,7 +599,7 @@ private:
if(_lastWindowState == FullScreen) if(_lastWindowState == FullScreen)
{ {
// we exited fs. // we exited fs.
if(_extendClientHints & AvnChromeHintsOSXThickTitleBar) if(_extendClientHints & AvnOSXThickTitleBar)
{ {
Window.toolbar = [NSToolbar new]; Window.toolbar = [NSToolbar new];
Window.toolbar.showsBaselineSeparator = false; Window.toolbar.showsBaselineSeparator = false;
@ -612,7 +612,7 @@ private:
else if(state == FullScreen) else if(state == FullScreen)
{ {
// we entered fs. // we entered fs.
if(_extendClientHints & AvnChromeHintsOSXThickTitleBar) if(_extendClientHints & AvnOSXThickTitleBar)
{ {
Window.toolbar = nullptr; Window.toolbar = nullptr;
} }
@ -815,7 +815,9 @@ private:
[Window setTitlebarAppearsTransparent:true]; [Window setTitlebarAppearsTransparent:true];
if(_extendClientHints & AvnChromeHintsSystemTitleBar) auto wantsTitleBar = (_extendClientHints & AvnSystemChrome) || (_extendClientHints & AvnPreferSystemChrome);
if (wantsTitleBar)
{ {
[StandardContainer ShowTitleBar:true]; [StandardContainer ShowTitleBar:true];
} }
@ -824,7 +826,7 @@ private:
[StandardContainer ShowTitleBar:false]; [StandardContainer ShowTitleBar:false];
} }
if(_extendClientHints & AvnChromeHintsOSXThickTitleBar) if(_extendClientHints & AvnOSXThickTitleBar)
{ {
Window.toolbar = [NSToolbar new]; Window.toolbar = [NSToolbar new];
Window.toolbar.showsBaselineSeparator = false; Window.toolbar.showsBaselineSeparator = false;

Loading…
Cancel
Save