Fixes#6306.
Simulator builds excluded arm64 targets which is not correct for M1
support; although the basic app would run, the app extension (for the
soft keyboard) would not.
This fixes an issue that arises when loading the Keyman Developer Server
home page and there are registered keyboards, but no keyboards active.
The floating osk view would throw an exception because it would attempt
to set the title of the view from the active keyboard, which is `null`.
Fixes#845.
Fixes#3224.
Makes the active tab more visible both in the horizontal file tabs, and
in the vertical activity tabs by changing the background colour to
Keyman Light Blue (css: `#79C3DA`).
Fixes#4168.
This button no longer makes sense when we have template projects, as it
encourages keyboard developers to create multiple packages. The template
project should already have a package.
It is also not hard to create a package if you don't already have one;
this does not reduce the complexity significantly, apart from the mini
feature of adding both the .js and the .kmx in a single step (the .kvk
is added also by virtue of the .kmx being added, but that is done in
any case if you manually add a .kmx to a package).
Fixes#5415.
This adds `-h` and `-help` command line parameters to kmcomp. As kmcomp
uses only single-hyphen parameters currently, I opted not to support the
common `--help`, just for consistency.
Fixes#6299.
Moved some of the init to test.js from packages.js. If not on localhost,
then the UI for upload is disabled -- note that backend for upload is
already disabled for non-localhost.
This is necessary to prevent non-local site users uploading arbitrary
files to the cache, which could lead to security bypass.
Fixes#6297.
Five issues fixed from #6297. Note that the fix for point 5
(`font-family` should be keyboard-specific, and it is not being used
per-keyboard in the keyboard registration yet) opts to use a cleaned
identifier for the font filename, but not one that is keyboard-specific,
at this time.
Fixes#6077.
Refactor all the text field event handlers to have consistent structure
for edits, pastes and keyboard events. This fixes Ctrl+V paste as well
as tidying up the relevant code.
The system keyboard, when deleting-left, would not count the number of
surrogate pairs correctly in the text to delete. This would often leave
it deleting half a surrogate pair.
Rather than change the countSurrogatePairs function, I opted to write
this inline. The countSurrogatePairs function is used elsewhere, it
appears correctly.
If there is an active selection, we delete the selection before
inserting text. In this case, we also ignore the deleteLeft value coming
from KeymanWeb, so we won't delete twice.
Note: in the future, we will hopefully refactor this to use
OutputTarget, which will change the way this function works and will
probably clean up some of the spaghetti.
This change catches the exception we're getting if we try to create
a directory but e.g. there is already a file with that name. In this
case we now output an error message. This change also gracefully
handles failures when linking files.
Fixes#6285.
In the past we already gracefully handled keyboard download failures
when the user triggered the download from the km-config UI. This
change deals with the command line side of things, most often when
the user clicks on the "Install keyboard" button on keyman.com. If
the download fails we already output an error message and now don't
try to install the non-existing .kmp file.
Fixes#6284.