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.
Pierre Ossman [Wed, 21 Jun 2017 11:50:03 +0000 (13:50 +0200)]
Fake key release for iOS hardware keyboards
iOS sends decent key down events, but junk key up events when a
hardware keyboard is used. This confuses the key tracking as a
corresponding release is then never detected. To work around this
we'll treat the hardware keyboard like the virtual ones and send
the key release right away.
Solly Ross [Mon, 5 Jun 2017 17:33:39 +0000 (13:33 -0400)]
Fix Travis-Sauce Connection
Somethings got messed up in the Travis-Sauce tunnel setup. This should
fix it by re-adding the Sauce credentials. It also updates the config
to explicitly pass auth information instead of via environment
variables.
Samuel Mannehed [Mon, 22 May 2017 06:24:41 +0000 (08:24 +0200)]
Add hint that the control bar can be moved
The control bar can be dragged to the other side, this isn't obvious
however. This adds a hint on the opposite side in the form of a subtle
glowing half-ellipse.
Pierre Ossman [Mon, 22 May 2017 11:44:48 +0000 (13:44 +0200)]
Revert recording file format changes
Change back to the old, non-modular recording file format. The new
method doesn't work reliably and there are existing recordings already
out there that we might want to handle.
Samuel Mannehed [Sat, 20 May 2017 16:59:47 +0000 (18:59 +0200)]
Clear the password input field
If a user disconnects but leaves the browser tab open, the password
input field would still contain the password for future connections.
We now clear the input field after reading the password into memory.
Pierre Ossman [Fri, 19 May 2017 12:39:49 +0000 (14:39 +0200)]
Handle loading web workers in any path
The URL is interpreted relative the current page, not relative
the current script. So we need to have some extra code in order to
allow the module loader to be agnostic to its path.
Pierre Ossman [Mon, 15 May 2017 12:40:28 +0000 (14:40 +0200)]
Fix bootstart of input field
It wasn't working properly anymore because it expected to be triggered
by the "load". But we now register that event listener long after the
"load" event has already fired.
Samuel Mannehed [Fri, 12 May 2017 10:52:05 +0000 (12:52 +0200)]
Catch errors for when we can't play bell
Many browsers, for example Chrome on Android will not allow audio to
play unless it's initiated from a user action. It is not reasonable to
display an error for this. Fixes issue #821.
Pierre Ossman [Fri, 27 Jan 2017 11:52:24 +0000 (12:52 +0100)]
Clean up AltGraph handling
It doesn't need to be this general as the issue is mostly about
Windows. Also use the same modifier shuffle that RealVNC and
TigerVNC uses to get macOS working well.
Pierre Ossman [Fri, 27 Jan 2017 09:49:04 +0000 (10:49 +0100)]
Remove modifier synchronisation
The fields provided cannot tell us if it is the left or right
version of the key that's pressed, so they are inherently unreliable.
It is also not a huge problem in practice as we'll get in sync on
the next press or release of the modifier.
Pierre Ossman [Tue, 24 Jan 2017 16:18:43 +0000 (17:18 +0100)]
Improve lookup of special keys
Look up keys that are independent of layout and state first,
followed by keys that are only mild variations in layouts.
This is more robust as there might be multiple physical keys
generating the same symbols, and Keysyms don't map directly to
Unicode in all cases.
At the same time switch over to using the modern, standardised
'code' field for lookup.
Pierre Ossman [Wed, 25 Jan 2017 10:29:08 +0000 (11:29 +0100)]
Improve character keysym lookup
Use the more modern 'key' field, and remove some legacy fallbacks
that are no longer required. This also removes the "stall" mechanism
as it is not needed with current browsers.
Philipp Hahn [Wed, 3 May 2017 10:01:05 +0000 (12:01 +0200)]
Remove double unescaping of title
Commit fa5b334dcbe7a5dab21580b54cc2f5f142600379 by Joel Martin changed
getQueryVal() to always decode the value using decodeURIComponent(), but
unescape() is still used for extracting the title, leading to
double-unescaping.
As unescape() is deprecated anyway, remove the last user.
Cc: Joel Martin <github@martintribe.org> Cc: Anthony Young <sleepsonthefloor@gmail.com>
Samuel Mannehed [Fri, 21 Apr 2017 13:23:18 +0000 (15:23 +0200)]
Fix panning test for high DPI devices
There is a drag-threshold in the panning code which the tests didn't
account for. This caused the tests to fail when window.devicePixelRatio
was higher than 1.
Samuel Mannehed [Tue, 11 Apr 2017 08:53:06 +0000 (10:53 +0200)]
Properly restore the default style
Setting a style to null does restore it in FF, Chrome, Safari and Edge.
But it does not work in Internet Explorer. The proper way to restore to
default values is to set it to the empty string. This works in all
browsers. Fixes issue #808.
Samuel Mannehed [Wed, 5 Apr 2017 12:00:59 +0000 (14:00 +0200)]
Always send mouseUp events properly
If down is false we can't just toggle the current internal state, even
though this is correct most of the time. There are cases where we don't
get the down event and thus won't have a correct internal state. For
example, when clicking in the session after using the clipboard
textarea.
If down is false, we always want to send a mouse event with the button
in 'up'-state.
Solly Ross [Wed, 1 Mar 2017 21:26:15 +0000 (16:26 -0500)]
Fix vnc_auto.html
This commit fixes `vnc_auto.html` to work with the new changes.
Note that it is not translated over when `--with-app` is used
on `util/use_require.js`. We'll probably want to deprecate it,
or do some longer-term cleanup.