On 10 September 2018 at 09:12, dandan bi <dandan...@intel.com> wrote: > From: Dandan Bi <dandan...@intel.com> > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=996 > > Issue: > In current code logic, when a key is pressed, it will search > the whole NotifyList to find whether a notification has been > registered with the keystroke. if yes, it will en-queue the > key for notification execution later. And now if different > notification functions have been registered with the same key, > then the key will be en-queued more than once. Then it will > cause the notification executed more than once. > > This patch is to enhance the code logic to fix this issue. > > Cc: Ruiyu Ni <ruiyu...@intel.com> > Cc: Ard Biesheuvel <ard.biesheu...@linaro.org> > Cc: Leif Lindholm <leif.lindh...@linaro.org> > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Dandan Bi <dandan...@intel.com>
Reviewed-by: Ard Biesheuvel <ard.biesheu...@linaro.org> > --- > EmbeddedPkg/Drivers/VirtualKeyboardDxe/VirtualKeyboard.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/EmbeddedPkg/Drivers/VirtualKeyboardDxe/VirtualKeyboard.c > b/EmbeddedPkg/Drivers/VirtualKeyboardDxe/VirtualKeyboard.c > index 6609bc8dbe..daea9c47d2 100644 > --- a/EmbeddedPkg/Drivers/VirtualKeyboardDxe/VirtualKeyboard.c > +++ b/EmbeddedPkg/Drivers/VirtualKeyboardDxe/VirtualKeyboard.c > @@ -1,9 +1,9 @@ > /** @file > VirtualKeyboard driver > > -Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR> > +Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR> > Copyright (c) 2018, Linaro Ltd. All rights reserved.<BR> > > This program and the accompanying materials > are licensed and made available under the terms and conditions > of the BSD License which accompanies this distribution. The > @@ -1043,10 +1043,11 @@ VirtualKeyboardTimerHandler ( > // while current TPL is TPL_NOTIFY. It will be invoked in > // KeyNotifyProcessHandler() which runs at TPL_CALLBACK. > // > Enqueue (&VirtualKeyboardPrivate->QueueForNotify, &KeyData); > gBS->SignalEvent (VirtualKeyboardPrivate->KeyNotifyProcessEvent); > + break; > } > } > > Enqueue (&VirtualKeyboardPrivate->Queue, &KeyData); > > -- > 2.14.3.windows.1 > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel