summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* remote-viewer: allow username in ovirt URIsJonathon Jongsma2014-08-182-5/+25
| | | | | | | | | | | | When the user launches remote-viewer with an ovirt URI of the form ovirt://user@host/vmname Pre-populate the authentication dialog with the specified username. We don't support specifying the password on the commandline, since that is a potential security risk. rhbz#1061826
* Don't use fallback ca-file when launching vv-fileJonathon Jongsma2014-08-151-1/+4
| | | | | | | | | When launching from a vv-file, we want to use the ca specified in the vv file and not load additional certs from the fallback ca-file. This ensures that the ca-file property of the spice session is unset when loading a ca from a vv-file. Resolves: rhbz#1127762
* Write vm name to config file as commentJonathon Jongsma2014-08-071-0/+14
|
* Change per-guest fullscreen config formatJonathon Jongsma2014-08-072-36/+99
| | | | | | | | | | | use <display>:<monitor>;<display>:<monitor> instead of simply implying the display from the array index (e.g. <monitor>;<monitor>). This allows you to set up sparse guest displays (e.g. display 1 + 3). For example, to configure display 1 to be fullscreen on monitor 2 and display 2 to be fullscreen on monitor 3: monitor-mapping=1:2;2:3
* Add a dialog showing details of the current guestJonathon Jongsma2014-08-078-4/+219
| | | | | | This allows the user to obtain the GUID and vm name of the currently-connected guest. Obviously, this only works with spice. In the future, it will allow them to set guest-specific configuration options (using a GUID as a key)
* Fix warning when going in/out of fullscreenChristophe Fergeau2014-08-041-0/+1
| | | | | | | Going to fullscreen, and then exiting causes these messages to show up on the console: (remote-viewer:14481): GLib-CRITICAL **: Source ID 784 was not found when attempting to remove it
* Remove unused RemoteViewerPrivate membersChristophe Fergeau2014-08-041-2/+0
|
* Remove incorrect G_GNUC_UNUSED from remote_viewer_window_addedChristophe Fergeau2014-08-041-1/+1
| | | | The 'app' parameter is used in the function.
* Remove unused VirtViewerNotebook::disposeChristophe Fergeau2014-08-041-7/+0
| | | | | The vfunc implementation is only chaining to its parent, removing it will achieve the same result.
* Chain up to parent's dispose at the end of VirtViewerWindow::disposeChristophe Fergeau2014-08-041-2/+2
| | | | | | glib documentation says this should be the last thing done in the dispose() call, which makes sense as this could invalidate still-needed data in the parent object.
* virt-viewer.xml: remove zoom-{in,out} acceleratorsMarc-André Lureau2014-07-221-2/+0
| | | | | The XML menu accelerators conflict with accelerator set in the code and prevent using them. This is a regression from d29fc63d.
* Only filter virt-viewer debug messagesMarc-André Lureau2014-07-211-1/+1
| | | | | | Filter only our own debug messages. https://bugzilla.redhat.com/show_bug.cgi?id=1118365
* Always set ask-quit settingMarc-André Lureau2014-07-211-3/+2
| | | | | | Avoid creating empty settings files, always set the ask-quit key. https://bugzilla.redhat.com/show_bug.cgi?id=1006737
* spice: avoid crash if connection failed without errorMarc-André Lureau2014-07-211-1/+1
| | | | spice_channel_get_error() is not guarantee to return a GError.
* Make ctrl-[+-] zoom in/out in fullscreenMarc-André Lureau2014-07-084-0/+12
| | | | | | | Make ctrl-[+-] zoom in/out in fullscreen with mouse over the control bar. https://bugzilla.redhat.com/show_bug.cgi?id=987549
* app: report disconnection error detailsMarc-André Lureau2014-07-085-10/+13
| | | | | | It may be useful to provide more detailed reason for disconnection. https://bugzilla.redhat.com/show_bug.cgi?id=1115986
* app: add virt_viewer_app_make_dialog()Marc-André Lureau2014-07-081-10/+27
| | | | | Add a function to create an application dialog. In the following commit, we will add more details for connection failures.
* Use GOptionGroup for VirtViewerApp optionsJonathon Jongsma2014-07-024-8/+15
| | | | | | | | Encapsulate things a bit better by adding virt_viewer_app_get_option_group() which provides a GOptionGroup rather than exposing an array of options. This option is then set as the main option group, and additional options can be added by subclasses, so the effect to the user should be equivalent.
* Set help output summary correctlyJonathon Jongsma2014-07-012-2/+4
| | | | | | Use g_option_context_set_summary() to provide a brief description of the executable instead of tacking the summary onto the end of the commandline.
* remote-viewer: mention vv-file in help outputJonathon Jongsma2014-07-011-1/+1
| | | | | | | The man page already has a description of the vv-file format, but the --help output didn't mention it how to use it. References: rhbz#970825
* Don't use C99 for loopsChristophe Fergeau2014-06-261-2/+3
| | | | | | | | Declaring a local variable as part as a for loop such as 'for (unsigned int i; i < N; i++)' is a C99 specific feature. Running configure with --enable-compile-warnings=minimal does not add -std=c99 to the compile flags, so it's better if the codebase does not require C99 support from the compiler.
* rhbz#1111514: Fix un-shrinkable displays on windows guestsJonathon Jongsma2014-06-231-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 6edde5786 introduced a regression wrt shrinking windows on windows guests. This seems to be because resizing a display often causes the notebook widget to switch to the status page temporarily (often so quickly that it's not noticeable to the eye). This causes a quick 'unmap' and 'map' event sequence on the display widget. Apparently the timing of these events varies enough between linux and windows guests that it is only noticeable on windows gueststhe timing of these events varies enough between linux and windows guests that it is only noticeable on windows guests. The exact sequence that causes the bug appears to be as follows: 1 user resizes window smaller 2 display widget gets a new allocation, which causes it to send a display reconfiguration to the guest 3 client receives a new show-hint for the display which causes it to switch temporarily to the 'status' notebook page 4 display widget gets unmapped 5 Client receives another new show-hint, which causes the display widget to get re- mapped, which causes client to send a display reconfiguration to the guest (using the old size) 6 client receives new (smaller, from step 2) display size and temporarily changes to the new size 7 client receives new (larger, from step 5) display size and changes back to original size. To fix the issue, we only explicitly request a resize in response to the very first map event, and for any subsequent map events, we simply call _make_resizable() as before.
* Fix a floating display warningMarc-André Lureau2014-06-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | You can reproduce the error by starting the client in kiosk and shuting down the guest. #0 0x000000317e432915 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 #1 0x000000317e4340f5 in abort () at abort.c:92 #2 0x000000317fc4a98a in g_logv (log_domain=0x318730e657 "Gtk", log_level=<value optimized out>, format= 0x31873a50a8 "A floating object was finalized. This means that someone\ncalled g_object_unref() on an object that had only a floating\nreference; the initial floating reference is not owned by anyone\nand must be remo"..., args1=0x7fffffffd5f0) at gmessages.c:557 #3 0x000000317fc4aa23 in g_log (log_domain=<value optimized out>, log_level=<value optimized out>, format=<value optimized out>) at gmessages.c:577 #4 0x000000318717ba72 in ?? () from /usr/lib64/libgtk-x11-2.0.so.0 #5 0x0000000000426eb5 in virt_viewer_display_spice_finalize (obj=0x6fec20 [VirtViewerDisplaySpice]) at virt-viewer-display-spice.c:67 #6 0x0000003180c106a4 in g_object_unref (_object=0x6fec20) at gobject.c:2712 #7 0x0000000000425b5d in destroy_display (data=0x6fec20) at virt-viewer-session-spice.c:596 #8 0x000000317fc1667b in g_ptr_array_foreach (array=0x74a040, func=0x425ae7 <destroy_display>, user_data=0x0) at garray.c:1306 #9 0x000000317fc16e7b in g_ptr_array_free (farray=0x74a040, free_segment=1) at garray.c:938 #10 0x000000317fc2906a in g_data_set_internal (datalist=<value optimized out>, key_id=1297, data=0x0, destroy_func=0) at gdataset.c:351 #11 g_datalist_id_set_data_full (datalist=<value optimized out>, key_id=1297, data=0x0, destroy_func=0) at gdataset.c:598 #12 0x00000000004268d0 in virt_viewer_session_spice_channel_destroy (s=0x800000 [SpiceSession], channel=
* kiosk: remove invalid unrefMarc-André Lureau2014-06-161-1/+0
| | | | | | This unref doesn't seem to be related to any reference, although it was probably introduced in the first place to clear the floating ref, wrongly. See following commit for a working solution.
* util: fix glib_check_version() conditionMarc-André Lureau2014-06-121-1/+1
| | | | glib_check_version() returns NULL if version is higher or equal.
* Fix tiny window when resetting zoom factor in gtk2 buildJonathon Jongsma2014-06-111-1/+8
| | | | | | | | | | | | | | | rhbz#1104064 had a couple of symptoms. The first was fixed in 6edde57862ac30e74ce6412c93a2fa925ae4ea67. The second symptom is that displays could also become tiny when clicking 'View > Zoom > Normal Size'. This was because VirtViewerDisplay returned early from _display_set_zoom_level() if the zoom level was being set to the current zoom setting. However, the calling function (_window_set_zoom_level()) also tries to queue a resize event for itself after setting the zoom level on the display. If the display doesn't queue a resize event for itself, its size request will only be 50x50 during the window resize negotiation. This causes the display to become tiny and zoomed out. Queueing a resize on the display widget ensures that it will request the proper size during the next allocation.
* window: take zoom-level into account for display limitsMarc-André Lureau2014-06-111-4/+9
| | | | | | Fixes guest can not be resized to expected window size after zoom out. https://bugzilla.redhat.com/show_bug.cgi?id=1105528
* Fix tiny windows for secondary displays in gtk2 buildJonathon Jongsma2014-06-101-1/+1
| | | | | | | | | | | | | | | | | | When enabling a new display on linux guests, the new window would be tiny (50x50) and zoomed way out. This was caused by the fact that when the display widget received the 'map' event, it unconditionally cleared the 'dirty' flag, which meant that it would only request 50x50 size. This behavior was intended to fix a bug on the windows client which wprevented windows from resized smaller than the guest display resolution. Unfortunately, due to the timing of the 'map' and allocate events, the widget became very small. Instead of clearing the 'dirty' flag directly when a widget is mapped, we now queue a resize event, which will guarantee that the widget attains its desired size and will then clear its dirty flag (allowing it to be resized). Testing on windows indicates that this fix still solves the 'unshrinkable window' problem while also preventing the tiny secondary display bug. Resolves: rhbz#1104064
* util: get rid of ARRAY_CARDINALITYMarc-André Lureau2014-06-102-3/+1
|
* Use a custom log handler to silence debug messagesMarc-André Lureau2014-06-101-0/+14
| | | | | | | On RHEL6, with old glib, all g_log messages are printed. Filter the messages with a custom handler instead. https://bugzilla.redhat.com/show_bug.cgi?id=1107518
* kiosk: don't attempt to hide windows when disconnectingMarc-André Lureau2014-06-101-1/+3
| | | | | | | Get rid of the following warning: (virt-viewer:7262): virt-viewer-WARNING **: Can't hide windows in kiosk mode https://bugzilla.redhat.com/show_bug.cgi?id=1107518
* Replace DEBUG_LOG with g_debugMarc-André Lureau2014-06-1011-93/+92
| | | | https://bugzilla.redhat.com/show_bug.cgi?id=1107518
* Remove warning when removing displayMarc-André Lureau2014-06-101-1/+3
| | | | | | | | | | | Some display have no associated window (for ex, if it doesn't fit on client monitors). (remote-viewer:22275): remote-viewer-CRITICAL **: virt_viewer_window_set_display: assertion `VIRT_VIEWER_IS_WINDOW(self)' failed (remote-viewer:22275): remote-viewer-CRITICAL **: virt_viewer_app_remove_nth_window: assertion `win != NULL' failed https://bugzilla.redhat.com/show_bug.cgi?id=1107518
* Don't connect to localhost when using --directChristophe Fergeau2014-06-103-1/+10
| | | | | | | | | | | | | | | | | | Trying to connect to a remote virtual machine using virt-viewer -c qemu+ssh://example.com/system --direct $vm_name will currently fail with an error message saying it's not possible to localhost. This happens with VMs which listen on a wildcard address (eg '0.0.0.0'). This was introduced by commit 74b1b62 which changes the host to connect to to 'localhost' when trying to connect through ssh to a VM listening on a wildcard address. This is only valid when using a ssh tunnel, and should not be done with --direct. The fallback code which uses the hostname from the libvirt URI is what makes the most sense in this situation (wildcard listen address + --direct). This commit introduces a virt_viewer_app_get_direct() so that this can be implemented. Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1079211
* Fix 'title' leak in virt_viewer_file_fill_app()Christophe Fergeau2014-06-101-3/+5
| | | | virt_viewer_file_get_title() returns a newly allocated string.
* Set freed variables to NULL in remote_viewer_start()Jonathon Jongsma2014-06-031-0/+2
| | | | | | | Coverity warns that 'type' can sometimes be used or free after already having been freed. This can happen when open_recent_dialog is true and we jump back up to the retry_dialog label. To prevent this, make sure the freed variables are set to NULL after freeing.
* Improve remote-viewer connection dialogJonathon Jongsma2014-06-031-12/+75
| | | | Based on the new design for the 'connect to server' dialog from Nautilus.
* Fix race with metacity in fullscreenMarc-André Lureau2014-04-171-2/+9
| | | | | To avoid some races with metacity, the window should be placed as early as possible, before it is (re)allocated & mapped (rhbz#809546).
* Fix gtk2 buildJonathon Jongsma2014-04-083-14/+30
| | | | | | | Previous commit accidentally broke gtk2 build by using gtk_widget_get_preferred_size(). We can't simply use gtk_widget_size_request() for the gtk2 build since this will generally return 50x50 whenever we're not in the middle of a resize, so we need to add a compatibility function.
* Update user-visible copyright informationChristophe Fergeau2014-04-041-1/+1
| | | | | Years in copyright notices in the about dialog and man pages is at most 2012, let's set it to 2014
* Fix regression with enabling additional displaysJonathon Jongsma2014-03-271-16/+20
| | | | | | | | | | | | | | | | | Commit 8fa942 broke enabling of additional displays. We don't want to send down display re-configurations due to events that happen while setting up windows for enabled displays that we recieve from the server. However, by ignoring allocations on unmapped windows, we fail to send display configurations for new displays that a user is attempting to enable via the window menu. To discriminate between these two cases, we check whether the display is in the 'ready' state or not. - Unmapped displays with the 'ready' hint set can be assumed to be displays that are enabled on the server that we are attempting to create windows for on the client. In this case, we should *not* send a display configuration to the server - Unmapped displays with the 'ready' hint cleared can be assumed to be displays that are not yet enabled on the server that we are trying to enable in the client. In this case, we *should* send a display configuration to the server
* Fix building with older spice-gtkMartin Kletzander2014-03-141-4/+9
| | | | | | | | | | | | | | | | | | | Due to spice-gtk-0.23 missing SPICE_GTK_CHECK_VERSION macro, the condition: causes the following error: virt-viewer-session-spice.c: In function 'virt_viewer_session_spice_main_channel_event': virt-viewer-session-spice.c:525:64: error: missing binary operator before token "(" #if defined(SPICE_GTK_CHECK_VERSION) && SPICE_GTK_CHECK_VERSION(0, 23, 21) ^ Also one more warning is fixed in this patch: virt-viewer-session-spice.c:476:19: warning: unused variable 'error' [-Wunused-variable] const GError *error; ^ Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
* Don't show 'do you want to quit' dialog in kiosk modeChristophe Fergeau2014-03-141-5/+6
| | | | | | | | In some situation, (for example, guest without vdagent running), it's possible to pass key combinations to virt-viewer. When using alt+f4, this can cause the 'do you want to quit?' dialog to show while it's non-functional. This commit moves the check for kiosk mode to before we show this dialog.
* Fix broken 'release-cursor' accel when not specified in --hotkeysJonathon Jongsma2014-03-132-5/+11
| | | | | | | | | | | | | | | | | | | | | | When the --hotkeys option is given, all hotkeys that are not explicitly specified are disabled. The method used to disable hotkeys is to change the accel map entry to key=0, mods=0. However, when we decide whether to set a grab sequence on the spice dispay widget, we simply use the return value for gtk_accel_map_lookup_entry and assume that a TRUE value returned from this function means that the hotkey is enabled. In reality, this function will return TRUE for disabled hotkeys, but the 'key' variable will be set to key=0, mods=0. The result is that if I start virt-viewer like this: virt-viewer --hotkeys secure-attention=ctrl+alt+end ... and the guest that I'm attached to uses server mouse mode, it will be impossible to release the grab on the spice widget. Because we will explicitly disable the grab keys in the spice widget and handle the 'release-cursor' hotkey in virt-viewer, but the hotkey is an empty accel key. Instead of simply checking the return value of gtk_accel_map_lookup_entry, we have to inspect the return value for 'key' and check whether any keys are actually assigned.
* Don't create new windows at startup when kiosk mode is falseJonathon Jongsma2014-03-131-5/+5
| | | | | | virt_viewer_app_set_kiosk creates a new window at startup for each client monitor (regardless of whether the guest supports more than one display). This seems unnecessary. Only do this if kiosk mode is actually enabled.
* Remove special-case for getting window n=0Jonathon Jongsma2014-03-131-13/+9
| | | | | | virt_viewer_app_get_nth_window() will return the proper window when passed 0 for the 'nth' argument, so there's no need to avoid calling it in this case. It just complicates the code logic.
* Don't resize guest display on zoom changeJonathon Jongsma2014-03-131-1/+20
| | | | | | | | | | | | | | | | | | | | When the zoom level is changed, the virt-viewer window gets resized. But we don't want this to trigger a resize of the guest display. But occasionally rounding errors cause the guest display to be reconfigured when zooming out. To fix this, we first check whether the current size is the preferred size. If it is, we don't send down a resize command to the guest. In addition to preventing guest resizes in response to zooming, it also improves the behavior when the guest display resolution is changed from within the guest. Before this change, we'd have the following behavior: A. guest changes display to WxH B. client gets notified of change and resizes the window to WxH C. client responds to window resize by sending a new monitor config command to the guest With this change, the extra step C will be avoided because we're already at the preferred size. Resolves: rhbz#1004051
* Use a USB icon in the fullscreen toolbarMarc-André Lureau2014-03-131-1/+4
| | | | | | | | Replace the generic GTK_STOCK_PREFERENCES with a more appropriate USB icon. The icon was provided by Jakub Steiner <jsteiner@redhat.com> https://bugzilla.redhat.com/show_bug.cgi?id=804184
* Remove "Automatically resize" menuMarc-André Lureau2014-03-135-66/+2
| | | | | | | Remove "Automatically resize" menu item (always enabled for Spice display now) https://bugzilla.redhat.com/show_bug.cgi?id=1007649
* Silence a message about missing configuration fileMarc-André Lureau2014-03-131-2/+5
| | | | | | | Do not print a g_debug() error when the configuration file is missing, unless given the --debug option. https://bugzilla.redhat.com/show_bug.cgi?id=1006737