Index: udriveslist.pas
===================================================================
--- udriveslist.pas	(revision 6381)
+++ udriveslist.pas	(working copy)
@@ -61,8 +61,6 @@
     procedure EnterEvent(Sender: TObject);
     procedure ExitEvent(Sender: TObject);
     procedure KeyDownEvent(Sender: TObject; var Key: Word; Shift: TShiftState);
-    procedure KeyPressEvent(Sender: TObject; var Key: Char);
-    procedure UTF8KeyPressEvent(Sender: TObject; var UTF8Key: TUTF8Char);
 
     procedure SelectDrive(ADriveIndex: Integer);
     procedure DoDriveSelected(ADriveIndex: Integer);
@@ -174,8 +172,6 @@
   OnEnter         := @EnterEvent;
   OnExit          := @ExitEvent;
   OnKeyDown       := @KeyDownEvent;
-  OnKeyPress      := @KeyPressEvent;
-  OnUTF8KeyPress  := @UTF8KeyPressEvent;
 end;
 
 procedure TDrivesListPopup.UpdateDrivesList(ADrivesList: TDrivesList);
@@ -461,21 +457,12 @@
         ShowContextMenu(GetDriveIndexByRow(Row), Rect.Left, Rect.Top);
         Key := 0;
       end;
-  end;
+    else
+    if (CheckShortcut(TUTF8Char(Char(Key)))) then
+      Key:=0;
+    end;
 end;
 
-procedure TDrivesListPopup.KeyPressEvent(Sender: TObject; var Key: Char);
-begin
-  if CheckShortcut(TUTF8Char(Key)) then
-    Key := #0;
-end;
-
-procedure TDrivesListPopup.UTF8KeyPressEvent(Sender: TObject; var UTF8Key: TUTF8Char);
-begin
-  if CheckShortcut(UTF8Key) then
-    UTF8Key := '';
-end;
-
 procedure TDrivesListPopup.SelectDrive(ADriveIndex: Integer);
 begin
   if (ADriveIndex >= 0) and (ADriveIndex < DrivesCount) then
@@ -551,7 +538,7 @@
       if Length(Drive^.DisplayName) > 0 then
       begin
         Cells[1, RowNr] := Drive^.DisplayName;
-        FShortCuts[I] := UTF8Copy(Drive^.DisplayName, 1, 1);
+        FShortCuts[I] := UTF8Copy(UpperCase(Drive^.DisplayName), 1, 1);
       end
       else
       begin
