DPF

DISTRHO Plugin Framework
Log | Files | Refs | Submodules | README | LICENSE

commit 4c3b7d9630e2bdc32cfc054f0c7041cc02534e46
parent 30ba386bc69a7a799d29f2c5262cf209991f7efa
Author: JP Cimalando <jp-dev@inbox.ru>
Date:   Thu, 14 Nov 2019 19:00:34 +0100

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).

Diffstat:
Mdgl/src/pugl/pugl_osx.m | 33+++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+), 0 deletions(-)

diff --git a/dgl/src/pugl/pugl_osx.m b/dgl/src/pugl/pugl_osx.m @@ -329,6 +329,7 @@ flagsChanged(NSView<PuglGenericView> *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<PuglGenericView> *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<PuglGenericView> *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<PuglGenericView> *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