summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Avoid extra zoom-level property notificationsJonathon Jongsma2013-10-181-0/+4
| | | | | 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
* Don't disable fullscreen if kiosk mode is offJonathon Jongsma2013-10-181-1/+2
| | | | | | 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.
* Make 'Cancel' the default action in exit dialogChristophe Fergeau2013-10-161-0/+1
| | | | | | | | | 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.
* vnc: Clear all displays before creating dummy displayChristophe Fergeau2013-10-161-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* hotkeys: send modifiers before non-modifier keyMarc-André Lureau2013-09-261-3/+5
| | | | | | | | 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
* Add ability to use 'End' key in hotkeysJonathon Jongsma2013-09-101-1/+1
| | | | | | | | | | ctrl_key_to_gtk_key() capitalizes all key names not explicitly specified in the translation table. So 'end' becomes 'END', which is not a valid key name according to GTK+. Un-comment out the 'end' item from the table and set it to the properly capitalized key name ("End"). This allows users to specify e.g. "ctrl+alt+end" as a hotkey for sending the secure attention sequence.
* Add ability to send Secure attention sequence via keyboardJonathon Jongsma2013-09-103-20/+29
| | | | | | | | On Windows, the OS doesn't allow applications to handle Ctrl+Alt+Del, because it's handled by the OS at a much lower level. Although we have a menu item to send this sequence to the guest, it's not possible to send via the keyboard (in the windows client). So add an alternative key sequence (defaulting to Ctrl+Alt+End) to send this sequence to the guest.
* kiosk: explicit resize window to fullscreen sizeMarc-André Lureau2013-08-201-6/+1
| | | | | | | | | | | Allow to run the client in kiosk mode with window-manager-less environment. This was a conditional workaroud on win32. I am making it non-conditional to make fullscreen work on non-wm environment. Hence I don't see the need to refer explicitely to the bug workaround, since it is no longer something that should be removed, even when bgo 652049 is fixed.
* kiosk: don't open extra monitorsMarc-André Lureau2013-08-201-2/+11
| | | | | In kiosk mode, we don't want new monitors windows that wouldn't fit on the client monitors to come up.
* kiosk: warn and prevent if app want to quit or window to hideMarc-André Lureau2013-08-201-0/+5
| | | | | These condition shouldn't happen, they are here for debugging purposes (ie file a bug if it happens).
* kiosk: add --kiosk-quit optionMarc-André Lureau2013-08-201-1/+43
| | | | | | In kiosk mode, it's useful to keep the app alive, even if the remote session ended for example. Ie, we want to prevent the app from quiting itself, even if the remote end closed, lost network, or crashed etc.
* kiosk: teach a window to become kiosk-modeMarc-André Lureau2013-08-201-0/+25
| | | | Remove the toolbar, disable modifiers.
* kiosk: keep a reference on the toolbarMarc-André Lureau2013-08-201-1/+2
| | | | | We are going to change the container content dynamically, so we need a strong reference.
* kiosk: use less verbose window/display statusMarc-André Lureau2013-08-201-2/+7
| | | | | | | | | We want extra windows to remain blank after connection. For example, if the remote has a single monitor, and client has more, we don't want extra client monitors to say "Connected to graphic server" all the time on other monitors. Instead, we leave them empty/black in kiosk mode.
* kiosk: open a window on each client monitorMarc-André Lureau2013-08-201-0/+15
| | | | | | | Open a window on each client monitor in fullscreen. If the remote display has less monitors than the client, the extra client monitors will still be used to prevent the user from accessing the windows or desktop below, and also to show some status messages when necessary.
* kiosk: add app kiosk option, pass it down to windowMarc-André Lureau2013-08-203-0/+51
| | | | See man page update for details.
* Return existing window in app_window_new()Marc-André Lureau2013-08-201-0/+4
| | | | | | | | Since the returned window is weak, it can already returns existing windows (instead of creating one and failing to insert). This allows the following set_kiosk() function to create a main window before the app constructor is called.
* Define the min/max zoom levels, so all values are syncMarc-André Lureau2013-08-203-8/+11
|
* Try to share more GOption code between r-v and v-vMarc-André Lureau2013-08-208-94/+73
|
* remote-viewer: remove -d direct optionMarc-André Lureau2013-08-141-4/+0
| | | | | | | | remote-viewer currently doesn't provide automatic ssh tunnels, and even if it would, that would be explicit in the url given to remote-viewer (such as spice+ssh://...) https://bugzilla.redhat.com/show_bug.cgi?id=991261
* spice: show an error dialog if password is invalidMarc-André Lureau2013-08-081-0/+7
| | | | | | | Error message should show up when input the wrong password for spice guests as vnc guests. https://bugzilla.redhat.com/show_bug.cgi?id=990883
* Enable smartcard shortcuts when a software reader is presentChristophe Fergeau2013-07-311-6/+74
| | | | | | | At the moment, smartcard keyboard accelerators are always enabled when specified, even if no software smartcard reader is in use. This commit only enables the smartcard keyboard accelerators when a smartcard reader has been found. This fixes rhbz#866944
* Add VirtViewerSession::software-smartcard-reader propertyChristophe Fergeau2013-07-312-7/+84
| | | | | | | This property will be set to TRUE when a software smartcard reader is available, and FALSE otherwise. This property can only be TRUE when using SPICE and when smartcard support is enabled, and when both smartcard certificates and smartcard db directory are set.
* Fix two type cast problemsDaniel P. Berrange2013-07-311-2/+2
| | | | | | | | | The g_array_free() return value is 'char *' rather than 'void *' so must be explicitly cast to 'uint8 *'. The accelerator menu callback data is a GtkMenu rather GtkWidget Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* window: auto-add hot key combos to "Send key" menuMarc-André Lureau2013-07-301-0/+73
| | | | | | | Auto-add hotkey combos to "Send key" menu. Because they are captured by virt-viewer, there is currently no way to pass them to the guest. https://bugzilla.redhat.com/show_bug.cgi?id=846006
* window: use dynamically generated menuMarc-André Lureau2013-07-302-170/+31
| | | | | Remove the static Glade menu in favour of the one generated dynamically already used for the toolbar.
* window: use a menu item property for key combosMarc-André Lureau2013-07-301-41/+53
| | | | | | | Allow to add dynamically generated key combos later on. This also removes the extra combo lookup, which used to be problematic due to translations etc.
* compat: add a few GDK_Key definesMarc-André Lureau2013-07-301-0/+2
|
* file: add missing field commentMarc-André Lureau2013-07-301-0/+1
|
* Remove restore window location codeMarc-André Lureau2013-07-301-14/+0
| | | | | | | | | It turns out gdk on win32 already restores properly the window size/positon when leaving fullscreen. On non-win32, the WM should do the job. This solves the first window having too small size after leaving fullscreen: https://bugzilla.redhat.com/show_bug.cgi?id=978362
* win32: fix first window un-shrinkable at startMarc-André Lureau2013-07-301-8/+26
| | | | | | The fix 0dca975d64fcf0782ec7b3e3bd965f1bcf47c528 make the first window unshrinkable right after start. Wait until the window is mapped and remove the dirty-resizable state after (win32/gtk2).
* Make zoom-reset a global key bindingMarc-André Lureau2013-07-304-1/+6
|
* spice: if zoom-level is changed, resize guest, even in fullscreenMarc-André Lureau2013-07-302-0/+17
|
* spice: factor out spice resize code from gtk signal handlerMarc-André Lureau2013-07-301-4/+14
| | | | | This will allow that part of the code to be called with a different resize-guest setting.
* Hide extra monitors that don't fit in auto-confMarc-André Lureau2013-07-301-1/+4
| | | | | | | | | | Virt-viewer sometimes opens one too many windows if the guest is configured with more monitors than the client (the spice monitor configuration request and the current config aren't related, so there is some race). Instead, let's hide extra monitors that wouldn't fit in auto-conf. https://bugzilla.redhat.com/show_bug.cgi?id=985898
* Realize the display when it's added to the windowMarc-André Lureau2013-07-301-0/+1
| | | | | Make sure the widget get some dimensions, so if the display is enabled before it is actually shown, it will have non-zero size
* Initialize fullscreen_monitor to invalid valueMarc-André Lureau2013-07-301-0/+1
| | | | This makes it easier to debug when a window has no associated monitor.
* Disable auto-conf when user toggle displayMarc-André Lureau2013-07-301-0/+2
| | | | Let's get out of auto-conf mode whenever user tricks display visibility.
* Remove dead functionMarc-André Lureau2013-07-301-7/+0
|
* Unregister events and callbacks on disposeJán Tomko2013-07-291-12/+19
| | | | | | Without these libvirtd reports an error on virt-viewer shutdown: virNetSocketReadWire:1377 : End of file while reading data: Input/output error
* virt-viewer: Allow TLS-only SPICE connectionsChristophe Fergeau2013-07-111-12/+12
| | | | | | | | | | | | | | | | | | | | | When trying to connect to a VM which uses SPICE with only a tls port set: <graphics type='spice' tlsPort='-1' autoport='no' listen='0' keymap='en-us'> <listen type='address' address='0'/> </graphics> the connection will fail with "Cannot determine the graphic address for the guest spice" virt_viewer_extract_connect_info() indeed assumes that if no non-TLS port is set, then this means we are trying to connect through an already open socket, and otherwise the connection fails. The presence of a TLS port is only checked when a non-TLS port is set. This commit reworks that logic to start by extracting both the non-TLS and TLS ports (only when using SPICE for the latter), and by only trying to parse the socket to use if none of these 2 ports is set This fixes rhbz#982840
* vnc: implement release_cursor()Marc-André Lureau2013-07-081-0/+9
| | | | | Error reported in: https://bugzilla.redhat.com/show_bug.cgi?id=904094
* app: always use maybe_quit()Marc-André Lureau2013-07-083-3/+2
| | | | | | | Now that closing a window is like quiting, there is no reason to ask or skip the confirm dialog depending on how you quit (menu/toolbar/window). https://bugzilla.redhat.com/show_bug.cgi?id=905684
* usbredir: Don't depend on channel orderingHans de Goede2013-07-064-27/+63
| | | | | | | | | | | | | Before this patch-set virt-viewer was calling spice_session_has_channel_type( session, SPICE_CHANNEL_USBREDIR) from the session-initialized signal handler, So as soon as the display channel gets added to the session, the check was done. This causes the check to return FALSE for usbredir capable vms if the usbredir channel(s) get added to the session after the display channed. This patch refactors things to not depend on channel creation order. Signed-off-by: Hans de Goede <hdegoede@redhat.com>
* Use display fullscreen state instead of app stateMarc-André Lureau2013-07-051-6/+6
| | | | | | | | This is a recent regression introduced by independant fullscreen windows support, which reopened the bug "Resolution higher than native could not be set in fullscreen" https://bugzilla.redhat.com/show_bug.cgi?id=864929
* window: set display fullscreen stateMarc-André Lureau2013-07-051-2/+7
|
* display: add fullscreen propertyMarc-André Lureau2013-07-052-0/+33
| | | | | Now that fullscreen state is no longer global to application, we need to have the current state per display
* Remove debugging leftoverMarc-André Lureau2013-07-051-1/+0
|
* Use -H instead of -h for the short --hotkeysChristophe Fergeau2013-07-032-2/+2
| | | | | | -h conflicts with the short version of --help. Fixes rhbz#980846
* Fix build --without-spice-gtkMarc-André Lureau2013-06-281-29/+27
|