Pierre Ossman [Wed, 18 Oct 2017 14:09:48 +0000 (16:09 +0200)]
Remove package-lock.json
We're an upstream component project so we prefer to keep ourselves
up to date with the latest version of our dependencies. Downstream
packagers will have to do the version locking if they feel it is
necessary.
Pierre Ossman [Mon, 16 Oct 2017 14:19:49 +0000 (16:19 +0200)]
Restore handling of key events for virtual keyboard
We broke handling of keydown/keyup when we moved the focus to the
canvas, as events from our input element would then no longer be
caught when they bubbled up to the document object (where we
previously caught events).
Restore the previous behaviour in a cleaner manner by creating a
second Keyboard object to handle this extra input variant.
Pierre Ossman [Mon, 16 Oct 2017 14:08:29 +0000 (16:08 +0200)]
Make sure control bar stays visible on Tab
Avoid the deprecated keypress event in favour of the keydown event.
It has the benefit of triggering for all keys, not just those that
produce symbols.
Pierre Ossman [Wed, 5 Oct 2016 08:21:47 +0000 (10:21 +0200)]
Add focus state for control bar buttons
The focus can now move to the canvas so it is no longer a source of
confusion. It is also important to indicate that they have focus now
that we actually respect it.
Pierre Ossman [Wed, 5 Oct 2016 08:21:17 +0000 (10:21 +0200)]
Only grab key events on canvas
Give the canvas proper focus handling. This avoids messy logic that
needs to disable and enable event handling when we want to interact
with other UI elements.
It also makes sure we can properly inhibit the browser from triggering
local actions on key presses.
Samuel Mannehed [Thu, 12 Oct 2017 12:48:38 +0000 (14:48 +0200)]
Move API documentation from wiki to the repo
Since the API is tied to the source code it makes more sence to have it
in the repository where it can more easily be tied to different versions
of the software.
Samuel Mannehed [Wed, 11 Oct 2017 14:20:25 +0000 (16:20 +0200)]
Remove 'fuzzy' marks that were mistakenly left
During the last round of translations a few fuzzy markings was not
removed even though the string was updated. This can happen when the
translators edit the .po-file manually. Fuzzy markings result in that
the strings do not get included into the generated .json files.
Pierre Ossman [Mon, 9 Oct 2017 14:00:38 +0000 (16:00 +0200)]
Get proper same-origin behaviour when loading modules
The browsers currently do not default to same-origin behaviour for
modules, so we need to be explicit in order for necessary
credentials to be passed along. This seems to be changing though,
but we need to wait for the browsers to actually roll out more
lenient defaults:
Solly Ross [Wed, 4 Oct 2017 19:03:26 +0000 (15:03 -0400)]
[release] v1.0.0-testing.2
v1.0.0-testing.2 is the "make sure all of our autopublishing works
properly" release. Assuming everything goes well, it should shortly be
followed by v1.0.0 proper.
Solly Ross [Tue, 3 Oct 2017 23:36:36 +0000 (19:36 -0400)]
[infra] updated packaging config
This updates the .npmignore file to ignore some new files that were
recently added, and to keep the `core` directory, so that noVNC can be
used as an ES6 module from NPM.
This also updates package.json to clean when generating lib files in the
`prepare` phase (which has replaced the `prepublish` phase).
Solly Ross [Tue, 3 Oct 2017 22:40:52 +0000 (18:40 -0400)]
[infra] fix vendor import paths on built files
A previous commit started (quasi-correctly) rewriting vendor import
paths on built files. The gist of it was correct, but it incorrectly
rewrote paths in vendor itself.
The babel plugin in use operated on canonical absolute paths. This mean
that it saw no difference between the import
`../vendor/pako/lib/utils/foo` and `../utils/foo`, where the later was
actually in the `vendor/pako/lib/bar` directory. This rewrote imports
in files in the vendor directory itself. However, since those files
were *already* in the correct relative location, the new import was
incorrect by a degree of `..`.
Now, we only rewrite vendor paths on things in the `core` directory.
Solly Ross [Tue, 3 Oct 2017 22:21:36 +0000 (18:21 -0400)]
[infra] option to clean on use_require.js
This adds an option to `utils/use_require.js` which cleans the lib
and build directories before regenerating them. This will enable us
to make sure we always have a fresh copy of the lib dir before
publishing.
Samuel Mannehed [Thu, 28 Sep 2017 12:05:20 +0000 (14:05 +0200)]
Upgrade and fix sinon.js
Converted version downloaded from sinonjs.org. Fixed version that
doesn't register itself on the global object. This forces all modules to
do a proper import.
Pierre Ossman [Fri, 8 Sep 2017 09:22:40 +0000 (11:22 +0200)]
Basic support for Intel AMT
This restores basic support for Intel AMT servers. They refuse clients
that request more than 16 bits per pixels, so implement a fallback
in just the "Raw" encoding.
Samuel Mannehed [Tue, 12 Sep 2017 09:16:24 +0000 (11:16 +0200)]
Combine small mouse wheel events
The VNC protocol can't handle different deltas or speeds for a mouse
wheel event. When using a device that sends a lot of small mouse wheel
events, instead of fewer larger steps, the effect was that mouse wheel
scrolling was way to sensitive.
This patch looks at the delta of wheel events and doesn't send events
until the combined delta has passed a threshold. Single events that
doesn't pass the threshold get sent after a timeout in order to not
loose any events.
Pierre Ossman [Fri, 7 Jul 2017 13:06:13 +0000 (15:06 +0200)]
Only send QEMU Extended Key Event if we have a scan code
Servers will assume that a scan code is present if this message type
is used, so fall back to the standard key event message if we don't
know the scan code.
Pierre Ossman [Thu, 6 Jul 2017 10:53:31 +0000 (12:53 +0200)]
Fallback for missing keypress events
IE and Edge have some corner cases (e.g. Ctrl+key) where we get
insufficient information in the keydown event, and we never get
a keypress event. Try to make a guess of the key in those cases.