Spacebar should open menu

Report problems here (or use the built-in feedback dialog in the editor)
Post Reply
Voptiplex
Posts: 35
Joined: Thu Nov 14, 2013 1:07 pm

Spacebar should open menu

Post by Voptiplex »

Hi Chris,

I have recently updated Rube to 1.7.4 and now spacebar does not open up the main menu.
With 1.7.3 everything works fine.
I have attached 2 log.
(macOS: 10.12.5

From the log:
1.7.3:
15:13:02: First pass ignoring action menu: myscripts-
15:13:02: Returning from loadCustomMenuActions because nothing has changed.
15:13:02: After loading custom menu, m_rootCustomMenuActionItem = 0x30713040X

1.7.4:
15:07:24: Returning from loadCustomMenuActions because nothing has changed.
15:07:24: After loading custom menu, m_rootCustomMenuActionItem = 0x0X
15:07:33: Could not find help file rubehelp_en.qhc

So somehow on 1.7.4, m_rootCustomMenuActionItem is 0x0X and rube can not find it's help files.
On 1.7.3 I could not find the problem with the help.

Have you seen this behaviour ?
I have upgraded macOS from 10.12.4 to 10.12.5, no idea if that can cause this problem.

Thanks,
Thomas
Attachments
Rube.zip
Logs
(3.38 KiB) Downloaded 1572 times
iforce2d
Site Admin
Posts: 861
Joined: Sat Dec 22, 2012 7:20 pm

Re: Spacebar should open menu

Post by iforce2d »

I have not seen it personally, because OSX 10.8 is the last one I have used. The developers at Apple have a complete disregard for the principle of backward compatibility, so programs that were working perfectly fine are sometimes broken by a new OS version.

In this case the problem seems to be that the OS tell the program to use a different working directory when it executes. You can see some previous encounters with problems caused by this starting from OSX 10.9 Mavericks:
viewtopic.php?f=7&t=266&p=1071

There is also another delightful feature on MacOS where it looks at the working directory the first time you run a program after downloading, and will then always use that as the working directory even after you move the program somewhere else (causing expected files to be not found)
viewtopic.php?f=7&t=84&p=551#p550

The only reliable way to avoid both these problems seems to be to start the program from a terminal, which lets you specify the working directory yourself instead of letting MacOS mess it up. To try that you should open a Terminal window and cd to the folder where the app, the config folder and rubehelp_en.* files are located together first. This makes the working directory the same as where the program is located. Eg:

Code: Select all

cd <where your R.U.B.E.app is located>
./R.U.B.E.app/Contents/MacOS/rube
Voptiplex
Posts: 35
Joined: Thu Nov 14, 2013 1:07 pm

Re: Spacebar should open menu

Post by Voptiplex »

Hi,

yes, you are right, if I start Rube from terminal, the spacebar menu works.
It is good enough for me.
But If you have enough people complaining on Macs, you could think of adding the language packs and stuff to the app. Maybe that avoids the problem.

Thanks for your help,
Thomas
iforce2d
Site Admin
Posts: 861
Joined: Sat Dec 22, 2012 7:20 pm

Re: Spacebar should open menu

Post by iforce2d »

With the one that was giving you problems, can you try turning on debug logging (the "Show debug messages" checkbox in the 'Debug' tab of the Preferences dialog) and see what shows up in the log file (rube.log) when the program is started? Start it in the same way you were doing that gave you problems, eg. double-click on the icon or whatever. The log should say something like this:

Code: Select all

23:29:25 [  INFO   ]: Started log
23:29:25 [  DEBUG  ]: Application dir path: /somepath/rube.app/Contents/MacOS
23:29:29 [  DEBUG  ]: Current path was: /Users/chris/projects/rube/run
23:29:29 [  DEBUG  ]: Setting application working directory to: /somepath
... which is some logging from the fix I had to make when OSX 10.9 was released.

The annoying problem is you might not be able to find that log file so easily, since the reason we are doing this test in the first place is because we don't know what the OS is setting the current directory to. You may need to search for the log file on the entire disk, eg. try this in a terminal:

Code: Select all

find / -name "rube.log"
... and look at the most recently created one, as there may be multiple of them.
Post Reply