From 4c3b7d9630e2bdc32cfc054f0c7041cc02534e46 Mon Sep 17 00:00:00 2001 From: JP Cimalando Date: Thu, 14 Nov 2019 19:01:01 +0100 Subject: [PATCH] Fix user-resizable embedded window in Reaper Mac This will inhibit applying the auto-resize mask until the initial size has been set in the PuglView. Initially, DPF would set this size to (1, 1). --- dgl/src/pugl/pugl_osx.m | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/dgl/src/pugl/pugl_osx.m b/dgl/src/pugl/pugl_osx.m index 80b99304..da595381 100644 --- a/dgl/src/pugl/pugl_osx.m +++ b/dgl/src/pugl/pugl_osx.m @@ -329,6 +329,7 @@ flagsChanged(NSView *self, NSEvent *event) - (void) keyDown:(NSEvent*)event; - (void) keyUp:(NSEvent*)event; - (void) flagsChanged:(NSEvent*)event; +- (void) resizeWithOldSuperviewSize:(NSSize)oldSize; @end @@ -527,6 +528,21 @@ flagsChanged(NSView *self, NSEvent *event) flagsChanged(self, event); } +- (void) resizeWithOldSuperviewSize:(NSSize)oldSize +{ + PuglView *pv = self->puglview; + + if (pv->width <= 1 && pv->height <= 1) + { + /* NOTE: if the view size was not initialized yet, don't perform an + autoresize; it fixes manual resizing in Reaper. + */ + return; + } + + [super resizeWithOldSuperviewSize:oldSize]; +} + @end #endif @@ -570,6 +586,7 @@ flagsChanged(NSView *self, NSEvent *event) - (void) keyDown:(NSEvent*)event; - (void) keyUp:(NSEvent*)event; - (void) flagsChanged:(NSEvent*)event; +- (void) resizeWithOldSuperviewSize:(NSSize)oldSize; @end @implementation PuglCairoView @@ -749,6 +766,22 @@ flagsChanged(NSView *self, NSEvent *event) { flagsChanged(self, event); } + +- (void) resizeWithOldSuperviewSize:(NSSize)oldSize +{ + PuglView *pv = self->puglview; + + if (pv->width <= 1 && pv->height <= 1) + { + /* NOTE: if the view size was not initialized yet, don't perform an + autoresize; it fixes manual resizing in Reaper. + */ + return; + } + + [super resizeWithOldSuperviewSize:oldSize]; +} + @end #endif