Skip to content

Feature/keyboarding - #1

Closed
KenZook wants to merge 17 commits into
developfrom
feature/Keyboarding
Closed

Feature/keyboarding#1
KenZook wants to merge 17 commits into
developfrom
feature/Keyboarding

Conversation

@KenZook

Copy link
Copy Markdown
Contributor

No description provided.

ermshipereteand others added 17 commits May 29, 2013 15:47
This patch integrates getting available keyman keyboards on Windows
into the Keyboarding library. It also adds functionality for
(de-)activating system and keyman keyboards on Windows.
Change-Id: I8820c172095de1b63d5caa39a193aeef4908be37
Use IViewInputMgr on both Windows and Linux to allow C++ code to
access input methods/keyboards. On Linux we use a managed
implementation, on Windows we modified VwTextStore slightly
to implement this interface. Also some cleanup and refactorings.
Change-Id: I2b71e384b8b33c5457ead1e43c034784fb3ee8e5
Change-Id: Ifb2dcca36a3acdf456776e83adecf414fd923bb6
Use functionality of keyboarding library instead.
Change-Id: Ic2228b22dde098240a0ea82b50ab487325645d3f
This interface is no longer needed. Also LgKeymanHandler is now
only used on Windows, so it got excluded on Linux.
Change-Id: Ia73d5b72dc101104caa35a5a77589eb09ff27442
When migrating to git we deleted the delnode.exe tool which broke
the clean target of the nmake files. Fortunately rmdir has
learned to recursively delete directories so that we don't need
a special tool anymore.
Change-Id: Ie7e50a8a42b4fdec559b21c8dc3ea5f52f987822
MSDN documentation says that we should call ImmReleaseContext
when we're done with the context.
Change-Id: I0a5065fe546814945d0acd1dfe1d67d3e0f2ccd4
Also remove obsolete build batch files and remove obsolete NAnt
call from remaining build batch files.
Change-Id: Iaecdc0e273409fb6d556e57d256db196c595e26e
- remove obsolete code
- integrate LcidKeyboardStatus in keyboarding library (FWNX-1124)
This change is part of FWNX-1150.
Change-Id: I35ff94d4d864f13cd31f74b814c5055a1f45d8ef
This change fixes a problem that suddently appeared on my machine:
when starting FW in VS FieldWorks.exe gets recompiled which caused
the manifest file to rebuild. For whatever reason registering
Language.dll failed which caused all comClass entries to be
removed from the manifest file, preventing FW from starting.
This change modifies the behavior of the RegFree.targets file that
gets included in the FieldWorks.csproj file: the manifest file gets
only rebuild if any of the unmanaged dlls changed.
Change-Id: I75ff9250794691bc4155e24e3221afceec8fa71f
Change-Id: I05f6b8c1796651a2dce183e1cd47a2095d4d2914
This change deletes large chunks of FLEx code that have been
more-or-less moved to Palaso, replacing it with generally smaller
chunks which delegate to the Palaso objects.
JohnT: I'm most dubious about removing the LinuxKeyboardHelper
class. Essentially I have inlined many of its methods to the
ViewInputManager class, which is only instantiated for Linux. In
many cases, ViewInputManager delegated to a KeyboardHelper method
that did nothing, or something very trivial. I have removed the
keyboard helper and made the ViewInputManager methods do the
corresponding thing. This allowed getting rid of the Keyboarding
Assembly altogether, since all its other functionality moved to
Palaso. (The little piece in the ViewInputManager/KeyboardHelper
files was for TSF support that is quite specific to Views, and
thus does not seem to me appropriate to move to Palaso.) It also
seemed to simplify things.
This change integrates a temporary change to get the Palaso DLLs
from Jenkins (which in turn contains a better way of organizing
the downloads).
Change-Id: I0c7e973a6cbf7869e63ddd271990bba27355d0f3
Change-Id: I1c6fbae0f4e799487945cbc352726788a7a114fe
PalasoUIWindowsForms.dll requires Enchant.Net.dll otherwise
trying to instantiate WritingSystemSetupModel fails with
a TypeLoadException.
Also fix a bug in ViewInputManager: OnMouseEvent has to
always return false otherwise no further processing happens.
Change-Id: I47e29617d5c86cbf25778fdaa391b23fa03452ca
Needed for mono dependency download build task to connect to https
Change-Id: I95e65263bbae1c7c200a4e871ab31b20211ef6aa
The main point of this change is that the FieldWorks code
that reads LDML files needs to set the (legacy) WindowsLcid
field that the Palaso code uses to figure out the active keyboard.
Turns out the PalasoWritingSystem.LCID property is made obsolete
by this, so I removed it. Unfortunately it was inherited from
a COM interface, so that generated a lot of changes.
Change-Id: I853c113469a31c2239c6d7e32851b43a819f5a4b
@KenZook

Copy link
Copy Markdown
ContributorAuthor

No I didn't want to merge anything

@KenZookKenZook closed this Sep 18, 2013
jasonleenaylor added a commit that referenced this pull request Jul 29, 2026
The composed edit context routed writes through nine parallel
Dictionary<stableId, Func<...>> maps (text, rich-text, option, reference
add/remove, and four paragraph maps). Each field's edit behavior was scattered
across up to nine untyped Func maps that all had to be kept in sync by matching
the same string stable id - the flagged #1 maintainability concern.
- Replace the nine maps with a single Dictionary<stableId, FieldEditHandler>.
FieldEditHandler carries one field's text/rich-text/option/reference/paragraph
write delegates together (null where the field's kind does not support a
gesture). A walker builds up a field's handler via ComposeState.HandlerFor;
ComposedRegionEditContext looks up the one handler and calls the relevant slot,
rejecting an unsupported gesture by finding a null slot - the same rejection the
nine-map lookups produced on a missing key. The nine-argument constructor
collapses to one handler-map argument.
- Decompose the two long walkers by concern (pure mechanical extraction, no logic
change): WalkTextField (~200 lines) now delegates writing-system resolution,
per-WS value/audio building, and edit-handler registration to
ResolveTextRowWritingSystems / BuildTextRowValues / RegisterTextRowEditHandler;
WalkOtherField's three switch-case bodies move to WalkReferenceAtomicField /
WalkOwningAtomicField / WalkReferenceVectorField, leaving a thin dispatcher.
Behavior-preserving: staging, undo labels, and rejection semantics are unchanged.
The three xWorks tests that construct ComposedRegionEditContext directly were
updated to build handler maps; their assertions are unchanged.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
johnml1135 pushed a commit that referenced this pull request Jul 31, 2026
The composed edit context routed writes through nine parallel
Dictionary<stableId, Func<...>> maps (text, rich-text, option, reference
add/remove, and four paragraph maps). Each field's edit behavior was scattered
across up to nine untyped Func maps that all had to be kept in sync by matching
the same string stable id - the flagged #1 maintainability concern.
- Replace the nine maps with a single Dictionary<stableId, FieldEditHandler>.
FieldEditHandler carries one field's text/rich-text/option/reference/paragraph
write delegates together (null where the field's kind does not support a
gesture). A walker builds up a field's handler via ComposeState.HandlerFor;
ComposedRegionEditContext looks up the one handler and calls the relevant
slot, rejecting an unsupported gesture by finding a null slot - the same
rejection the nine-map lookups produced on a missing key. The nine-argument
constructor collapses to one handler-map argument.
- Decompose the two long walkers by concern (pure mechanical extraction, no
logic change): WalkTextField (~200 lines) now delegates writing-system
resolution, per-WS value/audio building, and edit-handler registration to
ResolveTextRowWritingSystems / BuildTextRowValues /
RegisterTextRowEditHandler; WalkOtherField's three switch-case bodies move to
WalkReferenceAtomicField / WalkOwningAtomicField / WalkReferenceVectorField,
leaving a thin dispatcher.
Behavior-preserving: staging, undo labels, and rejection semantics are
unchanged. The three xWorks tests that construct ComposedRegionEditContext
directly were updated to build handler maps; their assertions are unchanged.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
jasonleenaylor added a commit that referenced this pull request Aug 6, 2026
The composed edit context routed writes through nine parallel
Dictionary<stableId, Func<...>> maps (text, rich-text, option, reference
add/remove, and four paragraph maps). Each field's edit behavior was scattered
across up to nine untyped Func maps that all had to be kept in sync by matching
the same string stable id - the flagged #1 maintainability concern.
- Replace the nine maps with a single Dictionary<stableId, FieldEditHandler>.
FieldEditHandler carries one field's text/rich-text/option/reference/paragraph
write delegates together (null where the field's kind does not support a
gesture). A walker builds up a field's handler via ComposeState.HandlerFor;
ComposedRegionEditContext looks up the one handler and calls the relevant
slot, rejecting an unsupported gesture by finding a null slot - the same
rejection the nine-map lookups produced on a missing key. The nine-argument
constructor collapses to one handler-map argument.
- Decompose the two long walkers by concern (pure mechanical extraction, no
logic change): WalkTextField (~200 lines) now delegates writing-system
resolution, per-WS value/audio building, and edit-handler registration to
ResolveTextRowWritingSystems / BuildTextRowValues /
RegisterTextRowEditHandler; WalkOtherField's three switch-case bodies move to
WalkReferenceAtomicField / WalkOwningAtomicField / WalkReferenceVectorField,
leaving a thin dispatcher.
Behavior-preserving: staging, undo labels, and rejection semantics are
unchanged. The three xWorks tests that construct ComposedRegionEditContext
directly were updated to build handler maps; their assertions are unchanged.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@KenZook@ermshiperete@marksvc@JohnThomson