|
@@ -35,15 +35,25 @@
|
|
|
#import "godot_content_view.h"
|
|
#import "godot_content_view.h"
|
|
|
#import "godot_window.h"
|
|
#import "godot_window.h"
|
|
|
|
|
|
|
|
-@implementation GodotWindowDelegate
|
|
|
|
|
|
|
+@implementation GodotWindowDelegate {
|
|
|
|
|
+ DisplayServer::WindowID window_id;
|
|
|
|
|
+ DisplayServerMacOS *ds;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+- (instancetype)initWithDisplayServer:(DisplayServerMacOS *)p_ds {
|
|
|
|
|
+ if (self = [super init]) {
|
|
|
|
|
+ ds = p_ds;
|
|
|
|
|
+ window_id = DisplayServerMacOS::INVALID_WINDOW_ID;
|
|
|
|
|
+ }
|
|
|
|
|
+ return self;
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
- (void)setWindowID:(DisplayServer::WindowID)wid {
|
|
- (void)setWindowID:(DisplayServer::WindowID)wid {
|
|
|
window_id = wid;
|
|
window_id = wid;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- (BOOL)windowShouldClose:(id)sender {
|
|
- (BOOL)windowShouldClose:(id)sender {
|
|
|
- DisplayServerMacOS *ds = (DisplayServerMacOS *)DisplayServer::get_singleton();
|
|
|
|
|
- if (!ds || !ds->has_window(window_id)) {
|
|
|
|
|
|
|
+ if (!ds->has_window(window_id)) {
|
|
|
return YES;
|
|
return YES;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -52,8 +62,7 @@
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- (void)windowWillClose:(NSNotification *)notification {
|
|
- (void)windowWillClose:(NSNotification *)notification {
|
|
|
- DisplayServerMacOS *ds = (DisplayServerMacOS *)DisplayServer::get_singleton();
|
|
|
|
|
- if (!ds || !ds->has_window(window_id)) {
|
|
|
|
|
|
|
+ if (!ds->has_window(window_id)) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -73,8 +82,7 @@
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- (void)windowWillEnterFullScreen:(NSNotification *)notification {
|
|
- (void)windowWillEnterFullScreen:(NSNotification *)notification {
|
|
|
- DisplayServerMacOS *ds = (DisplayServerMacOS *)DisplayServer::get_singleton();
|
|
|
|
|
- if (!ds || !ds->has_window(window_id)) {
|
|
|
|
|
|
|
+ if (!ds->has_window(window_id)) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -91,8 +99,7 @@
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- (void)windowDidFailToEnterFullScreen:(NSWindow *)window {
|
|
- (void)windowDidFailToEnterFullScreen:(NSWindow *)window {
|
|
|
- DisplayServerMacOS *ds = (DisplayServerMacOS *)DisplayServer::get_singleton();
|
|
|
|
|
- if (!ds || !ds->has_window(window_id)) {
|
|
|
|
|
|
|
+ if (!ds->has_window(window_id)) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -101,8 +108,7 @@
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- (void)windowDidEnterFullScreen:(NSNotification *)notification {
|
|
- (void)windowDidEnterFullScreen:(NSNotification *)notification {
|
|
|
- DisplayServerMacOS *ds = (DisplayServerMacOS *)DisplayServer::get_singleton();
|
|
|
|
|
- if (!ds || !ds->has_window(window_id)) {
|
|
|
|
|
|
|
+ if (!ds->has_window(window_id)) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -126,8 +132,7 @@
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- (void)windowWillExitFullScreen:(NSNotification *)notification {
|
|
- (void)windowWillExitFullScreen:(NSNotification *)notification {
|
|
|
- DisplayServerMacOS *ds = (DisplayServerMacOS *)DisplayServer::get_singleton();
|
|
|
|
|
- if (!ds || !ds->has_window(window_id)) {
|
|
|
|
|
|
|
+ if (!ds->has_window(window_id)) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -143,8 +148,7 @@
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- (void)windowDidFailToExitFullScreen:(NSWindow *)window {
|
|
- (void)windowDidFailToExitFullScreen:(NSWindow *)window {
|
|
|
- DisplayServerMacOS *ds = (DisplayServerMacOS *)DisplayServer::get_singleton();
|
|
|
|
|
- if (!ds || !ds->has_window(window_id)) {
|
|
|
|
|
|
|
+ if (!ds->has_window(window_id)) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -159,8 +163,7 @@
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- (void)windowDidExitFullScreen:(NSNotification *)notification {
|
|
- (void)windowDidExitFullScreen:(NSNotification *)notification {
|
|
|
- DisplayServerMacOS *ds = (DisplayServerMacOS *)DisplayServer::get_singleton();
|
|
|
|
|
- if (!ds || !ds->has_window(window_id)) {
|
|
|
|
|
|
|
+ if (!ds->has_window(window_id)) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -206,8 +209,7 @@
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- (void)windowDidChangeBackingProperties:(NSNotification *)notification {
|
|
- (void)windowDidChangeBackingProperties:(NSNotification *)notification {
|
|
|
- DisplayServerMacOS *ds = (DisplayServerMacOS *)DisplayServer::get_singleton();
|
|
|
|
|
- if (!ds || !ds->has_window(window_id)) {
|
|
|
|
|
|
|
+ if (!ds->has_window(window_id)) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -237,8 +239,7 @@
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- (void)windowWillStartLiveResize:(NSNotification *)notification {
|
|
- (void)windowWillStartLiveResize:(NSNotification *)notification {
|
|
|
- DisplayServerMacOS *ds = (DisplayServerMacOS *)DisplayServer::get_singleton();
|
|
|
|
|
- if (ds && ds->has_window(window_id)) {
|
|
|
|
|
|
|
+ if (ds->has_window(window_id)) {
|
|
|
DisplayServerMacOS::WindowData &wd = ds->get_window(window_id);
|
|
DisplayServerMacOS::WindowData &wd = ds->get_window(window_id);
|
|
|
wd.last_frame_rect = [wd.window_object frame];
|
|
wd.last_frame_rect = [wd.window_object frame];
|
|
|
ds->set_is_resizing(true);
|
|
ds->set_is_resizing(true);
|
|
@@ -246,15 +247,11 @@
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- (void)windowDidEndLiveResize:(NSNotification *)notification {
|
|
- (void)windowDidEndLiveResize:(NSNotification *)notification {
|
|
|
- DisplayServerMacOS *ds = (DisplayServerMacOS *)DisplayServer::get_singleton();
|
|
|
|
|
- if (ds) {
|
|
|
|
|
- ds->set_is_resizing(false);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ ds->set_is_resizing(false);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- (void)windowDidResize:(NSNotification *)notification {
|
|
- (void)windowDidResize:(NSNotification *)notification {
|
|
|
- DisplayServerMacOS *ds = (DisplayServerMacOS *)DisplayServer::get_singleton();
|
|
|
|
|
- if (!ds || !ds->has_window(window_id)) {
|
|
|
|
|
|
|
+ if (!ds->has_window(window_id)) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -277,8 +274,7 @@
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- (void)windowDidChangeScreen:(NSNotification *)notification {
|
|
- (void)windowDidChangeScreen:(NSNotification *)notification {
|
|
|
- DisplayServerMacOS *ds = (DisplayServerMacOS *)DisplayServer::get_singleton();
|
|
|
|
|
- if (!ds || !ds->has_window(window_id)) {
|
|
|
|
|
|
|
+ if (!ds->has_window(window_id)) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -286,8 +282,7 @@
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- (void)windowDidMove:(NSNotification *)notification {
|
|
- (void)windowDidMove:(NSNotification *)notification {
|
|
|
- DisplayServerMacOS *ds = (DisplayServerMacOS *)DisplayServer::get_singleton();
|
|
|
|
|
- if (!ds || !ds->has_window(window_id)) {
|
|
|
|
|
|
|
+ if (!ds->has_window(window_id)) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -300,8 +295,7 @@
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- (void)windowDidBecomeKey:(NSNotification *)notification {
|
|
- (void)windowDidBecomeKey:(NSNotification *)notification {
|
|
|
- DisplayServerMacOS *ds = (DisplayServerMacOS *)DisplayServer::get_singleton();
|
|
|
|
|
- if (!ds || !ds->has_window(window_id)) {
|
|
|
|
|
|
|
+ if (!ds->has_window(window_id)) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -332,8 +326,7 @@
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- (void)windowDidResignKey:(NSNotification *)notification {
|
|
- (void)windowDidResignKey:(NSNotification *)notification {
|
|
|
- DisplayServerMacOS *ds = (DisplayServerMacOS *)DisplayServer::get_singleton();
|
|
|
|
|
- if (!ds || !ds->has_window(window_id)) {
|
|
|
|
|
|
|
+ if (!ds->has_window(window_id)) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -352,8 +345,7 @@
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- (void)windowDidMiniaturize:(NSNotification *)notification {
|
|
- (void)windowDidMiniaturize:(NSNotification *)notification {
|
|
|
- DisplayServerMacOS *ds = (DisplayServerMacOS *)DisplayServer::get_singleton();
|
|
|
|
|
- if (!ds || !ds->has_window(window_id)) {
|
|
|
|
|
|
|
+ if (!ds->has_window(window_id)) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -368,8 +360,7 @@
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- (void)windowDidDeminiaturize:(NSNotification *)notification {
|
|
- (void)windowDidDeminiaturize:(NSNotification *)notification {
|
|
|
- DisplayServerMacOS *ds = (DisplayServerMacOS *)DisplayServer::get_singleton();
|
|
|
|
|
- if (!ds || !ds->has_window(window_id)) {
|
|
|
|
|
|
|
+ if (!ds->has_window(window_id)) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -386,8 +377,7 @@
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- (void)windowDidChangeOcclusionState:(NSNotification *)notification {
|
|
- (void)windowDidChangeOcclusionState:(NSNotification *)notification {
|
|
|
- DisplayServerMacOS *ds = (DisplayServerMacOS *)DisplayServer::get_singleton();
|
|
|
|
|
- if (!ds || !ds->has_window(window_id)) {
|
|
|
|
|
|
|
+ if (!ds->has_window(window_id)) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
DisplayServerMacOS::WindowData &wd = ds->get_window(window_id);
|
|
DisplayServerMacOS::WindowData &wd = ds->get_window(window_id);
|