| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Related: rhbz#821795
The capabilities have been zeroed after channel reset, which have lead to
publish the wrong caps when both port and tls-port are given, and the
channels are secured (first attempt to connect the channel with "port"
has failed; the channel got reset, and then reconnected with "tls-port"
and bad caps). Specifically, the bug causes semi-seamless migration not
to work when part of the channels are secured.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The spice_audio_new() function is not correctly generated h2def.py
anymore because of the surrounding #ifdef and macros. Add it in
the manual.defs instead.
Avoid API breakage:
2012-05-10 01:56:48,884 (cli:83): Uncaught exception:
Traceback (most recent call last):
File /usr/share/virt-manager/virtManager/console.py, line 475, in
_channel_new_cb
self.audio = spice.Audio(self.spice_session)
TypeError: GObject.__init__() takes exactly 0 arguments (1 given)
https://bugzilla.redhat.com/show_bug.cgi?id=820335
|
|
|
|
|
|
|
|
|
| |
rhbz #815426
When playing a youtube video on Windows guest, the driver sometimes sends
images which contain a video frame, but also other parts of the
screen (e.g., the you tube process bar). In order to prevent glitches, we send these
images as part of the stream, using SPICE_MSG_DISPLAY_STREAM_DATA_SIZED.
|
|
|
|
|
|
| |
Do not depend on uninitialized "len" variable to set the query string.
https://bugzilla.redhat.com/show_bug.cgi?id=818169
|
|
|
|
|
|
| |
When switching from getenv to g_getenv, 'doms' declaration
wasn't changed from char * to const char *, which causes
a gcc warning.
|
|
|
|
|
|
|
|
| |
The default transfer mode is wrong for spice_display_get_grab_keys.
The array parameter for spice_grab_sequence_new needs explicit
annotation
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
|
| |
|
|
|
|
|
|
|
|
| |
With glib >= 2.31 no debug messages are ever printed out by
default, which makes the --spice-debug flag useless. This
fix explicitly turns on the appropriate log domain when
debug is requested. It takes care to preserve the users
own existing log domain requests
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The URI parsing was not correctly skipping over the path component
if a port number was specified using the traditional URI scheme,
eg
spice://somehost:5900/
would result in failed parse due to the trailing '/'
The URI parsing was also not considering that the authority
component is allowed to contain '[' and ']' around the hostname.
This is used when specifying raw IPv6 addresses to remove the
parsing ambiguity wrt ':'.
eg
spice://[::1]:5900/
Various stages of parsing also failed to report errors.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
|
|
|
|
|
|
| |
For windows (mingw32) ENOTSUP is not defined.
Related to 3bfadb8587f59a74d373e26385d348a105c2e425
|
|
|
|
|
| |
We might want to make it a property, but having an environemnt variable
is useful too, to override behaviour.
|
| |
|
|
|
|
|
|
|
|
|
| |
The callback for option handling should return TRUE otherwise the
option parser will think parsing failed. The current 'void' return
type meant it was non-deterministic whether --spice-debug actually
worked or not
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
|
|
|
|
|
|
| |
If we don't clear the glz dictionnary, this might lead to
corrupted/invalid dictionnary and invalid memory allocation due
unbounded increase of dictionnary size
|
|
|
|
| |
https://bugzilla.redhat.com/show_bug.cgi?id=802574
|
|
|
|
| |
Add explicit scroll event mask to make it work again.
|
|
|
|
|
|
|
|
|
| |
cursor_set() didn't un-hide correctly by setting "show_cursor" to
NULL.
The code is simplified a bit in server mode case, where the new cursor
will be invalidated and shown during cursor move only, instead of
twice (checked no regression with dual-head server mode)
|
|
|
|
|
|
|
|
| |
First notify about disconnection before resetting the channel data.
An audio recording task might expect the channel to be in a ready
state otherwise, for example.
https://bugzilla.redhat.com/show_bug.cgi?id=810247
|
|
|
|
|
|
|
|
| |
Instead of allocating unbounded memory and doing extra copy on the
stack, let's just improve our helper function to send messages in
various pieces.
See also: https://bugzilla.redhat.com/show_bug.cgi?id=809145
|
|
|
|
|
|
|
|
|
|
| |
People using autogen.sh are likely to be building from git, so may
get updates to vala files at any time. Checking for the presence of
controller.vala.stamp to decide whether vala should be enabled or not
is not very accurate since it doesn't reflect if a .vala file needs
to be regenerated or not.
It's better to always pass --enable-vala to configure, it's always
possible to disable it by using --disable-vala as an autogen.sh argument.
|
| |
|
|
|
|
|
| |
Since --enable-vala may or may not be passed to configure, seeing
the actual command line that was used is helpful.
|
|
|
|
| |
Reported and verified by Nicolas Prochazka
|
|
|
|
|
|
|
| |
Before this patch we were assuming that the GdkEventMotion value we receive
are always whole (integer) numbers, which is not the case with GTK-3.0.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
|
|
|
|
|
|
| |
Often (when not resized by the user) even though scaling is enabled, we are
not actually scaling. In this case it is not necessary to scale the
mouse coordinates, and sometimes it is even harmful.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
|
|
|
|
| |
rhbz #787449
Signed-off-by: Yonit Halperin <yhalperi@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
This fixes the pointer being "trapped" in the center of the screen in
server-side mouse mode. It also correctly inform the client that the
pointer/keyboard is no longer grabbed so it can adjust its UI state
accordingly (remote the "press ctrl+alt to ungrab" messages etc).
I can reproduce only with RHEVM22 host, and a RHEL6 guest, when
switching consoles.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the display channel is destroyed, we disconnect all signals
handlers, but we don't remove the reference on the primary surface
data, and that can lead to crashes in a later expose event, reusing
the canvas surface (ex, if scaling is disabled). Call
primary_destroy() when disconnecting the channel from the widget.
We now keep the primary surface during channel reset (right after
disconnect for example), so the primary surface can be eventually
recycled, and the widget still holds a valid reference until the
signal is received. The primary surface is ultimately destroyed during
finalize, or if the new primary surface size doesn't match.
Program received signal SIGSEGV, Segmentation fault.
__memmove_ssse3_back () at ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S:2130
2130 lddqu -68(%rsi), %xmm0
Missing separate debuginfos, use: debuginfo-install gtk2-engines-2.20.2-2.fc15.x86_64 libusb1-1.0.9-0.3.rc1.fc16.x86_64 p11-kit-0.6-1.fc16.x86_64
(gdb) bt
at ../sysdeps/x86_64/multiarch/memcpy-ssse3-back.S:2130
srclen=<optimized out>, srcinc=4096, destinc=68, height=<optimized out>,
half_order=0) at /usr/include/bits/string3.h:52
dest_bits_per_pixel=32, req_yoffset=<optimized out>, req_xoffset=0,
image=0x7fffffffb9a0, req=<optimized out>, dpy=0x64a630) at PutImage.c:821
req_height=<optimized out>, req_width=<optimized out>, y=<optimized out>,
x=0, req_yoffset=<optimized out>, req_xoffset=0, image=0x7fffffffb9a0,
gc=0xa817e0, d=33554452, dpy=0x64a630) at PutImage.c:870
req_xoffset=0, req_yoffset=<optimized out>, x=0, y=26, req_width=17,
req_height=20, dest_bits_per_pixel=32, dest_scanline_pad=32)
at PutImage.c:908
image=0x7fffffffb9a0, req_xoffset=0, req_yoffset=0, x=0, y=26,
req_width=17, req_height=20) at PutImage.c:1027
image=<optimized out>, src_x=0, src_y=0, width=17, height=20, dst_x=0,
dst_y=26) at cairo-xlib-surface.c:1357
---Type <return> to continue, or q <return> to quit---c
height=20, width=17, dst_y=26, dst_x=0, src_y=<optimized out>,
src_x=<optimized out>, pattern=0x7fffffffc6b0, op=CAIRO_OPERATOR_OVER,
surface=0xb9a650) at cairo-xlib-surface.c:2403
dst_y=26, dst_x=0, mask_y=0, mask_x=0, src_y=26, src_x=0,
abstract_dst=0xb9a650, mask_pattern=0x0, src_pattern=0x7fffffffc6b0,
op=CAIRO_OPERATOR_OVER) at cairo-xlib-surface.c:2452
src_pattern=0x7fffffffc6b0, mask_pattern=0x0, abstract_dst=0xb9a650,
src_x=0, src_y=26, mask_x=0, mask_y=0, dst_x=0, dst_y=26, width=17,
height=20, clip_region=0x0) at cairo-xlib-surface.c:2415
src=0x7fffffffc6b0, mask=0x0, dst=0xb9a650, src_x=0, src_y=26, mask_x=0,
mask_y=0, dst_x=0, dst_y=26, width=17, height=20, clip_region=0x0)
at cairo-surface.c:1802
traps=0x7fffffffbee0, src=0x7fffffffc6b0, op=CAIRO_OPERATOR_OVER,
dst=0xb9a650) at cairo-surface-fallback.c:762
op=CAIRO_OPERATOR_OVER, dst=0xb9a650, traps=0x7fffffffbee0,
antialias=CAIRO_ANTIALIAS_DEFAULT, clip=0x0, extents=0x7fffffffc600)
at cairo-surface-fallback.c:812
---Type <return> to continue, or q <return> to quit---bt
op=CAIRO_OPERATOR_OVER, source=0x7fffffffc6b0, clip=0x0)
at cairo-surface-fallback.c:935
source=0x7fffffffc6b0, op=CAIRO_OPERATOR_OVER, surface=0xb9a650)
at cairo-surface.c:2027
source=0x7fffffffc6b0, clip=0x7fffffffc7b0) at cairo-surface.c:1993
at cairo-gstate.c:1049
at spice-widget-cairo.c:104
expose=0x7fffffffceb0) at spice-widget-cairo.c:133
expose=0x7fffffffceb0) at spice-widget.c:885
return_value=0x7fffffffca60, n_param_values=<optimized out>,
param_values=0x7fffffffcad0, invocation_hint=<optimized out>,
marshal_data=<optimized out>) at gtkmarshalers.c:86
return_value=0x7fffffffca60, n_param_values=2,
param_values=0x7fffffffcad0, invocation_hint=<optimized out>)
---Type <return> to continue, or q <return> to quit---c
at gclosure.c:777
detail=0, instance=<optimized out>, emission_return=0x7fffffffccb0,
instance_and_params=0x7fffffffcad0) at gsignal.c:3584
signal_id=<optimized out>, detail=0, var_args=<optimized out>)
at gsignal.c:3305
signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3351
event=0x7fffffffceb0) at gtkwidget.c:4999
|
|
|
|
| |
The major == 1 uses RGB colorspace for mjpeg streams.
|
|
|
|
|
|
|
| |
The session assumed it owned a reference to it.
But it didn't get it, and that lead to invalid memory access.
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=802574
|
|
|
|
|
| |
2 places where we should be more carreful with NULL arrays, and we can
avoid potential crashes.
|
|
|
|
|
|
|
|
|
| |
Since the gnome HIG-ifying of usb-device-widget.c, the vbox contains
alignments, which in turn contain a toggle_button, so calling
gtk_toggle_button_set_active directly on the vbox-containers childdren is
wrong.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
With this iteration, all the spice_codegen.py/proto/marshaller
generation has been moved to spice-common.
The spice-common directory will ship spice-protocol, since it's needed
there too to build libspice-common.
Again, make distcheck passes. Build with mingw & fedora linux.
|
|
|
|
|
| |
Always remove shared memory segment of primary surfaces when
destroying its canvas.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The following seems to happen:
- cursor-hide (for all cursor/display channels)
- cursor-set (for all cursor/display channels)
All cursor/display channels receive cursor-set events when the cursor
is changed, however, only current display cursor should be drawn in
server-mode. How to know which display?
So it will wait until cursor-move to draw it in server-mode on the
right display.
In the case of client-mode cursor, it doesn't matter since it will
depend on which client display the pointer is, so it can be changed
immediately.
|
|
|
|
| |
Don't use DIST_SUBDIRS, it's not needed anyway.
|
|
|
|
|
|
|
|
|
|
|
| |
Hide symbol from API to fix pygobject.
Also vapigen chokes on "record" typename
SpiceClientGtk-3.0.gir:32.55-32.55: error: The type name `Gtk.BoxClass' could not be found <type name="Gtk.BoxClass" c:type="GtkBoxClass"/>
This seems to be a bug in symbol lookup in vapigen. Using a struct
typedef solves it.
|
|
|
|
| |
Fix all the unused symbols and a few warnings (a lot left)
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
When the cursor shape is changed, all the cursor channels are
updated. The current code assumed that the "set" of the shape should
show the cursor, but it should stay hidden instead.
Also, when the cursor is hidden, we must invalidate its current
region to redraw display.
Fix: https://bugzilla.redhat.com/show_bug.cgi?id=804308
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We used to gtk_grab_add() after mouse grab to limit the mouse events
to the display. But it isn't necessary if the display has its own
window, since gdk_pointer_grab() will be limited to it.
Note the widget has the keyboard focus & is focused, so this doesn't
affect keyboard events.
However, this allows application to keep global accelerators
functionning if they want to (like virt-viewer with custom key
bindings).
|