forked from AuroraMiddleware/gtk
407b5246a6
If we are clicking through the shadow of a window, we need to take special care to not raise the old window on mouseUp. This is normally done by the display server for us, so we need to use the proper API that is public to handle this (rather than CGSSetWindowTags()). Doing so requires us to dispatch the event to the NSView and then cancel the activcation from the mouseDown: event there.
75 lines
2.3 KiB
Objective-C
75 lines
2.3 KiB
Objective-C
/* GdkMacosWindow.h
|
|
*
|
|
* Copyright © 2020 Red Hat, Inc.
|
|
* Copyright © 2005-2007 Imendio AB
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
* SPDX-License-Identifier: LGPL-2.1-or-later
|
|
*/
|
|
|
|
#import <AppKit/AppKit.h>
|
|
#import <Foundation/Foundation.h>
|
|
#import <IOSurface/IOSurface.h>
|
|
|
|
#include <gdk/gdk.h>
|
|
|
|
#include "gdkmacosbuffer-private.h"
|
|
#include "gdkmacosdisplay.h"
|
|
#include "gdkmacossurface.h"
|
|
#include "edgesnapping.h"
|
|
|
|
#define GDK_IS_MACOS_WINDOW(obj) ([obj isKindOfClass:[GdkMacosWindow class]])
|
|
|
|
@interface GdkMacosWindow : NSWindow {
|
|
GdkMacosSurface *gdk_surface;
|
|
|
|
BOOL inMove;
|
|
BOOL inShowOrHide;
|
|
BOOL initialPositionKnown;
|
|
|
|
/* Manually triggered move/resize (not by the window manager) */
|
|
BOOL inManualMove;
|
|
BOOL inManualResize;
|
|
BOOL inTrackManualResize;
|
|
NSPoint initialResizeLocation;
|
|
NSRect initialResizeFrame;
|
|
GdkSurfaceEdge resizeEdge;
|
|
|
|
EdgeSnapping snapping;
|
|
|
|
NSRect lastUnmaximizedFrame;
|
|
NSRect lastMaximizedFrame;
|
|
NSRect lastUnfullscreenFrame;
|
|
BOOL inMaximizeTransition;
|
|
}
|
|
|
|
-(void)beginManualMove;
|
|
-(void)beginManualResize:(GdkSurfaceEdge)edge;
|
|
-(void)hide;
|
|
-(BOOL)isInManualResizeOrMove;
|
|
-(BOOL)isInMove;
|
|
-(GdkMacosDisplay *)gdkDisplay;
|
|
-(GdkMacosSurface *)gdkSurface;
|
|
-(void)setGdkSurface:(GdkMacosSurface *)surface;
|
|
-(void)setStyleMask:(NSWindowStyleMask)styleMask;
|
|
-(void)showAndMakeKey:(BOOL)makeKey;
|
|
-(BOOL)trackManualMove;
|
|
-(BOOL)trackManualResize;
|
|
-(void)setDecorated:(BOOL)decorated;
|
|
-(void)swapBuffer:(GdkMacosBuffer *)buffer withDamage:(const cairo_region_t *)damage;
|
|
-(BOOL)needsMouseDownQuirk;
|
|
|
|
@end
|