Odd editor window activation behavior on Mac

This is a UI/UX quality-of-life kind of thing that just makes the app a bit more frustrating to use, especially if you use multiple monitors and multiple windows (such as the main editor and the Blueprint Editor side by side). macOS 10.12.6, UE 4.16.2:

On the Mac, the standard behavior is that when the app isn’t active, mouse movement does not trigger rollovers on its windows’ controls. When the mouse is clicked in a deactivated app, that click is eaten as part of app activation. Once the app is activated, all windows in the app are now “live” and clicks are not eaten activating them (rollovers work, and clicking a button in another window fires that button).

UE does something a bit stranger. First, rollovers appear even when the window isn’t active. This in and of itself isn’t a big deal in and of itself (some apps will show live rollovers and don’t eat the app activation click, although this behavior isn’t common). The problem is that UE is eating the click instead of passing it through. If you’re showing rollovers, you should not eat the click. If you want the click to be eaten on window activation, then you should not be showing rollovers. The current behavior feels inconsistent and broken, because the app appears to ignore the user’s attempt to interact with it.

  1. Launch UE with a template project.
  2. Click in another app, or Finder, making sure it doesn’t cover UE.
  3. Mouse over the Play button in UE. Notice that you see rollovers.
  4. Click on the Play button. Notice that it depresses as though you clicked it, implying that it actually did something. Also notice that the game isn’t actually playing, indicating that the click did nothing more than activate the window.
  5. Click the Play button again. The app finally plays.

Equally annoying is that clicking between other open UE windows has this same behavior. For example:

  1. Launch UE with a template project.
  2. Open the Blueprint Editor with any blueprint in a new window.
  3. Arrange the windows side by side.
  4. Click in the Blueprint Editor window so that it is active…
  5. Click on the Play button in UE (no the one in the Blueprint Editor). Notice that although it showed rollovers and the button was depressed when clicked, it didn’t actually play.
  6. Click the play button again. The app finally plays…

Since the UE app is selected, I should both see rollovers in any UE windows and clicking on a button should immediately take the input, not be eaten by window activation.

This happens with other buttons as well, not just play. It’s a bit annoying, since it feels like the app has broken and isn’t responding to input, but the second time you click the button it works correctly.

Thanks!