[Rpcemu] RPCEmu macOS mouse behaviour

Timothy Coltman lists at maemagel.com
Sun Mar 22 14:15:28 PDT 2020

> On 22 Mar 2020, at 20:14, Peter Howkins <rpcemu.howkins at marutan.net> wrote:
> On Sun, 22 Mar 2020 at 09:40, Andrew Hodgkinson <ahodgkin at riscosopen.org <mailto:ahodgkin at riscosopen.org>> wrote:
> The root problem is within quite strange (I'm being super polite here) mouse handling code.
> I think the more fundamental issue is that you have issues with your Mac setup or build system. You are right that two builds with different UUIDs should not behave differently, but that they do should be investigated. If I were thinking to diagnose the problem, I'd try the following;
> 1) Take the working and non working builds to a different Mac and run them there
>  a) If both builds no longer work in full screen, that suggests that Mac OS stores some meta-data related to UUID and that there's a difference in settings between the two builds. Finding these settings, understanding them and possibly setting them on the new build will solve this issue.
>  b) If the builds work and don't in the same way as your other Mac, that suggests there's some hard-coded Mac OS workaround for that particular UUID. If you can't find out why, the quick and dirty workaround is to set the new build UUID to the same as the old.
> I do not have a Mac so cannot suggest anything more specific than to stop trying to work around the issue in the RPCEmu code.

I've been doing some playing around, and have got RPCEmu to work on a Mac (10.14.6) in capture mouse mode, unaltered.  The key is go to into System Preferences > Security and Privacy > Accessibility and to add the application in there ("Allow the apps below to control your computer").

You can only add the application in once, so if you have more than one version lying around, or multiple builds (recompiler, interpreter, release, debug), only one will work.  If you want to switch between recompiler/interpreter/Mac patch V3/Mac patch V4/Andrew's patch/David's patch/your own build/etc, you need to remove anything RPCEmu from this list and then re-add it.  

Quick survey: does anyone using the Mac version switch regularly between interpreter and recompiler?

If you run the application without RPCEmu being listed in the "control your computer" list and turn on capture mouse (or just click in the window if it's already active), you should get a prompt appear that tells you that RPCEmu wants to "control this computer using accessibility features".  Click on the "Open System Preferences" button and it'll open the appropriate location in System Preferences and add RPCEmu to the list.  All that you need to do is tick it.  If you then return to the emulator, the mouse should work as Peter describes.

There does seem to be something slightly weird happening, in that it may not list the application under the correct name.  I added a recompiler/debug build, having previously had interpreter/debug listed, and RPCEmu is still listed as "rpcemu-interpreter-debug".  Despite that, it does work fine (at least until I change to another variant).

Peter - in full screen (2560x1600), using a RISC OS resolution of 800x600, it does seem like I have to move the mouse quite a lot on my desk to get it to move a short distance on screen.  Andrew's comment about it not scaling between host and RISC OS coordinates does look to be correct.

From a Mac point of view, I think it's worth changing the magic key combination to something other than CTRL+END to make things easier for laptop users (I develop/test on a desktop).  VMware Fusion uses Ctrl+Command, so I may steal that.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.riscos.info/pipermail/rpcemu/attachments/20200322/057a9f8a/attachment.html>

More information about the RPCEmu mailing list