Samuel Mannehed
b18ef8162e
Allow scroll bars on Safari and IE
...
The previous problems were because we were scrolling the wrong element,
so we can enable this feature now.
2017-02-16 16:07:40 +01:00
Samuel Mannehed
280676c7e9
Properly encapsulate the scale in Display
...
Other parts of the code shouldn't have to care about this. Let Display
convert between canvas coordinates and framebuffer coordinates.
2017-02-16 14:00:39 +01:00
Samuel Mannehed
bd7d89e7cc
Fix resize on Chrome
...
Chrome sucks at calculating the size and gets confused due to the
scrollbars. Hide the scroll bars while resizing.
2017-02-10 16:39:18 +01:00
Pierre Ossman
86d15a4929
Use setCapture() polyfill everywhere
...
This makes sure we get consistent behaviour across all browsers.
2017-02-09 15:51:22 +01:00
Pierre Ossman
b345859ed6
More aggressive retaining of focus
...
Try to keep the virtual keyboard up even more. Only release focus
when it is absolutely necessary.
2017-02-09 14:20:37 +01:00
Pierre Ossman
84b05d24b0
Allow submitting the password from the input field
2017-02-03 13:19:15 +01:00
Pierre Ossman
648c83984c
Scroll correct element
...
The element we want scrolling around is noVNC_screen, not the entire
window. This also allows us to compute the screen size without
fiddling the scrollbars on and off.
2017-02-03 13:17:43 +01:00
Samuel Mannehed
623b1b7d96
Allow resize setting to be changed while connected
...
There is no reason to why this shouldn't be possible.
2017-01-27 16:22:15 +01:00
Samuel Mannehed
59387b34ea
Separate init functions from event handling setup
...
Adds a new section for all functions that add event handlers.
2017-01-27 16:20:53 +01:00
Samuel Mannehed
3fdc69ceda
Rename function for adding resize handlers
...
Moves the one handler for the status out of the function as well. It
didn't fit in with the function's old name either.
2017-01-27 16:20:53 +01:00
Samuel Mannehed
b3d91b78e1
Rename and move init function for fullscreen
2017-01-27 16:20:53 +01:00
Samuel Mannehed
dceda58642
Save settings immediately
...
Retire the old settingsApply. This also allows UI logic to check the
state of things using the settings instead of having to look at the
values of HTML elements (we couldn't be sure if the changes were
applied yet or not).
2017-01-27 16:20:33 +01:00
Samuel Mannehed
0b09e9cb6f
Remove unused toggleConnectPanel function
2017-01-24 14:37:14 +01:00
Samuel Mannehed
aa90547519
Add UI wrapper for Webutil.init_logging
2017-01-24 14:36:19 +01:00
Pierre Ossman
394ad22be9
Merge branch 'add-reconnect' of https://github.com/fd0/noVNC
2017-01-23 13:47:57 +01:00
Alexander Neumann
044d54ed62
Add reconnect option
...
Add an option to automatically reconnect after a delay when the
connection is closed.
Closes #746
2017-01-23 11:42:41 +01:00
Pierre Ossman
413ea87741
Fix global error handler
...
It stopped working when we switched to textContent as it relies
on being able to add new HTML elements. Do things properly by
adding new elements via createElement().
2017-01-18 15:59:31 +01:00
Solly Ross
6048299a13
Use textContent instead of innerHTML
...
Previously, setting `innerHTML` was used to display the statuses. These
could include content communicated from the remote VNC server, allowing
the remove VNC server to inject HTML into the noVNC page.
This commit switches all uses of `innerHTML` to use `textContent`, which
is not vulnerable to the HTML injection.
2017-01-12 14:47:36 -05:00
Pierre Ossman
b3c932c386
Make connect button more prominent
...
It's generally the only thing the user needs to click on, so make
sure it clearly stands out.
2017-01-04 15:05:58 +01:00
Pierre Ossman
512d3605ad
Remove connect dialog
...
It only contained a password field, which might not be needed, and
is handled by a separate dialog if it is.
2017-01-04 15:05:01 +01:00
Pierre Ossman
575f69832d
Group WebSocket settings together
...
It was easy to confuse them as being VNC settings, so keep them all
under one group.
2017-01-04 15:05:01 +01:00
Pierre Ossman
340d9d66cc
Remove alternative style sheets
...
Anyone with basic knowledge of CSS will easily figure out how to
customise the appearance of the UI, so remove the burden of having
to maintain these extra style sheets.
2017-01-04 15:05:01 +01:00
Pierre Ossman
58fc267b2b
Remove unused token setting
2017-01-04 15:05:01 +01:00
Samuel Mannehed
c01b2f0259
Merge pull request #699 from CendioOssman/double
...
Display double buffering
2016-12-13 12:42:22 +01:00
Pierre Ossman
adf345fdc4
Clean up viewport handling
...
Make sure the viewport is properly updated when necessary, on respects
given restrictions.
2016-12-09 09:20:50 +01:00
Pierre Ossman
3f781f2aa3
Remove max dimension handling
...
The viewport handling is now a lot clearer, so simply limit the size
of the viewport in the caller rather than having this extra layer
of checks.
2016-12-09 09:20:50 +01:00
Pierre Ossman
18d21e3621
Update all state on session size change
2016-12-09 09:20:50 +01:00
Samuel Mannehed
a8cc32d8b9
Merge pull request #725 from CendioOssman/rightbar
...
Allow control bar to be moved to the right side
2016-11-29 13:23:02 +01:00
Samuel Mannehed
d062074b5a
Clear UI.connected state variable right away
...
Keeping it set for the disconnecting state was causing an issue where
the controlbar could be hidden without any way to open it, when a
session disconnects too quickly.
2016-11-28 12:36:29 +01:00
Samuel Mannehed
d8ff7c9ed6
Further fixes for fallback error handler
...
Layout improvements as well as an check for ErrorEvent.error as it is
not standardized.
2016-11-28 12:33:42 +01:00
Samuel Mannehed
38d8cfdf83
Fix fallback error handling
...
Start using the correct API for window.addEventListener('error',..).
Unlike when using onerror, the handler function gets an event.
2016-11-28 10:02:13 +01:00
Pierre Ossman
cf348b7892
Remember control bar position
2016-11-26 15:26:28 +01:00
Pierre Ossman
8ee432f1db
Allow control bar to be moved to the right side
2016-11-26 15:13:33 +01:00
Pierre Ossman
de315d6216
Touching the handle should keep the control bar visible
...
Calling stopPropagation() was causing the normal event listeners
to never get the proper events.
2016-11-24 17:03:47 +01:00
Samuel Mannehed
f5bf2d84ef
Merge pull request #718 from ossman/po
...
Use gettext .po files, and translate everything
2016-11-22 21:02:13 +01:00
Samuel Mannehed
1983baf5bf
Fix link tagname
2016-11-21 13:43:02 +01:00
Pierre Ossman
edffd9e2f8
Also translate HTML elements
2016-11-19 13:23:00 +01:00
Pierre Ossman
3cdc603aa4
Use gettext .po files for translations
...
This allows the same workflow as most other projects for translations.
2016-11-17 20:42:08 +01:00
Pierre Ossman
45729def6d
Restore translations for some strings
...
We lost the translation calls for a couple of strings in one of
the clenaups.
2016-11-17 19:58:10 +01:00
Pierre Ossman
f28e248d3f
Use _() as shorthand for translations
...
Used commonly when gettext is used for translations. Avoids cluttering
the code.
2016-11-17 19:58:10 +01:00
Samuel Mannehed
d24de750b1
Add fallback handling for uncought errors
2016-11-10 14:33:23 +01:00
Samuel Mannehed
b85a13de69
Merge pull request #689 from ossman/keysym
...
Don't send Unicode as keysym
2016-11-10 09:36:43 +01:00
Samuel Mannehed
f3d25df048
Merge pull request #711 from CendioOssman/spinners
...
Blocking transition screen when connecting/disconnecting
2016-11-10 08:47:23 +01:00
Pierre Ossman
8d710e8b18
Blocking transition screen when connecting/disconnecting
2016-11-08 14:54:48 +01:00
Samuel Mannehed
37ebc5c14e
Merge pull request #697 from CendioOssman/keyboard
...
Better method to keep focus on virtual keyboard
2016-11-08 12:28:23 +01:00
Samuel Mannehed
fdb02f8570
Always translate literals instead of variables
...
Makes it much easier to find what needs to be translated.
2016-10-28 15:41:08 +02:00
Samuel Mannehed
91e41150f0
Don't translate unexpected errors
2016-10-28 15:41:00 +02:00
Samuel Mannehed
a93cda3a36
Move app-specific location of language files
...
The core directory should only contain core API code that isn't
specific to an application.
2016-10-28 14:30:14 +02:00
Loek Janssen
5af39a878a
Added localization to statusbar
2016-10-28 12:40:28 +02:00
Samuel Mannehed
2e5cae1b23
Update comment for screenSize()
...
The explanation was outdated.
2016-10-24 14:26:53 +02:00
Samuel Mannehed
1a15f22905
Remove unnecessary anonymous function
...
addEventListener can handle multiple assigned events, no need for a
wrapping function.
2016-10-24 14:08:53 +02:00
Samuel Mannehed
4770b0c311
Typo fix for last commit
...
Commit 7d20158b4b
contained a typo
2016-10-24 13:59:35 +02:00
Samuel Mannehed
7d20158b4b
Add missing log output for UI-specific errors
...
Some UI errors and one warning didn't write to the log. We want all
errors to be logged.
2016-10-24 13:36:05 +02:00
Samuel Mannehed
daca5b1727
Reformat lines to avoid line-breaks
2016-10-24 13:35:06 +02:00
Pierre Ossman
ffcadf9507
Better method to keep focus on virtual keyboard
...
This prevents the focus being lost rather than trying to restore it
at various places.
2016-10-21 16:27:43 +02:00
Samuel Mannehed
ac33960368
Merge pull request #649 from kanaka/dontgrabinviewonly
...
Fix view only
2016-10-20 01:04:14 +02:00
Samuel Mannehed
5826ab6f6a
Merge pull request #650 from kanaka/touchdetect
...
New way of detecting touch
2016-10-20 00:18:32 +02:00
Samuel Mannehed
8473635a09
Fix typo that caused clipping by default on IE
...
Typo from commit a6357e8276
2016-10-19 15:33:06 +02:00
Samuel Mannehed
f75e4d3caa
Add safety check in code for moving the handle
...
An element that has 'display: none' has a height of zero, and the logic
for the handle assumed that this was never the case. This could cause
the handle to end up at the wrong coordinates.
2016-10-18 13:32:00 +02:00
Samuel Mannehed
59cd99bc38
Move the handle properly when page is scrolled
...
The coordinates used to calculate the position for the toolbar handle
wrongly took page-offset into account. Util.getPosition was being used
for this. Thus, when page was scrolled, this caused the handle to be
offset when it was being moved. Use getBoundingClientRect instead.
2016-10-18 13:26:17 +02:00
Pierre Ossman
0b96eddf56
Don't send Unicode to RFB.sendKey()
...
The argument must be a Keysym, not a Unicode codepoint.
2016-10-15 14:58:59 +02:00
samhed
bea2b3fdfc
New way of detecting touch
...
Moves detection to Util and fixes so that touch is properly detected on
MS Surface and touch emulation in Chrome.
2016-10-14 02:41:06 +02:00
Samuel Mannehed
eef91bf9e3
Hide input related buttons in view only
2016-10-14 01:46:55 +02:00
Samuel Mannehed
ceb847b0e3
Don't modify mouse or keyboard in view_only mode
...
The UI previously didn't respect view_only in a number of cases.
2016-10-14 01:46:55 +02:00
Samuel Mannehed
301dc0e20b
Add logging when creation of RFB fails
2016-10-14 01:46:55 +02:00
Samuel Mannehed
7ae53db9cd
Don't request a new desktop size in view_only
2016-10-14 01:46:55 +02:00
Samuel Mannehed
da346c3b21
Remove redeclaration of a variable
2016-10-13 14:57:37 +02:00
Samuel Mannehed
00df30999b
Merge pull request #651 from kanaka/separatestates
...
Separate visual state from protocol state
2016-10-01 10:20:01 +02:00
Solly Ross
ca99791caa
Merge pull request #665 from CendioOssman/bell
...
Support RFB bell
2016-09-30 19:37:09 -04:00
Samuel Mannehed
4102b71c33
Keep the connect panel when missing host or port
2016-10-01 01:34:31 +02:00
Samuel Mannehed
74a4a2b468
Do not timeout error messages
2016-10-01 01:34:31 +02:00
Samuel Mannehed
7520ba52d8
Don't close the control bar when disconnected
...
If you were very quick to disconnect, you could end up in a state
where the toolbar was hidden.
2016-10-01 01:34:31 +02:00
Samuel Mannehed
3bb12056b1
Remove unnecessary substates of disconnected
...
The states 'loaded', 'failed' and 'fatal' were all variations of the
'disconnected' state. Removing these states allows us to get rid of
many ugly workarounds and special cases. Error messages to the UI can
now instead be delivered via a new onDisconnected callback.
2016-10-01 01:34:25 +02:00
Samuel Mannehed
c2a4d3ef86
Improve the connection state names
...
Names such as 'disconnect' and 'disconnected' are inconsistent in the
way that one describes an action and the other a state. The state that
was called 'normal' didn't fit in with the others because the other
names describe a connection state. The new names are: 'disconnecting',
'connecting' and 'connected'
2016-10-01 01:30:02 +02:00
Samuel Mannehed
a7127fee73
Don't abuse state change function for messages
...
This doesn't even work anymore since we fixed it to ignore changes
to the current state. Add a separate callback for notifications
instead.
2016-10-01 01:29:44 +02:00
Samuel Mannehed
7d714b15f5
Remove special password state
...
We already have a callback mechanism for this, so let's use that.
Adds an optional parameter 'msg' to the callback.
Fixes vnc_auto.html (#646 ) which was broken after
4e0c36dda7
2016-10-01 00:02:47 +02:00
Samuel Mannehed
1c1cc1d0e9
Use single line if's for simple return criteria
2016-09-30 21:55:49 +02:00
Samuel Mannehed
4b30f9ce09
Clean up virtual keyboard handling
2016-09-23 17:45:25 +02:00
Pierre Ossman
ca25d2ae26
Move Ctrl+Alt+Del to extra keys menu
...
The extra keys menu is now present for all devices, so avoid clutter
by moving the Ctrl+Alt+Del button there as well.
2016-09-23 14:39:21 +02:00
Samuel Mannehed
3f93a385a2
Auto-close the toolbar on connect after a delay
2016-09-23 14:39:21 +02:00
Samuel Mannehed
04b399e27d
Allow moving the controlbar handle
...
This also adds emulation of Element.setCapture() as only Firefox
and Internet Explorer/Edge currently supports it.
2016-09-23 14:39:21 +02:00
Pierre Ossman
38323d4d92
Add handle to open and close the control bar
2016-09-23 14:39:21 +02:00
Pierre Ossman
728b5d9e1a
Make control bar transparent when idle
2016-09-23 14:39:21 +02:00
Pierre Ossman
fb7c3b3be2
Change control bar to a smaller left-side toolbar
2016-09-23 14:39:21 +02:00
Pierre Ossman
6244e383e4
Let CSS update UI for touch and connected state
...
Avoid a lot of JavaScript code that can easily be handed using
style sheets instead, specifically items that should only be shown
when on a touch device, or items that depend on the connected state.
2016-09-23 14:39:21 +02:00
Pierre Ossman
ebbec43a6b
Enable extra keys for all devices
...
Manual special keys can be useful on all devices, so stop restricting
it to just touch devices.
2016-09-23 14:39:21 +02:00
Samuel Mannehed
8a7ec6ea19
Add a separate dialog for the password prompt
...
The user might be queried for the password during the connect stage
if no password was previously provided. Add a separate dialog for
this rather than abusing the connect dialog.
2016-09-23 14:39:21 +02:00
Samuel Mannehed
8d7708c82e
Abstract status dialog CSS class handling
2016-09-23 14:39:21 +02:00
samhed
b0c6d3c6aa
Remove redundant modifier state variables
2016-09-23 14:39:17 +02:00
samhed
ca5c74ad5a
Show all status messages in a popup top bar
2016-09-23 14:22:16 +02:00
Pierre Ossman
63bf2ba578
Support RFB bell
...
The protocol handling was already there. What was missing was
hooking it up to a sound file in the user interface.
2016-09-22 11:15:42 +02:00
Pierre Ossman
ed8cbe4e7b
Clean up panel open/close API
2016-09-20 15:37:19 +02:00
Pierre Ossman
d9e8621436
Make "selected" an extra CSS class
...
Avoid duplicating stuff in the style sheet by making the "selected"
property an extra class, rather than a replacement for the base one.
2016-09-20 15:36:42 +02:00
samhed
a49d929846
Harmonise CSS names
...
Follow the same naming convention for all CSS ids and classes.
2016-09-20 15:36:38 +02:00
Pierre Ossman
e40978c7fc
Let CSS control what it means to be hidden/closed
...
This avoids hard-coding layout information in the JavaScript code.
It also opens up possibilities for more control in the CSS, e.g. for
animation.
2016-09-20 14:32:57 +02:00
Pierre Ossman
6cba147d4e
Simplify modifier button display
2016-09-19 16:27:55 +02:00
samhed
999f1d45db
Show/hide logo in updateVisualState()
...
We control the visibility of almost everything else in this function,
so move the logo handling there as well.
2016-09-19 16:26:23 +02:00
samhed
f9fff03719
Remove unused description
2016-09-19 16:24:39 +02:00
samhed
f0d9ab9698
Avoid ambigious optional arguments
...
Some functions weren't obvious what they would do if an argument was
omitted. Split them up in to separate functions in those cases to
make the API clearer.
2016-09-19 16:19:45 +02:00
Pierre Ossman
3e3eec28f3
Remove beforeunload handler
...
Support for this is spotty and it is getting more and more restricted
by the day. Give up on this approach.
2016-09-19 16:16:32 +02:00