linux-packaging-mono/external/bockbuild/packages/patches/gtk/0001-prevent-gdk-quartz-window-delegate-replacement.patch
Xamarin Public Jenkins (auto-signing) f4a99b8ed9 Imported Upstream version 5.20.0.244
Former-commit-id: 072cb2ad8e168458108970d47c6dafefb04475eb
2019-03-08 08:37:50 +00:00

22 lines
788 B
Diff

diff --git a/gdk/quartz/GdkQuartzWindow.c b/gdk/quartz/GdkQuartzWindow.c
index e8e0de5c7..435c856be 100644
--- a/gdk/quartz/GdkQuartzWindow.c
+++ b/gdk/quartz/GdkQuartzWindow.c
@@ -259,6 +259,16 @@
return [super makeFirstResponder:responder];
}
+-(void)setDelegate:(id<NSWindowDelegate>)delegate
+{
+ if ([super delegate] == nil) {
+ [super setDelegate:delegate];
+ } else {
+ // If we allow the window delegate to be replaced, everything breaks.
+ g_critical ("Setting a delegate on GdkQuartzWindow is forbidden, because everything will break.");
+ }
+}
+
-(id)initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)styleMask backing:(NSBackingStoreType)backingType defer:(BOOL)flag screen:(NSScreen *)screen
{
self = [super initWithContentRect:contentRect