mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-19 00:59:25 +02:00
LCL: Prevent TCustomEdit.OnChange firing extra time when CharCase is ecLowerCase or ecUpperCase. Issue #32630, patch from accorp.
git-svn-id: trunk@56288 -
This commit is contained in:
parent
534586feff
commit
b5b61d1a93
@ -82,6 +82,7 @@ begin
|
|||||||
FAutoSelect := True;
|
FAutoSelect := True;
|
||||||
FAutoSelected := False;
|
FAutoSelected := False;
|
||||||
FTextChangedByRealSetTextCounter := 0;
|
FTextChangedByRealSetTextCounter := 0;
|
||||||
|
FTextChangingCounter := 0;
|
||||||
AutoSize := True;
|
AutoSize := True;
|
||||||
// Accessibility
|
// Accessibility
|
||||||
AccessibleRole := larTextEditorSingleline;
|
AccessibleRole := larTextEditorSingleline;
|
||||||
@ -578,6 +579,8 @@ var
|
|||||||
SStart, SLen: Integer;
|
SStart, SLen: Integer;
|
||||||
begin
|
begin
|
||||||
//debugln('TCustomEdit.TextChanged ',DbgSName(Self));
|
//debugln('TCustomEdit.TextChanged ',DbgSName(Self));
|
||||||
|
if FTextChangingCounter > 0 then
|
||||||
|
Exit;
|
||||||
if FCharCase in [ecUppercase, ecLowercase] then
|
if FCharCase in [ecUppercase, ecLowercase] then
|
||||||
begin
|
begin
|
||||||
// use a local variable to reduce amounts of widgetset calls
|
// use a local variable to reduce amounts of widgetset calls
|
||||||
@ -592,7 +595,12 @@ begin
|
|||||||
CPos := CaretPos;
|
CPos := CaretPos;
|
||||||
SStart := SelStart;
|
SStart := SelStart;
|
||||||
SLen := SelLength;
|
SLen := SelLength;
|
||||||
|
Inc(FTextChangingCounter);
|
||||||
|
try
|
||||||
Text := Temp;
|
Text := Temp;
|
||||||
|
finally
|
||||||
|
Dec(FTextChangingCounter);
|
||||||
|
end;
|
||||||
SelStart := SStart;
|
SelStart := SStart;
|
||||||
SelLength := SLen;
|
SelLength := SLen;
|
||||||
CaretPos := CPos;
|
CaretPos := CPos;
|
||||||
|
@ -730,6 +730,7 @@ type
|
|||||||
FSelLength: integer;
|
FSelLength: integer;
|
||||||
FSelStart: integer;
|
FSelStart: integer;
|
||||||
FTextChangedByRealSetTextCounter: Integer;
|
FTextChangedByRealSetTextCounter: Integer;
|
||||||
|
FTextChangingCounter: integer;
|
||||||
FTextHint: TTranslateString;
|
FTextHint: TTranslateString;
|
||||||
procedure ShowEmulatedTextHint(const ForceShow: Boolean = False);
|
procedure ShowEmulatedTextHint(const ForceShow: Boolean = False);
|
||||||
procedure HideEmulatedTextHint;
|
procedure HideEmulatedTextHint;
|
||||||
|
Loading…
Reference in New Issue
Block a user