mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-28 22:41:43 +00:00
7e778aa033
In the Quartz backend, there are two methods by which windows are resized. The first method is fully handled by Quartz and does not appear in the event stream the application resizes. The second method is when we resize windows by ourselves. In OS X this happens when a GTK+ resize grip is used. This resize grip is larger than the Quartz resize grip. When the resize is started outside the "Quartz area", we have to handle it by ourselves. This patch fixes this manual window resizing by ignoring events while we are in the process of resizing (such that the events actually arrive at the sendEvent handler of GdkQuartzWindow where this resize is handled). When the resize has finished we break all grabs such that GDK is not stuck thinking the cursor is still in the resize window.
50 lines
1.3 KiB
Objective-C
50 lines
1.3 KiB
Objective-C
/* GdkQuartzNSWindow.h
|
|
*
|
|
* Copyright (C) 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/>.
|
|
*/
|
|
|
|
#import <AppKit/AppKit.h>
|
|
#import <Foundation/Foundation.h>
|
|
#include <glib.h>
|
|
|
|
@interface GdkQuartzNSWindow : NSWindow {
|
|
BOOL inMove;
|
|
BOOL inShowOrHide;
|
|
|
|
/* Manually triggered move/resize (not by the window manager) */
|
|
BOOL inManualMove;
|
|
BOOL inManualResize;
|
|
BOOL inTrackManualResize;
|
|
NSPoint initialMoveLocation;
|
|
NSPoint initialResizeLocation;
|
|
NSRect initialResizeFrame;
|
|
}
|
|
|
|
-(BOOL)isInMove;
|
|
-(void)beginManualMove;
|
|
-(BOOL)trackManualMove;
|
|
-(BOOL)isInManualResize;
|
|
-(void)beginManualResize;
|
|
-(BOOL)trackManualResize;
|
|
-(void)showAndMakeKey:(BOOL)makeKey;
|
|
-(void)hide;
|
|
|
|
@end
|
|
|
|
|
|
|
|
|