TomHarte / CLK

A latency-hating emulator of: the Acorn Electron and Archimedes, Amstrad CPC, Apple II/II+/IIe and early Macintosh, Atari 2600 and ST, ColecoVision, Enterprise 64/128, Commodore Vic-20 and Amiga, MSX 1/2, Oric 1/Atmos, early PC compatibles, Sega Master System, Sinclair ZX80/81 and ZX Spectrum.
MIT License
929 stars 52 forks source link

The UI overlays appear and disappear at undesired times #1176

Open ryandesign opened 11 months ago

ryandesign commented 11 months ago

I have two problems with the way that the UI overlays that I see on macOS on top of a Clock Signal 2023-09-10 Apple II emulator window (Use Square Pixels checkbox, Colour/Monochrome drop-down menu, volume slider) are designed. The first is that they appear when I don't want them to. The second is that they disappear while I'm using them and want them to stay visible.

overlays

They appear when I don't want them to

Primarily, I never want anything to obscure the emulator screen but Clock Signal shows these overlays whenever the cursor wanders into the window, and then hides them after the cursor hasn't moved for a few seconds.

At first that sounds reasonable, but it's extremely common for me to have an emulator running but to have switched to another macOS app. I may then switch back to the emulator by clicking in its window. This will cause the overlays to reappear, which I didn't want and which prevents me from seeing what's at the bottom of the emulator screen which is where I was going to type my next command, forcing me to wait for the overlays to disappear.

It's also quite likely that, some time after having clicked in the emulator window to activate it, I will inadvertently bump the mouse with my arm which, because the cursor was last seen over the emulator window, will cause it to show the overlays again.

Personally I don't want any overlays ever. I would prefer to see all of the UI that's currently in the overlays moved to new areas of the window above and/or below the emulator screen. A menu command, perhaps with a keyboard equivalent, could be used to show or hide these areas. Virtual ][ uses a standard macOS window toolbar. OpenEmulator uses the space-saving variant of the standard toolbar that shares space with the titlebar.

They disappear while I'm using them

Conversely, there is a small chance I might actually want to change the settings currently located in the overlays. For example, I tried repeatedly clicking the Use Square Pixels checkbox to enable and disable it, to compare what those two modes looked like. While repeatedly clicking this checkbox I was not moving the mouse cursor so within a few seconds, the overlays disappeared, even though I was using them. If the overlays are to remain and to hide after no mouse activity, mouse clicks must be considered to be mouse activity.

TomHarte commented 10 months ago

The interface is modelled on that used by modern (and semi-modern) QuickTime Player, which has the same model of in-window controls that appear upon window mouseover — even if the window isn't activated. This replaced the old model of child windows that's still depicted in this readme image.

I definitely think I have a few details wrong though:

I'm not a big fan of overloaded titlebars but I think there's definitely an argument that most of this stuff is more naturally located in a pull-down or somewhere similar.

I'll play with it and see what happens.