Browse Source

fix transition to fullscreen mode.

pull/8257/head
Dan Walmsley 4 years ago
parent
commit
6e916c21e5
  1. 9
      native/Avalonia.Native/src/OSX/AvnWindow.mm

9
native/Avalonia.Native/src/OSX/AvnWindow.mm

@ -33,6 +33,7 @@
bool _isEnabled; bool _isEnabled;
bool _canBecomeKeyWindow; bool _canBecomeKeyWindow;
bool _isExtended; bool _isExtended;
bool _isTransitioningToFullScreen;
AvnMenu* _menu; AvnMenu* _menu;
} }
@ -175,6 +176,7 @@
[self setBackgroundColor: [NSColor clearColor]]; [self setBackgroundColor: [NSColor clearColor]];
_isExtended = false; _isExtended = false;
_isTransitioningToFullScreen = false;
if(self.isDialog) if(self.isDialog)
{ {
@ -349,6 +351,7 @@
- (void)windowWillEnterFullScreen:(NSNotification *_Nonnull)notification - (void)windowWillEnterFullScreen:(NSNotification *_Nonnull)notification
{ {
_isTransitioningToFullScreen = true;
auto parent = dynamic_cast<IWindowStateChanged*>(_parent.operator->()); auto parent = dynamic_cast<IWindowStateChanged*>(_parent.operator->());
if(parent != nullptr) if(parent != nullptr)
@ -359,6 +362,7 @@
- (void)windowDidEnterFullScreen:(NSNotification *_Nonnull)notification - (void)windowDidEnterFullScreen:(NSNotification *_Nonnull)notification
{ {
_isTransitioningToFullScreen = false;
auto parent = dynamic_cast<IWindowStateChanged*>(_parent.operator->()); auto parent = dynamic_cast<IWindowStateChanged*>(_parent.operator->());
if(parent != nullptr) if(parent != nullptr)
@ -441,7 +445,10 @@
_parent->BaseEvents->RawMouseEvent(NonClientLeftButtonDown, static_cast<uint32>([event timestamp] * 1000), AvnInputModifiersNone, point, delta); _parent->BaseEvents->RawMouseEvent(NonClientLeftButtonDown, static_cast<uint32>([event timestamp] * 1000), AvnInputModifiersNone, point, delta);
} }
_parent->BringToFront(); if(!_isTransitioningToFullScreen)
{
_parent->BringToFront();
}
} }
break; break;

Loading…
Cancel
Save