hotkeys: send modifiers before non-modifier key

This fixes the "send menu" for hotkeys set with non-modifiers keys. The
current order of press events is wrong, as it sends first non-modifiers
keys, and in general ctrl+t will work, t+ctrl will not.

https://bugzilla.redhat.com/show_bug.cgi?id=846006
vnc: Clear all displays before creating dummy display

If VirtViewerSessionVnc::disconnected is called because of an
authentication failure, we get:

(remote-viewer:29588): gtk-vnc-DEBUG: vncdisplay.c Disconnected from VNC server

(remote-viewer:29588): Gtk-WARNING **: Attempting to add a widget with type
VncDisplay to a container of type VirtViewerDisplayVnc, but the widget is
already inside a container of type VirtViewerDisplayVnc, please use
gtk_widget_reparent()

 #0  0x0000003136e50499 in g_logv (log_domain=0x3f2e13e143 "Gtk",
     log_level=G_LOG_LEVEL_WARNING, format=<optimized out>,
     args=args@entry=0x7fffffffd210) at gmessages.c:989
 #1  0x0000003136e505ef in g_log (log_domain=<optimized out>, log_level=<optimized out>,
     format=<optimized out>) at gmessages.c:1025
 #2  0x00000000004230eb in virt_viewer_display_vnc_new (vnc=0x8a8250)
     at virt-viewer-display-vnc.c:169
 #3  0x0000000000422191 in virt_viewer_session_vnc_disconnected (vnc=0x8a8250,
     session=0x86bf00) at virt-viewer-session-vnc.c:113
 #4  0x00000031372104c7 in _g_closure_invoke_va (closure=closure@entry=0x8ad2b0,
     return_value=return_value@entry=0x0, instance=instance@entry=0x8a8250,
     args=args@entry=0x7fffffffd530, n_params=0, param_types=0x0) at gclosure.c:840
 #5  0x0000003137229749 in g_signal_emit_valist (instance=0x8a8250,
     signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7fffffffd530)
     at gsignal.c:3238
 #6  0x000000313722a3af in g_signal_emit (instance=<optimized out>,
     signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3386
 #7  0x00007ffff7dbeb5a in on_disconnected (conn=0x8b5aa0, opaque=0x8a8250)
     at vncdisplay.c:1563
 #8  0x00000031372104c7 in _g_closure_invoke_va (closure=closure@entry=0x7d55f0,
     return_value=return_value@entry=0x0, instance=instance@entry=0x8b5aa0,
     args=args@entry=0x7fffffffd820, n_params=0, param_types=0x0) at gclosure.c:840
 #9  0x0000003137229749 in g_signal_emit_valist (instance=0x8b5aa0,
     signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7fffffffd820)
     at gsignal.c:3238
 #10 0x000000313722a3af in g_signal_emit (instance=<optimized out>,
     signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3386
 #11 0x00007ffff7b97308 in do_vnc_connection_emit_main_context (opaque=0x7fffe3c91f40)
     at vncconnection.c:578
 #12 0x0000003136e49256 in g_main_dispatch (context=0x681840) at gmain.c:3065
 #13 g_main_context_dispatch (context=context@entry=0x681840) at gmain.c:3641
 #14 0x0000003136e495d8 in g_main_context_iterate (context=0x681840,
     block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
     at gmain.c:3712
 #15 0x0000003136e499ea in g_main_loop_run (loop=0x830430) at gmain.c:3906
 #16 0x0000003f2dfa8f75 in gtk_main () at gtkmain.c:1158
 #17 0x0000000000429bf3 in main (argc=1, argv=0x7fffffffdcd8) at remote-viewer-main.c:179

This commit calls virt_viewer_session_clear_displays() before creating a dummy VNC display with
virt_viewer_display_vnc_new(), which avoids this warning.
Make 'Cancel' the default action in exit dialog

In the 'Do you want to close the session dialog?', the default focus
is currently on the 'Do not ask me again' checkbox.
The purpose of this dialog is to make sure that the user does not
inadvertantly exit remote-viewer, this commit changes the default
action in this dialog to be 'cancel' rather than switching the
'Do not ask me again 'checkbox.
Don't disable fullscreen if kiosk mode is off

This conflicts with the --full-screen switch, because if kiosk mode is disabled,
it sets disables fullscreen mode, which overrides the earlier call to enable
fullscreen.
Avoid extra zoom-level property notifications

When setting a display's zoom level to the same level as the current setting,
return early so that we don't notify about a property change
VirtViewerDisplaySpice: use enum type for auto_resize

Instead of storing the auto_resize member as an integer, use the enum, it makes
it slightly easier for debugging. Also, explicitly initialize the value.
Don't freeze property notifications when adding new displays

Freezing property notifications prevents VirtViewerDisplaySpice from
synchronizing its fullscreen/auto-resize state with the base class until after
the notifications are thawed.  During the time that notifications were frozen,
an allocation happens. The action we take on an allocation event depends on the
current state of the auto_resize variable, so this can result in an unwanted
resize.
Set Spice display to fullscreen if owning window is pending fullscreen

When you call virt_viewer_window_enter_fullscreen() on a hidden window, it
didn't actually change its fullscreen state.  Instead, it sets up a map-event
handler to enter fullscreen after it is shown. When _set_display() is called on
a window that is pending fullscreen status, it initially sets the fullscreen
state of the display to FALSE, which can cause an unwanted resize to be sent
down to the guest. This patch changes the behavior to set its fullscreen state
to TRUE even before the window is shown.
Make 'Send' menu items with defined accels work in fullscreen
Fix typo in manpage

This fixes https://bugzilla.redhat.com/show_bug.cgi?id=823916
Fix 'quiting' typo in VirtViewerApp private member
Clean-up spaces before/after URI in connection dialog

When starting remote-viewer with no argument, a connection dialog
is shown. If the URI the user types in this dialog as trailing
or leading spaces, then connection will fail because remote-viewer
will keep them as if they were significant.
This commit makes sure we remove spaces at the beginning/end of
the URI before trying to use it.

This fixes https://bugzilla.redhat.com/show_bug.cgi?id=1024199
ovirt: Remove use of deprecated APIs

ovirt_proxy_fetch_vms/ovirt_proxy_lookup_vm have been deprecated
in govirt 0.3.0
ovirt: Honour oVirt command line options

libgovirt 0.3.0 and newer can be passed from the commandline a CA
certificate to use during SSL communications. This commit adds support
for this option to remote-viewer.
ovirt: Don't automatically download CA certificate

The CA certificate to use to authenticate the various hosts in
an oVirt instance can be fetched from https://ovirt.example.com/ca.crt.
However, the gio API we are using does not seem to be checking the
server-side certificate of ovirt.example.com before connecting to it,
which could lead to man-in-the-middle attacks. Now that the CA
certificate to use can be specified from the command line using
--ovirt-ca-file, we can remove this automatic fetching of the CA
certificate.
ovirt: Only set SPICE CA cert if it's non NULL

We currently reuse the oVirt CA cert for SPICE connection as well,
but it may not be set. When this happens, we don't want to try to use
it.