Diablo – Pop-up appears when keeping a key pressed for more than a second while playing Diablo 3 on OS X

diablo-3macos

A couple of minutes ago, while playing, I began experiencing a strange issue: whenever I keep pressed for a second or more some of the keys, a pop-up appears asking me to choose from a set of similar characters.

A screenshot of the pop-up.
The pop-up appears even in the chat box.
And when I input my password, too.

Some considerations regarding this issue:

  • I never ever encountered it before today.
  • I installed Diablo 3 on day one, and never had any issue with it (~30 hours of gameplay to date).
  • The problem began in the middle of a gaming session, an hour and an half from the start.
  • I didn't install anything or changed any setting, neither in the game nor in OS X.
  • The pop-up seems belonging to OS X, because of its look and the fact that it can't be screenshotted neither by the game nor the operating system.
  • I could not find any setting that could be related to this in "Keyboard" or "Universal access" in "System preferences".
  • I don't know if I hit some voodoo key combo while playing.
  • I already tried the classical help desk solutions (close and reopen the game, restart the computer, etc) to no avail.
  • It does not happen with other applications (e.g. Firefox, Terminal).

Best Answer

This question belongs on https://apple.stackexchange.com/, but what you're actually seeing here is that the text entry system that Diablo uses is "well-behaved". (FireFox's text entry system probably isn't, on account of being cross-platform, and Terminal isn't for similar reasons.)

This question has the opposite problem, but should be illuminating. https://apple.stackexchange.com/questions/35576

Edit: After a review of the screen shots it appears it might not be as well-behaved as I thought, if it happens outside of areas dedicated for text entry.

From the linked question; fix by opening Terminal.app and running the following command:

defaults write -g ApplePressAndHoldEnabled -bool FALSE