2
0
Эх сурвалжийг харах

relay choose color window key press event to main form

Lulu 1 жил өмнө
parent
commit
de7511cf93

+ 1 - 0
lazpaint/uchoosecolor.lfm

@@ -16,6 +16,7 @@ object FChooseColor: TFChooseColor
   OnKeyDown = FormKeyDown
   OnKeyUp = FormKeyUp
   OnShow = FormShow
+  OnUTF8KeyPress = FormUTF8KeyPress
   ShowInTaskBar = stNever
   LCLVersion = '2.2.6.0'
   object ChooseColorControl: TPanel

+ 8 - 1
lazpaint/uchoosecolor.pas

@@ -8,7 +8,7 @@ interface
 uses
   Classes, SysUtils, FileUtil, LResources, Forms, Controls, ExtCtrls,
   BGRABitmap, BGRABitmapTypes,
-  LazPaintType, UChooseColorInterface;
+  LazPaintType, UChooseColorInterface, LCLType;
 
 type
 
@@ -22,6 +22,7 @@ type
     procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
     procedure FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
     procedure FormShow(Sender: TObject);
+    procedure FormUTF8KeyPress(Sender: TObject; var UTF8Key: TUTF8Char);
   private
     function GetColorTarget: TColorTarget;
     function GetDarkTheme: boolean;
@@ -89,6 +90,12 @@ begin
   self.EnsureVisible(False);
 end;
 
+procedure TFChooseColor.FormUTF8KeyPress(Sender: TObject; var UTF8Key: TUTF8Char);
+begin
+  if not EditorVisible and Assigned(LazPaintInstance) then
+    LazPaintInstance.SendUTF8KeyPressEventToMainForm(UTF8Key);
+end;
+
 procedure TFChooseColor.SetCurrentColor(value: TBGRAPixel);
 begin
   if Assigned(FInterface) then