diff --git a/Cocoa/Document.xib b/Cocoa/Document.xib
index 1f78d4a..1b93456 100644
--- a/Cocoa/Document.xib
+++ b/Cocoa/Document.xib
@@ -56,7 +56,7 @@
-
+
diff --git a/Cocoa/GBWindow.h b/Cocoa/GBWindow.h
new file mode 100644
index 0000000..f391e07
--- /dev/null
+++ b/Cocoa/GBWindow.h
@@ -0,0 +1,5 @@
+#import
+
+@interface GBWindow : NSWindow
+
+@end
diff --git a/Cocoa/GBWindow.m b/Cocoa/GBWindow.m
new file mode 100644
index 0000000..4b4e273
--- /dev/null
+++ b/Cocoa/GBWindow.m
@@ -0,0 +1,22 @@
+#import "GBWindow.h"
+
+@interface NSWindow(private)
+- (void)_zoomFill:(id)sender;
+@end
+
+/*
+ For some reason, Apple replaced the alt + zoom button behavior to be "fill" rather than zoom.
+ I don't like that. It prevents SameBoy's integer scaling from working. Let's restore it.
+*/
+
+@implementation GBWindow
+- (void)_zoomFill:(id)sender
+{
+ if (sender == [self standardWindowButton:NSWindowZoomButton] &&
+ (self.currentEvent.modifierFlags & NSEventModifierFlagOption)) {
+ [self zoom:sender];
+ return;
+ }
+ [super _zoomFill:sender];
+}
+@end