summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGraeme Geldenhuys <graemeg@gmail.com>2013-04-18 12:16:30 +0100
committerGraeme Geldenhuys <graemeg@gmail.com>2013-04-18 12:16:30 +0100
commit37a30285f054d78fb1403e501a7d30ab01584ad0 (patch)
treed385dad0f54d257bae50732c098aa4af54471809 /src
parentcfa370eb864bb4e040321c47b5ee56476029cbf8 (diff)
parent75d8e848f6e599a477429c4ee95a95e2967b34a8 (diff)
downloadfpGUI-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.pas64
-rw-r--r--src/gui/fpg_edit.pas10
-rw-r--r--src/gui/fpg_editcombo.pas10
-rw-r--r--src/gui/fpg_memo.pas11
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