Commit Graph

166 Commits

Author SHA1 Message Date
Pierre Ossman
e89eef94aa Use standard EventTarget interface for events 2017-11-09 13:14:16 +01:00
Pierre Ossman
65fdfeae13 Remove unused options argument in onnotification event handler 2017-11-09 13:13:41 +01:00
Pierre Ossman
2f4516f293 Integrate connect() in to constructor
An RFB object represents a single connection so it doesn't make
sense to have one without it trying to connect right away. Matches
the behaviour of other APIs, e.g. WebSocket.
2017-11-09 13:13:41 +01:00
Pierre Ossman
002907d2ce Remove "downscale only" mode
The normal scaling mode should be sufficient for most use cases, so
let's keep the interface simple.
2017-11-09 13:13:41 +01:00
Pierre Ossman
8d1f0a3de8 Remove local cursor setting
We have no reason to disable this except for touch devices, which
we can handle without having a setting for it.
2017-11-09 13:13:41 +01:00
Pierre Ossman
0460e5fdbe Improve naming for viewport properties 2017-11-09 13:13:41 +01:00
Pierre Ossman
a80aa41628 Change clippingDisplay() to a property
It fits much better as a property given that it only tells what the
current state of things are.
2017-11-09 13:13:41 +01:00
Pierre Ossman
747b462337 Use standard JavaScript properties
Use normal properties with JavaScript setters and getters instead of
our homegrown stuff.

This also changes the properties to follow normal naming conventions.
2017-11-09 13:03:32 +01:00
Pierre Ossman
3d7bb02036 Change some attributes to arguments
Some attributes are better suited as arguments, primarily because they
are associated with a specific method and cannot be changed later.
2017-11-09 12:52:05 +01:00
Pierre Ossman
5b4e5d016e Switch to URL for connect()
This is more in line with how other JavaScript APIs work.
2017-11-09 12:52:05 +01:00
Pierre Ossman
832be2625b Add resize as a capability
Makes the API more transparent than piggybacking on completion
of the first framebuffer update.
2017-11-09 12:51:15 +01:00
Pierre Ossman
cd523e8f28 Make power API generic
Decouple it from XVP and make it a generic API.
2017-11-09 12:47:21 +01:00
Pierre Ossman
430f00d6fe Allow other credentials than just password
Makes the XVP authentication mechanism more general.
2017-11-09 12:45:05 +01:00
Pierre Ossman
f976b5500e Hide mouse object from RFB callers 2017-10-27 13:58:12 +02:00
Pierre Ossman
b9854a5ca5 Hide display object from RFB callers 2017-10-27 13:58:11 +02:00
Pierre Ossman
4c11755ce7 Merge branch 'focus' of https://github.com/CendioOssman/noVNC 2017-10-18 15:12:46 +02:00
Pierre Ossman
867daa98af 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.
2017-10-18 15:08:33 +02:00
Pierre Ossman
06fe4a3e1b 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.
2017-10-18 15:08:33 +02:00
Pierre Ossman
2545a6c12e Stop giving host field default focus
It's a field that isn't shown by default and rarely changed.
2017-10-18 15:08:33 +02:00
Pierre Ossman
2afda54456 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.
2017-10-18 15:07:17 +02:00
Samuel Mannehed
a342ed703f Check if <audio>.play() returns a promise
It doesn't always. IE and Edge crashed when trying to play the bell due
to this. Fixes #929.
2017-10-17 12:16:38 +02:00
Samuel Mannehed
2e735160bf Save pw for reconnections when using query params 2017-10-16 11:06:40 +02:00
Mariusz Jamro
a0513c87c7 Add polish translation 2017-10-10 15:37:31 +02:00
Giannis Kosmas
067accb8d9 autoconnect variable was used before it was defined. 2017-10-06 22:53:52 +03:00
Pierre Ossman
d593483ecc Make port optional in ui.js as well
It is optional in the RFB object since 1a50f68, so we don't need it
at the UI layer either.
2017-10-06 10:07:47 +02:00
Samuel Mannehed
a49ade5fa0 Rename setting_clip to setting_view_clip
Clarifies the purpose of the setting in order to avoid mix ups with
clipboard related things.
2017-09-07 09:01:52 +02:00
Samuel Mannehed
409b7fb97e Remove unused variable
The use of this variable was removed in b18ef8162e
2017-09-07 09:00:15 +02:00
Pierre Ossman
d1a1e0e529 Adjust scaling when session size changes
Session size changes can be initiated from the server, and not just
from the client. Make sure we update the scaling when this happens.
2017-08-16 11:00:04 +02:00
Pierre Ossman
858ea4a774 Avoid use of 'let' and 'const'
They are not supported on older browsers, e.g. iOS 9.
2017-06-02 15:41:37 +02:00
Samuel Mannehed
bbc1648c7a 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.
2017-05-29 15:57:13 +02:00
Samuel Mannehed
c23665dd82 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.
2017-05-20 19:05:46 +02:00
Pierre Ossman
55988e7aec 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.
2017-05-15 14:42:28 +02:00
Samuel Mannehed
d4fc89d8b9 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.
2017-05-12 12:52:05 +02:00
Samuel Mannehed
7ca650b73d Add missing semi colon 2017-05-12 08:48:41 +02:00
Samuel Mannehed
333ad45c70 Don't capture touch events
They are implicitly captured anyway, and we get problems if we try
to explicitly capture them.
2017-05-11 13:34:43 +02:00
Pierre Ossman
26586b9ddf Remove colour map support
It was broken and unused. Remove it so we can simplify the code.
2017-05-04 15:13:33 +02:00
Pierre Ossman
545442afc3 Merge branch 'keyboard' of https://github.com/CendioOssman/noVNC 2017-05-04 12:18:55 +02:00
Pierre Ossman
94f5cf05f3 Send keyboard events from single place
This makes it easier to handle any needed variations, like different
types of messages.
2017-05-04 12:13:47 +02:00
Samuel Mannehed
41c958d450 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.
2017-04-11 10:57:21 +02:00
Pierre Ossman
524d67f283 Remove keysym names from keysymdef.js
They were incomplete and turned off in most cases so they served
little use besides adding complexity.
2017-03-24 11:16:53 +01:00
Solly Ross
adfc9d3f54 Move error handler into separate file
This commit moves the global error handler into a separate file,
so that it can catch module loading errors.

This also adds support for properly displaying error messages with
newlines in them (since the module loader may throw those)
2017-03-21 17:39:07 -04:00
Solly Ross
e6a8eb15ca Only apply settings with an RFB object
We should only apply settings if we have an RFB object available.
Some of the settings handlers didn't respect this, but do now.
2017-03-21 17:39:07 -04:00
Solly Ross
e25f9c4010 Use transition animation while loading
This shows the transition animation while loading, so users can see
something is going on.
2017-03-21 17:39:07 -04:00
Solly Ross
6d6f0db0da Refactor ES6 module structure/split up Util
This commit restructures many of the ES6 modules, splitting them
up to actual export multiple functions instead of a single object.

It also splits up Util into multiple sub-modules, to make it easier
to maintain.

Finally, localisation is renamed to localization.
2017-03-21 17:39:05 -04:00
Solly Ross
2a7c6d20ab Load translations over XHR
This commit causes translations to be loaded over XHR instead of
the import system.
2017-03-07 11:11:29 -05:00
Solly Ross
3ae0bb0968 Uncomment ES6 module syntax
This removes the special comment part of the ES6 module syntax,
opting to enable ES6 module syntax by default.

It also appends `.js` to all import paths to better support in-browser
loading.
2017-02-26 16:30:37 -05:00
Solly Ross
d55e454582 Fix typos in imports and i18n
`app/ui.js` had an incorrect import path which caused issues
when using the ES6 and/or CommonJS builds of noVNC.

`core/util.js` had a non-strict-compatible declaration of a variable
without a `let` or `var` (it now uses `let`).

This fixes both issues.
2017-02-26 16:30:37 -05:00
Samuel Mannehed
b56d975248 Merge branch 'settingswhileconnected' of https://github.com/samhed/noVNC
Closes pull request #778
2017-02-24 15:42:27 +01:00
Samuel Mannehed
24584cca89 Disable labels for settings as well
Makes the settings UI easier to read.
2017-02-21 11:58:03 +01:00
Samuel Mannehed
fb49f91b00 Allow local cursor to be changed while connected 2017-02-19 01:53:41 +01:00