Commit Graph

1399 Commits

Author SHA1 Message Date
Pierre Ossman cd5a035d90 Make sure all buttons have a tooltip 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 65e3d7d6a6 Make control bar handle easier to hit on mobile 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 4d3aa0ef9d Add logo to control bar 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 8434cc81b3 Make status dialog independent of control bar 2016-09-23 14:39:21 +02:00
Pierre Ossman f7c725cecf Improve active button visual response 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
Pierre Ossman d616c9226c Merge control bar sections
There is no status information in the centre anymore, so merge
the left and right sections of the control bar.
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
Pierre Ossman c8d4402f58 Move touch text input out of control bar
It has nothing to do with the control bar, so hide it somewhere
more sensible.
2016-09-23 14:39:21 +02:00
Pierre Ossman 79fd3b1fcf Apply CSS style to input elements
Different browsers have wildly different defaults for input elements.
Try to get a consistent interface by applying our own style.
2016-09-23 14:39:21 +02:00
Pierre Ossman 24d8b311ca Bling up popups
Make the popups a bit more prominent by adding shadows and animations.
2016-09-23 14:39:21 +02:00
samhed b0c6d3c6aa Remove redundant modifier state variables 2016-09-23 14:39:17 +02:00
Pierre Ossman 8bf688265d Replace icons with SVG versions
Resolution independent for high DPI devices, and easier to modify
if we want to change something.
2016-09-23 14:22:19 +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 eeb395dc91 Remove unnecessary span:s
They were probably also incorrect to have around block elements
anyway.
2016-09-19 16:24:39 +02:00
samhed 286947cbe2 Fix name for panel CSS class 2016-09-19 16:24:39 +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
samhed 0f6af1e3ec Separate UI.start() in to sub-functions 2016-09-19 16:16:05 +02:00
samhed d7f790719a Add events to objects the modern way
The old way only allows a single event handler per event, so switch
over everything to the new model.
2016-09-19 15:58:21 +02:00
samhed bfa414e5e8 Remove unused event handlers
These do not work and the mechanism for releasing keyboard grab on
the settings panel needs more work.
2016-09-19 15:40:10 +02:00
samhed 17eb0fcf50 Trigger autoconnect at proper time
It needs to happen after everything is fully initialised.
2016-09-19 15:30:40 +02:00
samhed 2869308c80 Sort style sheet
Sort and group the entries in the style sheet the same way as in
the HTML document. Makes it easier to find things.
2016-09-19 15:30:40 +02:00
samhed 3911256cff Place related elements together
In order to clarify the HTML we group related panels together with
the corresponding buttons.
2016-09-19 15:27:21 +02:00
samhed 9fc0e4f6e3 Strict positioning of panels
The panels were never meant to be positioned relative their container,
so make sure they pop up exactly where we want in the viewport, no
matter where they are in the structure.
2016-09-19 15:21:24 +02:00
samhed 222f3fba08 Remove unused CSS 2016-09-19 15:21:24 +02:00
Pierre Ossman ecd49c159f Create separate style sheet for vnc_auto.html
The style sheet is intimately connected to the Javascript code and
HTML so trying to share it between both sets is not sensible.
2016-09-19 15:21:24 +02:00
Dmitry Sankevich 33e1462999 Fix TIGHT negotiation with zero sub-auth types
According to the RFB protocol, when in TIGHT auth negotation,
if the client receives a sub-auth count of zero, it should proceed
as if the `None` sub-auth type had already been selected (and not
send a message selecting that type).

Closes #564
2016-09-16 23:22:35 -04:00
Solly Ross f9a0404f51 Merge pull request #661 from kanaka/feature/realvnc5-version-number
Detect RealVNC's VNC 5.0 Protocol Version
2016-09-16 17:50:04 -04:00
Lars Ole Hurlen 49aa5b81c7 Detect RealVNC's RFB 5.0 Protocol Version
The RFB protocol specifies a max version of 3.8, but RealVNC likes to
increment their version when they add new features.  RealVNC 5.3 sends
"005.000" as the version string, since they've extended their
implementation upon RFB v3.8.  We can detect that, and just tell them we
only speak 3.8, instead of barfing on "005.000" as an invalid version.
2016-09-16 17:33:46 -04:00
Solly Ross 9dfbf44028 Merge pull request #603 from WardF/master
Added option for --ssl-only noVNC session to launch.sh
2016-09-16 17:16:43 -04:00
Solly Ross 386db8f54f Merge pull request #496 from kanaka/refactor/modularized
Enable noVNC to become Browserifiable
2016-09-16 16:16:09 -04:00
Solly Ross bd5340c7ee Move input-related files into core/input
This commit moves all the input-related files from `core/`
to `core/input/`, and renames a couple as relevant
(input.js --> input/devices.js, keyboard.js --> input/util.js).
2016-09-16 15:49:52 -04:00
Solly Ross b4ef49ea36 Remove unecessary event-related code from Util
The event-related wrapper functions in Util existed mainly for
backwards-compat.  However, all currently supported browsers
support the standard functions, so these wrappers are no longer needed.
2016-09-16 15:49:52 -04:00
Solly Ross e4fef7be2d Util shouldn't modify window object
This commits prevents Util from modifying the window object.

- `window.requestAnimFrame` was removed (no polyfill is needed anymore)
- the potential redefinition of `console.log` and friends was removed
  (all supported browsers have `console.xyz` defined anyway)
2016-09-16 15:49:52 -04:00