Some improvements.

1) DGEpsilon was added to avoid the loss of precision.
2) The cycle bug is fixed:
for (int i = 0; i <= DGMaxHotKeys; i++)
_hotkeyData[i].enabled = false;
The condition i <= DGMaxHotKeys is changed for i < DGMaxHotKeys, because
array overrun is possible; the value of 'i' index could reach 13.