From 3ce36c4d6c124b14b80fff05b837e3d477e8c630 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?m=C3=B6si?= Date: Tue, 5 May 2009 07:04:53 +0000 Subject: =?UTF-8?q?CF%Comp%=20kann=20nun=20bei=20fehlgeschlagenem=20Compos?= =?UTF-8?q?e=20bewirken,=20dass=20eine=20bis=20dahin=20g=C3=BCltige=20Sequ?= =?UTF-8?q?enz=20nachtr=C3=A4glich=20ausgegeben=20wird,=20wenn=20ein=20unb?= =?UTF-8?q?ekanntes=20Zeichen=20folgt.=20Setzt=20man=20beispielsweise=20CM?= =?UTF-8?q?U0000DF=20:=3D=201=20CDU0000DFU0000DF=20:=3D=20"U00017FU000073"?= =?UTF-8?q?=20dann=20bewirken=20die=20ersten=20beiden=20Zeilen,=20dass=20e?= =?UTF-8?q?in=20einzelnes=20=C3=9F=20erst=20mal=20=E2=80=9Etot=E2=80=9C=20?= =?UTF-8?q?wirkt,=20und=20mit=20einem=20zweiten=20=C3=9F=20wird=20?= =?UTF-8?q?=E2=80=9E=C5=BFs=E2=80=9C=20draus.=20Man=20kann=20nun=20diese?= =?UTF-8?q?=20Zeile=20anh=C3=A4ngen:=20CFU0000DF=20:=3D=20"U0000DF"=20Das?= =?UTF-8?q?=20bewirkt=20nun,=20dass=20das=20erste=20=C3=9F,=20wenn=20es=20?= =?UTF-8?q?von=20irgend=20einem=20anderen=20Zeichen=20gefolgt=20wird,=20mi?= =?UTF-8?q?t=20diesem=20dann=20(verz=C3=B6gert)=20ausgegeben=20wird,=20so,?= =?UTF-8?q?=20als=20g=C3=A4be=20es=20f=C3=BCr=20alle=20Compose-M=C3=B6glic?= =?UTF-8?q?hkeiten=20aus=20=C3=9F=20und=20anderem=20Zeichen=20eine=20entsp?= =?UTF-8?q?rechende=20Compose-Sequenz,=20die=20eben=20diese=20beiden=20Zei?= =?UTF-8?q?chen=20als=20Ergebnis=20liefert.=20Normaler=20Weise=20w=C3=BCrd?= =?UTF-8?q?en=20beide=20Zeichen=20verschluckt=20werden,=20da=20es=20keine?= =?UTF-8?q?=20entsprechende=20Compose-Sequenz=20gibt.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ohne CFU0000DF: ßß → ſs ßa → ßb → Mit CFU0000DF: ßß → ſs ßa → ßa ßb → ßb git-svn-id: https://svn.neo-layout.org@1814 b9310e46-f624-0410-8ea1-cfbb3a30dc96 --- windows/neo-vars/src/source/varsfunctions.ahk | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/windows/neo-vars/src/source/varsfunctions.ahk b/windows/neo-vars/src/source/varsfunctions.ahk index d538a03..079dadc 100644 --- a/windows/neo-vars/src/source/varsfunctions.ahk +++ b/windows/neo-vars/src/source/varsfunctions.ahk @@ -42,6 +42,7 @@ CharStarDown(PhysKey, ActKey, char) { CharProc%SubProc%() return } +rerun: wasNonShiftKeyPressed := 1 if (PP%PhysKey% != "") CompNew := PP%PhysKey% ; Von Tastaturwiederholung @@ -56,6 +57,27 @@ CharStarDown(PhysKey, ActKey, char) { tosend := "" PP%PhysKey% := "" Comp := CompNew + } else if (CF%Comp% != "") { + tosend := CF%Comp% + if (PR%PhysKey% != "") { ; Eventuell vergessenen Key-Release aufr�umen + CharOutUp(PR%PhysKey%) + PR%PhysKey% := "" + } + + loop { + if (SubStr(tosend,1,1)=="P") { + SubProc := SubStr(tosend,2,6) + CharProc%SubProc%() + } else { + CharOut(SubStr(tosend,1,7)) + } + tosend := SubStr(tosend,8) + if (tosend == "") + break ; erledigt + } + Comp := "" + PP%PhysKey% := "" + goto rerun } else if (Comp == "") { ; noch kein Zeichen in der Compose-Queue: Ein einzelnes Zeichen wird geschickt tosend := char PP%PhysKey% := char -- cgit v1.2.3