diff options
author | Graeme Geldenhuys <graemeg@gmail.com> | 2013-04-18 12:16:30 +0100 |
---|---|---|
committer | Graeme Geldenhuys <graemeg@gmail.com> | 2013-04-18 12:16:30 +0100 |
commit | 37a30285f054d78fb1403e501a7d30ab01584ad0 (patch) | |
tree | d385dad0f54d257bae50732c098aa4af54471809 /src | |
parent | cfa370eb864bb4e040321c47b5ee56476029cbf8 (diff) | |
parent | 75d8e848f6e599a477429c4ee95a95e2967b34a8 (diff) | |
download | fpGUI-37a30285f054d78fb1403e501a7d30ab01584ad0.tar.xz |
Merge branch 'hotfix-2' into develop
I found a problem with the deadkey support - it broke keyboard input under
Windows. The original deadkey input issue seems to have been X11 specific,
so should be fixed at widget level, but rather in the fpg_x11.pas unit.
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/fpg_base.pas | 64 | ||||
-rw-r--r-- | src/gui/fpg_edit.pas | 10 | ||||
-rw-r--r-- | src/gui/fpg_editcombo.pas | 10 | ||||
-rw-r--r-- | src/gui/fpg_memo.pas | 11 |
4 files changed, 0 insertions, 95 deletions
diff --git a/src/corelib/fpg_base.pas b/src/corelib/fpg_base.pas index 0dda549c..70f3b306 100644 --- a/src/corelib/fpg_base.pas +++ b/src/corelib/fpg_base.pas @@ -757,8 +757,6 @@ type { Keyboard } function KeycodeToText(AKey: Word; AShiftState: TShiftState): string; function CheckClipboardKey(AKey: Word; AShiftstate: TShiftState): TClipboardKeyType; -function UseDeadKey(AChar: TfpgChar; AKey: word): TfpgChar; -function ReadDeadKey(AKey: word): integer; { Color } function fpgColorToRGBTriple(const AColor: TfpgColor): TRGBTriple; @@ -983,68 +981,6 @@ begin end { if/else } end; -function UseDeadKey(AChar: TfpgChar; AKey: word): TfpgChar; -begin - case AKey of - keyDeadCircumflex: - case AChar of - 'a': - Result:= 'â'; - 'e': - Result:= 'ê'; - 'i': - Result:= 'î'; - 'o': - Result:= 'ô'; - 'u': - Result:= 'û'; - 'A': - Result:= 'Â'; - 'E': - Result:= 'Ê'; - 'I': - Result:= 'Î'; - 'O': - Result:= 'Ô'; - 'U': - Result:= 'Û'; - end; - keyDeadDiaeresis: - case AChar of - 'a': - Result:= 'ä'; - 'e': - Result:= 'ë'; - 'i': - Result:= 'ï'; - 'o': - Result:= 'ö'; - 'u': - Result:= 'ü'; - 'A': - Result:= 'Ä'; - 'E': - Result:= 'Ë'; - 'I': - Result:= 'Ï'; - 'O': - Result:= 'Ö'; - 'U': - Result:= 'Ü'; - end; - end; -end; - -function ReadDeadKey(AKey: word): integer; -begin - case AKey of - keyDeadCircumflex, keyDeadDiaeresis: - Result := AKey; - else - Result := -1; - end; -end; - function fpgColorToRGBTriple(const AColor: TfpgColor): TRGBTriple; begin with Result do diff --git a/src/gui/fpg_edit.pas b/src/gui/fpg_edit.pas index 21e6895e..f164ef76 100644 --- a/src/gui/fpg_edit.pas +++ b/src/gui/fpg_edit.pas @@ -94,7 +94,6 @@ type FVisibleText: TfpgString; FVisSelStartPx: integer; FVisSelEndPx: integer; - FDeadKeyChar: integer; function GetMarginAdjustment: integer; virtual; procedure DrawSelection; virtual; procedure DoOnChange; virtual; @@ -756,11 +755,6 @@ var prevval: string; begin prevval := Text; - if FDeadKeyChar> -1 then - begin - AText:= UseDeadKey(AText, FDeadKeyChar); - FDeadKeyChar:= -1; - end; s := AText; if (not consumed) and (not ReadOnly) then @@ -804,9 +798,6 @@ begin hasChanged := False; fpgApplication.HideHint; - if FDeadKeyChar = -1 then - FDeadKeyChar:= ReadDeadKey(keycode); - Consumed := True; case CheckClipBoardKey(keycode, shiftstate) of ckCopy: @@ -1079,7 +1070,6 @@ begin FPopupMenu := nil; FDefaultPopupMenu := nil; FOnChange := nil; - FDeadKeyChar := -1; end; destructor TfpgBaseEdit.Destroy; diff --git a/src/gui/fpg_editcombo.pas b/src/gui/fpg_editcombo.pas index 9145d641..3887cd13 100644 --- a/src/gui/fpg_editcombo.pas +++ b/src/gui/fpg_editcombo.pas @@ -87,7 +87,6 @@ type FSelStart: integer; FSelOffset: integer; FCursorPos: integer; - FDeadKeyChar: integer; procedure DoDropDown; override; function GetText: string; virtual; function HasText: boolean; virtual; @@ -524,11 +523,6 @@ var i: integer; begin prevval := FText; - if FDeadKeyChar> -1 then - begin - AText:= UseDeadKey(AText, FDeadKeyChar); - FDeadKeyChar:= -1; - end; s := AText; consumed := False; if FText = '' then @@ -590,9 +584,6 @@ var begin hasChanged := False; - if FDeadKeyChar = -1 then - FDeadKeyChar:= ReadDeadKey(keycode); - if not Enabled then consumed := False else @@ -892,7 +883,6 @@ begin FDrawOffset := 0; FSelectedItem := -1; // to allow typing if list is empty FNewItem := False; - FDeadKeyChar := -1; CalculateInternalButtonRect; end; diff --git a/src/gui/fpg_memo.pas b/src/gui/fpg_memo.pas index 2769e4d4..df16367b 100644 --- a/src/gui/fpg_memo.pas +++ b/src/gui/fpg_memo.pas @@ -98,7 +98,6 @@ type function GetSelectionText: TfpgString; procedure SetSelectionText(const AText: TfpgString); protected - FDeadKeyChar: integer; procedure HandleKeyChar(var AText: TfpgChar; var shiftstate: TShiftState; var consumed: boolean); override; procedure HandleKeyPress(var keycode: word; var shiftstate: TShiftState; var consumed: boolean); override; procedure HandleLMouseDown(x, y: integer; shiftstate: TShiftState); override; @@ -480,7 +479,6 @@ begin FReadOnly := False; FUpdateCount := 0; FBorderStyle := ebsDefault; - FDeadKeyChar := -1; FLines := TfpgMemoStrings.Create(self); FFirstLine := 0; @@ -1062,11 +1060,6 @@ var begin inherited; prevval := Text; - if FDeadKeyChar> -1 then - begin - AText:= UseDeadKey(AText, FDeadKeyChar); - FDeadKeyChar:= -1; - end; s := AText; if (not consumed) and (not ReadOnly) then @@ -1114,10 +1107,6 @@ begin fpgApplication.HideHint; Consumed := True; hasChanged := False; - - if FDeadKeyChar = -1 then - FDeadKeyChar:= ReadDeadKey(keycode); - case CheckClipBoardKey(keycode, shiftstate) of ckCopy: begin |