[Rpcemu] RPCEmu macOS mouse behaviour

Andrew Hodgkinson ahodgkin at riscosopen.org
Sun Mar 22 23:04:16 PDT 2020

On 23 Mar 2020, at 14:23, Peter Howkins wrote:

> Can you confirm this, or if not please provide info on which Linux 
> distro you're running under?

A colleague had Linux issues and confirmed follow-host in full screen 
mode worked OK with the patch; I'll get back to you with distro info 
when I have that available.

>> It is definitely advantageous to be able 
>> to access the menu bar and get out of full screen mode in Mac OS, 
>> and 
>> advantageous to be able to thereafter scale the RPCEmu window and 
>> have 
>> the mouse coordinates still correctly mapped.
> I'm also a bit confused about this one, at least on Windows and Linux, 
> full screen means you can pretend there's no Host OS there, it's great 
> for games and the like you're on a real machine. There isn't the menu 
> bar available (because either the menu bar is over the top of the RISC 
> OS content, or the RISC OS content has been squished under it?).

Under macOS since the introduction of a system-wide OS API standardised 
full screen mode (IIRC in OS X Lion, 10.7.0) the way it works is:

* Your window goes into its own desktop "space"
* The application menu bar (shown at the top of the screen in macOS) and 
the window title bar with window controls is hidden
* If the OS mouse pointer is moved towards the top of the screen, the 
menu bar and window title bar become visible

There are three ways once in full screen mode that one might exit it:

* Using some usually application-specific key combination
* By using an application menu entry
* By using the "green" button (of the OS X red, orange green) in the 
window title bar

The last two are only possible when the menu bar and title bar are 
visible, which in turn is only possible when the mouse pointer is able 
to move to the top of the screen. In the "non-mousehack" mode that 
RPCEmu currently enforces when in full screen, the mouse pointer is 
continuously reset to the window centre, making it impossible to reach 
the application main menu or the window title bar. This also means you 
can't do things like change application preferences or e.g. load a 
floppy disc image.

Mac laptops don't have an End key, so Ctrl+End is not accessible there 
and this means users tend to get 'trapped' in full screen mode in the 
current implementation. Even if they turned on mousehack, it's 
temporarily disabled in full screen mode. With the patch in my previous 
message, this behaviour is changed. *If* the user has chosen "follow 
host" (mousehack) mode, then this maintained in full screen mode and the 
host mouse and guest (RISC OS) mouse positions are properly mapped. The 
host mouse pointer moves normally and the window titlebar & main menu 
all become accessible in full screen mode. If the user has turned 
"follow host" off, then the unaltered prior behaviour of 
host-mouse-pulled-to-centre is maintained and the user has to find their 
own way out of full screen mode, but they have the advantage of a far 
more accurate emulation environment and I suspect that this is likely to 
be especially useful for games.

If I were using RISC OS under emulation in full screen on a Mac for the 
desktop, then, I'd prefer it with the patch applied & mousehack on. For 
games, I'd turn mousehack off.

Andrew Hodgkinson
RISC OS Open Limited

More information about the RPCEmu mailing list