Projucer 4.2.1: Open Recent menu reliability

Is anyone else finding Projucer’s Open Recent menu a bit baffling? Sometimes it seems to contain some recent projects, but rarely in the order of most recently opened (expected behaviour). At the moment, mine is completely empty and no matter what I try, I can’t get it to populate with anything…?

Projucer 4.2.1 (built from 0c3057e 2016/04/21)
OS X 10.11.4 (15E65)

Yep, it never shows any recent projects here. I compiled it using the latest master branch with XCode.

1 Like

I have one system it has never worked on, works fine on another one …

I only have one Mac, and it doesn’t work here. It’s really odd, I’ve tried to debug it and the list of recent files gets filled just fine. I’m missing the point where it gets erased…

EDIT: this might be an El Capitan issue, there are a couple of similar reports but no one-size-fits-all solution.

Maybe completely unrelated, the PropertiesFile is not multi process aware, so one process overwrites the settings of another when child processes are used

For me it doesn’t work on any or three OS X machines (with latest develop tip) and I really would like to use it. It also doesn’t work on a fresh git clone + build on the latest El Capitan, so there’s got to be a bug somewhere.

I got so annoyed by this I decided to look into the Projucer source. I quickly figured settings are working fine (they are still called “Introjucer.settings” though…)
It appears the problem is related to the naming of the “Open Recent” menu entry on mac. Sometimes its “Open Recent…” and sometimes it’s “Open Recent”. For some reason i can’t check the NIB here, but if I change this method to include “…” the open recent menu gets populated again but still shows up as “Open Recent” without the dots. I don’t really want to look into how the juce menu gets converted to the native OS X menu, but it seems that’s where things go wrong… it sometimes can’t find the right submenu to replace with the recent files entries.

void ProjucerApplication::handleAsyncUpdate()
    initialiseWindows (getCommandLineParameters());

   #if JUCE_MAC
    MenuBarModel::setMacMainMenu (menuModel, nullptr, "Open Recent...");

    versionChecker = new LatestVersionChecker();

1 Like

I realized adding those dots basically just breaks the logic and then it magically works.! Maybe this is a case of OSX’ own “open recent” code working against the Juce “open recent” code?

The way it works involves a strange and undocumented OSX behaviour where the OS behaves in a special way if you give it a menu with that particular name (!)

The fact that this sometimes stops working is a bit of a mystery, and yes, if you change the name you’re basically changing the behaviour from it being the OS that populates the menu to it being juce’s own cross-platform menu, which is OK but not quite as nicely presented as the system’s one.

Has anyone figured out how to get it to start working again after sometimes stopping to work? If I read this correctly: does this mean Applications built with JUCE also have the issue and not just ProJucer?

I never saw anything in that “recent menu”, it never works for me unfortunately.
I’m also wondering :

Same here, never saw “Recent” on Mac.
Windows works fine. guess eventually a sudden commit on JUCE will fix it. minor issue :wink:

Yep remains unfixed. In the meantime I just right-click on the ProJucer Icon in my Dock to get the OSX-provided recent document list which is working perfectly fine.

1 Like

ah, thanks, nice tip! I never think about that.