Multi-monitor support was extended in the Pd 0.48 to allow these kinds of values. Ideally, opening a patch on a different desktop setup should result in the window manager rejecting bad values and returning the window placed on screen.
Previously, the Pd gui did this itself (mostly by forcing windows always on the main screen) but we changed to to ask Tk to do it. It now looks like the new versions of Tk on macOS aren't quite successful and there is a bug. These seemed to work fine for me when I was working on it for Pd 0.48 but maybe Mojave behaves differently?
On Nov 19, 2018, at 12:00 PM, pd-list-request@lists.iem.at wrote:
From: Michael Straeubig <straeubig@gmail.com mailto:straeubig@gmail.com> To: pd-list@lists.iem.at mailto:pd-list@lists.iem.at Subject: [PD] pd crashing with patches saved on a 2-monitor setup (plus workaround) Message-ID: <CAHkHHym27M0-iQWQeKajfwwBqJ=syJUiJxhsU9qP+ybFG0Gf=Q@mail.gmail.com mailto:CAHkHHym27M0-iQWQeKajfwwBqJ=syJUiJxhsU9qP+ybFG0Gf=Q@mail.gmail.com> Content-Type: text/plain; charset="utf-8"
Hi,
I thought this might be helpful if someone runs into similar problems.
I have a number a small patches I made in August 2014 with the pd version at that time. Now I tried to open those patches on my current setup (Mac OS 10.14.1 Mojave, pd 0.49-1.64 bit). Most of those patches crashed on startup. Same result with the 32bit version and with pd 0.48-1 as well. Pd 0.47 and earlier do not run on Mojave, so I couldn't test. I was sure these patches worked in the past...
This is the crash log.
Application Specific Information: *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: CGRectContainsRect(CGRectMake((CGFloat)INT_MIN, (CGFloat)INT_MIN, (CGFloat)INT_MAX - (CGFloat)INT_MIN, (CGFloat)INT_MAX - (CGFloat)INT_MIN), frame)' abort() called terminating with uncaught exception of type NSException
The first line of one of the offending patches:
#N canvas 681 -998 1010 411 10;
The negative value piqued my interest. It comes from a setup with two monitors where monitor 2 is on top (north) of monitor 1. Whenever a patch is saved while on monitor 2, this value is negative and newer pd's crash opening the patch next time. More experimentation: creating a new patch and saving while it is on monitor 2 produces the same result.
Workaround: opening the patch with an editor and changing the value to a positive number lets pd open the patch normally.
Best, M
Dan Wilcox @danomatika http://twitter.com/danomatika danomatika.com http://danomatika.com/ robotcowboy.com http://robotcowboy.com/