| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
Currently the window titles for remote-view have 'remote-viewer'
appended them. This is based off the argv[0] name. We should be
setting the GLib application name though, so we can get a localized
'Remote Viewer' string in the titlebar
|
|
|
|
|
|
| |
Support vnc://[x:y:z:]:5901/ for raw IPv6 addresses in URIs,
and qemu+ssh://root@[x:y:x:]:22/ for raw IPv6 addresses in
libvirt URIs
|
|
|
|
|
| |
Use round() instead of integer truncation when scaling the window,
to avoid floating point precision problems on i386
|
|
|
|
|
|
| |
Enable automagic handling of spice:// URLs in firefox by
registering a desktop handler for remote-viewer with the
SPICE URI scheme
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
remote-viewer is currently trying to use
SpiceUsbDeviceManager::auto-connect to control whether USB devices
should be automatically connected or not. However, this property
is more or less an internal spice-gtk property which is toggled
by SpiceGtkSession when the SPICE widget gets/loses focus.
SpiceGtkSession has an "auto-usbredir" property which can be used
by applications to enable/disable automatic usb redirection through
SPICE. Since this property is helpfully bound to
VirtViewerSession::auto-usbredir, use this when the controller
is told to enable/disable USB redirection.
Without this change, automatic USB redirection will always get reenabled
as soon as there's a focus change since SpiceGtkSession::auto-usbredir
defaults to be enabled in spice-gtk.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When clicking the close button on a virt-viewer window with
a VNC session open, while the VNC session terminates, the
window does not go away.
The problem is that the virt_viewer_session_vnc_disconnected
method never gets invoked. The close button triggers a call
to virt_viewer_session_clear_displays which unrefs the
VirtViewerDisplayVnc instance. This in turn triggers a call
to gtk_container_destroy, which destroys all widgets it
contains, ie the VncDisplay * object.
With the VncDisplay object in its dispose phase, no signals
will ever be emitted, thus the 'vnc-disconnected' signal
never gets seen.
The design issue is that VirtViewerDisplayVnc is assuming
it owns the VncDisplay, whereas in fact the real owner is
the VirtViewerSessionVnc object.
The solution is to introduce a new virt_viewer_display_close
method which can be used to de-parent the widget before
VirtViewerDisplay is unref'd.
The VirtViewerSessionVnc object also needs to hold a full ref
on the VncDisplay object, not merely a floating reference
* virt-viewer-display-spice.c, virt-viewer-display.c,
virt-viewer-display.h: Add virt_viewer_display_close
* virt-viewer-display-vnc.c: Deparent VNC widget in
virt_viewer_display_close impl
* virt-viewer-session-vnc.c: Improve logging
* virt-viewer-session.c: Call virt_viewer_display_close
before unrefing display
* virt-viewer-window.c: Improve logging
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
|
| |
|
|
|
|
|
| |
Signed-off-by: Yonit Halperin <yhalperi@redhat.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
|
| |
|
|
|
|
|
| |
If the application can attach to its parent console, redirect
input/output. So that will work nicely with the command line wrapper.
|
|
|
|
| |
Add a small command line wrapper, to be able to call GUI/windows application from the console
|
|
|
|
|
|
|
| |
This has 2 advantages, and I can't figure any drawback:
- it fixes the issue of mnemonic hints being draw when pressing Alt
key (character underlined), even when they were disabled.
- it simplifies the code :)
|
| |
|
|
|
|
|
|
|
|
| |
This makefile is just fantastic, it forces you into good practices,
support various build targets (my windows builddir ignore the right
files etc..)
The more I use it, the more I like it.
|
|
|
|
| |
Add application icon and manifest
|
|
|
|
|
|
|
|
|
| |
The current code will attempt to dereference args if
--spice-controller, even if args is NULL.
Let's not accept any extra argument/uri on the command line if using
the controller. Beside, the conditionnal block looks better outside of
the if condition.
|
|
|
|
| |
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
| |
|
| |
|
|
|
|
|
|
| |
If the user doesn't provide URI, let's show a simple dialog to enter it.
Also save & list recently used URLs in that dialog.
|
|
|
|
|
| |
Although the doc says it is only deprecated since >2.32, it's actually
>2.31 according to glib git log.
|
|
|
|
|
|
|
| |
Lower warning message to debug level. There are various racy ways it
ends up calling show_display although the display is not yet
ready. This is not such a big problem, although it would be nice to
handle this case better
|
|
|
|
|
|
|
| |
The current code only inform of focus state when the listener is ready.
spice-gtk controller code lacks signal when a client connects, but a
client will set the title when connected and send a notify signal.
Use this event to notify of application focus state.
|
| |
|
|
|
|
| |
The RemoveViewer object will have its own ref.
|
|
|
|
|
|
|
|
|
| |
Do not disconnect session when switching host (non-seamless migration
method).
Also, handle a bit better main channel events and do not disconnect on
unknown events, however raise unhandled event message to warning
level.
|
| |
|
|
|
|
|
| |
If the accels are enabled (with Spice controller custom bindings),
show the configured keybinding in the title bar.
|
|
|
|
|
|
|
| |
- auto-conf is an optionnal argument to --fullscreen:
it will set the guest display configuration to match the client
display configuration, by sending the client monitors size and
position to capable guests.
|
| |
|
|
|
|
| |
'remote-viewer foobar' shouldn't crash
|
|
|
|
| |
GThread is needed by spice-gtk
|
|
|
|
|
|
| |
The current code notifies the controller when the remote-viewer
application starts, but not when the client is connected. We should do
the later instead
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Trying to resize not visible windows leads to the following being printed
to the console:
Gdk-CRITICAL **: IA__gdk_window_get_origin: assertion `GDK_IS_WINDOW (window)'
This gets triggered by the gdk_screen_get_monitor_geometry() call in
virt_viewer_window_resize()
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
|
|
| |
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
|
|
| |
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
|
|
|
|
|
| |
priv->window gets set on init and never unset, so there is no need to check
for it.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Note this button only gets shown on USB redir capable virtual machines.
Changes in v2:
-Use gtk_widget_set_visible for simpler code
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
|
|
|
|
|
| |
When quiting from the fullscreen menu call virt_viewer_app_quit instead of
gtk_main_quit so that the session gets properly disconnected before quiting.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Even though the previous patches in this series ensure that the session
gets properly finalized, we still need to wait for the disconnect signal,
as spice-glib uses co-routines which need some time to cleanly close the
connection / session.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before this patch session-spice would emit the disconnected signal as soon
as the main channel is closed, but other channels may still be open at
that time and raising the disconnected signal usally leads to the app class
calling gtk_main_quit, at which point the other channels never get properly
finalized (as there co-routines still hold a reference to them).
This is esp. bad for usbredir channels as these re-attach the kernel driver
for redirected devices when finalized. So exiting without properly finalizing
them leads to the formerly redirected devices not being usuable until the
driver is manually reloaded or the device is unplugged and re-plugged
(the kernel does not automatically re-bind kernel drivers when userspace
closes a usbfs node).
This patch fixes this by delaying the emitting of the disconnect signal
until the last channel has been destroyed.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
|
|
|
|
|
| |
With this patch combined with the previous patches in this series, the
VirtViewerSession (finally) gets properly finalized on exit.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before this patch there was a cyclic reference between VirtViewerSesion and
VirtViewerDisplay, since all VirtViewerDisplays are created / destroyed by
VirtViewerSession it is safe to assume that lifetime of VirtViewerSession >=
VirtViewerDisplay, so VirtViewerDisplay can take a borrowed reference
breaking the circle, and allowing proper cleanup on exit.
Note that there is no g_object_unref removed from virt-viewer-display, this
because there is no finalize / dispose and before this patch
VirtViewerDisplay never unref-ed the reference it hold to the session.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
Before this patch there was a cyclic reference between VirtViewerApp and
VirtViewerWindow, since all VirtViewerWindows are created / destroyed by
VirtViewerApp it is safe to assume that lifetime of VirtViewerApp >=
VirtViewerWindow, so VirtViewerWindow can take a borrowed reference
breaking the circle, and allowing proper cleanup on exit.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This means that:
1) There is no need to explictly set its title separately
2) It is unref-ed when we do g_hash_table_unref(priv->windows), so it
should not be unref-ed separately otherwise it is unref-ed twice!
Notice that 2 was never a problem because of circular references
between VirtViewerApp and VirtViewerWindow, but once the follow
up patch to this one breaks the circle 2 becomes an issue.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
|
|
| |
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
|
|
|
|
|
| |
These changes match the changes already made to the spice-gtk
usb device selection widget to match the spacing advised by the Gnome HIG.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|