SEBWIN-909: Ensured individual keys are not transmitted as part of the screen proctoring meta data and improved presentation of single modifier key triggers.

This commit is contained in:
Damian Büchel 2024-07-25 16:49:52 +02:00
parent a350949b1b
commit d4f5f203db

View file

@ -115,10 +115,19 @@ namespace SafeExamBrowser.Proctoring.ScreenProctoring.Data
private void CaptureKeyboardTrigger(KeyboardTrigger keyboard)
{
var flags = Enum.GetValues(typeof(KeyModifier)).OfType<KeyModifier>().Where(m => m != KeyModifier.None && keyboard.Modifier.HasFlag(m));
var flags = Enum.GetValues(typeof(KeyModifier))
.OfType<KeyModifier>()
.Where(m => m != KeyModifier.None && keyboard.Modifier.HasFlag(m) && !keyboard.Key.ToString().Contains(m.ToString()));
var modifiers = flags.Any() ? string.Join(" + ", flags) + " + " : string.Empty;
triggerInfo = $"'{modifiers}{keyboard.Key}' has been {keyboard.State.ToString().ToLower()}.";
if (flags.Any())
{
triggerInfo = $"'{modifiers}{keyboard.Key}' has been {keyboard.State.ToString().ToLower()}.";
}
else
{
triggerInfo = $"A key has been {keyboard.State.ToString().ToLower()}.";
}
}
private void CaptureMouseTrigger(MouseTrigger mouse)