return inMove;
}
+- (BOOL)inFullscreenTransition;
+{
+ return inFullscreenTransition;
+}
+
-(void)checkSendEnterNotify
{
/* When a new window has been created, and the mouse is in the window
-(void)windowWillEnterFullScreen:(NSNotification *)aNotification
{
+ inFullscreenTransition = YES;
lastUnfullscreenFrame = [self frame];
}
-(void)windowDidEnterFullScreen:(NSNotification *)aNotification
{
+ inFullscreenTransition = NO;
initialPositionKnown = NO;
[self checkSendEnterNotify];
}
-(void)windowWillExitFullScreen:(NSNotification *)aNotification
{
+ inFullscreenTransition = YES;
}
-(void)windowDidExitFullScreen:(NSNotification *)aNotification
{
+ inFullscreenTransition = NO;
initialPositionKnown = NO;
[self checkSendEnterNotify];
}
-(void)windowDidFailToEnterFullScreen:(NSNotification *)aNotification
{
+ inFullscreenTransition = NO;
}
-(void)windowDidFailToExitFullScreen:(NSNotification *)aNotification
{
+ inFullscreenTransition = NO;
}
-(void)windowDidChangeScreen:(NSNotification *)aNotification
NSRect lastMaximizedFrame;
NSRect lastUnfullscreenFrame;
BOOL inMaximizeTransition;
+ BOOL inFullscreenTransition;
}
-(void)beginManualMove;
-(void)setDecorated:(BOOL)decorated;
-(void)swapBuffer:(GdkMacosBuffer *)buffer withDamage:(const cairo_region_t *)damage;
-(BOOL)needsMouseDownQuirk;
+-(BOOL)inFullscreenTransition;
@end
static void
_gdk_macos_toplevel_surface_fullscreen (GdkMacosToplevelSurface *self)
{
- NSWindow *window;
+ GdkMacosWindow *window;
g_assert (GDK_IS_MACOS_TOPLEVEL_SURFACE (self));
- window = _gdk_macos_surface_get_native (GDK_MACOS_SURFACE (self));
+ window = (GdkMacosWindow *)_gdk_macos_surface_get_native (GDK_MACOS_SURFACE (self));
- if (([window styleMask] & NSWindowStyleMaskFullScreen) == 0)
+ if (![window inFullscreenTransition] && ([window styleMask] & NSWindowStyleMaskFullScreen) == 0)
[window toggleFullScreen:window];
}
static void
_gdk_macos_toplevel_surface_unfullscreen (GdkMacosToplevelSurface *self)
{
- NSWindow *window;
+ GdkMacosWindow *window;
g_assert (GDK_IS_MACOS_TOPLEVEL_SURFACE (self));
- window = _gdk_macos_surface_get_native (GDK_MACOS_SURFACE (self));
+ window = (GdkMacosWindow *)_gdk_macos_surface_get_native (GDK_MACOS_SURFACE (self));
- if (([window styleMask] & NSWindowStyleMaskFullScreen) != 0)
+ if (![window inFullscreenTransition] && ([window styleMask] & NSWindowStyleMaskFullScreen) != 0)
[window toggleFullScreen:window];
}