When a display is pinned to a certain monitor for fullscreen, it will be moved
there when going fullscreen. Currently we use gdk_screen_get_monitor_at_window
to determine which monitor we are on and get the size from that monitor.
But this is racy, sometimes the size_allocate function runs before the move
has finished and we get the size from the wrong monitor:
https://bugzilla.redhat.com/show_bug.cgi?id=918570
Since if the display is pinned to a certain monitor, the display will always
end up on that monitor we can avoid the race by simply using that monitors
size.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Rather then passing in a move boolean + coordinates to move the window
to for fullscreen mode, simply pass in the monitor, so that the underlying
objects can also use the monitors size to determine the display size.
Note: pass in -1 to use the monitor the window is currently on.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
The browser plugin code has been effectively unmaintained since
the day it was merged. There has always been a caveat that the
code has not been properly audited to ensure it is secure, and
being unmaintained doesn't give a warm secure feeling. These
days there are better solutions for the browser which are pure
HTML5 code, noVNC and SPICE-HTML5.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
The virt-viewer connection file can now have a version=0.5 field. If
the virt-viewer version opening the connection doesn't provide at
least that version, an error is raised with the version required.
This should also fix the send-key menu showing in the wrong position with a
gtk2 build, when the tooltray icon is clicked on the 2nd or higher monitor.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
GLib deprecated the GValueArray type without providing an ABI
compatible replacement. Thus we need to disable dreprecation
warnings
../../src/virt-viewer-auth.c: In function 'virt_viewer_auth_vnc_credentials':
../../src/virt-viewer-auth.c:112:9: error: 'g_value_array_get_nth' is deprecated (declared at /usr/include/glib-2.0/gobject/gvaluearray.h:65): Use 'g_array_index' instead [-Werror=deprecated-declarations]
Rather than trying to manually keep track of authors,
just auto-generate the list from GIT logs
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
In order to build the MSI, you will need msitools:
http://ftp.gnome.org/pub/GNOME/sources/msitools/
The MANUFACTURER environment variable is mandatory and should be set
to the manufacturer/author of the MSI build.
Add a configure argument to append build version details, similar to
what Daniel Berrange proposed in the "use finer package version in
mingw-virt-viewer" thread on the ML.
Unfortunately, I don't see yet how we could avoid the browser dialog
asking which application to open. On Firefox, each user has a
mimeTypes.rdf, but we can't really modify it..
Process messages while waiting for pi.hProcess.
Avoid the spice-x from hanging in WaitForInputIdle(), although the
client itself might not be ready, not even started...
https://bugzilla.redhat.com/show_bug.cgi?id=903190
Sometimes the guest may shortly disable and then re-enable a monitor while
in fullscreen mode, this happens for example when changing display resolution
through gnome-display-properties inside the guest. This causes the client
window-manager to remap the window, and this can cause it to end up
on a different monitor.
This patch fixes this by remembering the position the window is places at
when going fullcreen and moving it there again when its gets (re-)shown.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Based on bug report by Hans:
The code block for saving was below this check:
if (priv->session) {
virt_viewer_session_close(VIRT_VIEWER_SESSION(priv->session));
if (priv->connected) {
priv->quiting = TRUE;
return;
}
}
Which means it never executes when quiting virt-viewer while conneced, causing
the "Do not ask me again" checkbox settings to not be saved.
This stops monitor order from the guest from being re-arranged in multi-
monitor setups when switching between fullscreen and windowed mode.
Note this relies on spice-gtk's auto monitor alignment code, which currently
does not properly handle setups where there is more then 1 row of monitors,
ie 2x1 - 5x1 will work fine, but 2x2 will not.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Now that we pass the real monitor coordinates, tell spice-gtk to use them,
rather then to use the passed coordinates as input for its automatic monitor
alignment. This fixes ie monitors in a 2x2 grid, showing up as a 4x1
configuration in the guest.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
The g_message() and g_warning functions expect printf style of
arguments. That is, whenever we want to print a string, it has
to be preceded with "%s" format.
When remote-viewer is compiled without spice-gtk support, spice-session.h
will not get included in remote-viewer.c, causing these warnings:
remote-viewer.c: In function 'remote_viewer_start':
remote-viewer.c:693:9: warning: implicit declaration of function
'virt_viewer_session_set_file' [-Wimplicit-function-declaration]
remote-viewer.c:693:9: warning: nested extern declaration of
'virt_viewer_session_set_file' [-Wnested-externs]
This makes it much easier to build an updated Windows installer binary
as this can now be done using mock/koji/... by using this .spec and
a virt-viewer tarball.
The nsis file we ship is generating an installer for a GTK+2 build
of virt-viewer, so it's inconsistent for the mingw-virt-viewer
spec file to generate a GTK+3 build. Switch to building a GTK+2
version of virt-viewer in mingw-virt-viewer.spec
When building on f18, the build fails because of unpackaged
debug files. Use the appropriate mingw macro to generate
the mingw debug packages.
The build failure is:
RPM build errors:
error: Installed (but unpackaged) file(s) found:
/usr/i686-w64-mingw32/sys-root/mingw/bin/debug-helper.exe.debug
/usr/i686-w64-mingw32/sys-root/mingw/bin/remote-viewer.exe.debug
/usr/i686-w64-mingw32/sys-root/mingw/bin/virt-viewer.exe.debug
/usr/i686-w64-mingw32/sys-root/mingw/bin/windows-cmdline-wrapper.exe.debug
/usr/x86_64-w64-mingw32/sys-root/mingw/bin/debug-helper.exe.debug
/usr/x86_64-w64-mingw32/sys-root/mingw/bin/remote-viewer.exe.debug
/usr/x86_64-w64-mingw32/sys-root/mingw/bin/virt-viewer.exe.debug
/usr/x86_64-w64-mingw32/sys-root/mingw/bin/windows-cmdline-wrapper.exe.debug
Installed (but unpackaged) file(s) found:
/usr/i686-w64-mingw32/sys-root/mingw/bin/debug-helper.exe.debug
/usr/i686-w64-mingw32/sys-root/mingw/bin/remote-viewer.exe.debug
/usr/i686-w64-mingw32/sys-root/mingw/bin/virt-viewer.exe.debug
/usr/i686-w64-mingw32/sys-root/mingw/bin/windows-cmdline-wrapper.exe.debug
/usr/x86_64-w64-mingw32/sys-root/mingw/bin/debug-helper.exe.debug
/usr/x86_64-w64-mingw32/sys-root/mingw/bin/remote-viewer.exe.debug
/usr/x86_64-w64-mingw32/sys-root/mingw/bin/virt-viewer.exe.debug
/usr/x86_64-w64-mingw32/sys-root/mingw/bin/windows-cmdline-wrapper.exe.debug