summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* display channel: reseting channel capsYonit Halperin2012-05-171-1/+8
|
* main channel: reseting channel capsYonit Halperin2012-05-171-2/+8
|
* Fix not setting channel specific capabilities upon channel resetYonit Halperin2012-05-172-2/+18
| | | | | | | | | | | 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.
* python: fix Spice.Audio bindingMarc-André Lureau2012-05-101-0/+11
| | | | | | | | | | | | | | | | 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
* display: video streaming: add support for frames of different sizesYonit Halperin2012-05-034-17/+97
| | | | | | | | | 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.
* Fix parsing URI queryMarc-André Lureau2012-05-021-5/+3
| | | | | | Do not depend on uninitialized "len" variable to set the query string. https://bugzilla.redhat.com/show_bug.cgi?id=818169
* g_getenv returns a const stringChristophe Fergeau2012-04-271-1/+1
| | | | | | When switching from getenv to g_getenv, 'doms' declaration wasn't changed from char * to const char *, which causes a gcc warning.
* Fix annotations for GrabSequence classDaniel P. Berrange2012-04-272-9/+11
| | | | | | | | 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>
* Replace getenv/setenv with g_getenv/g_setenv for Win32 portabilityDaniel P. Berrange2012-04-261-3/+3
|
* Fix --spice-debug flag on glib >= 2.31Daniel P. Berrange2012-04-251-0/+14
| | | | | | | | 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
* Release v0.12v0.12Marc-André Lureau2012-04-241-0/+13
|
* Lower a few warnings when migration failsMarc-André Lureau2012-04-242-2/+6
|
* Fix multiple problems with URI parsingDaniel P. Berrange2012-04-241-36/+79
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* setsockopt: check for ENOTSUP only if definedUri Lublin2012-04-231-1/+5
| | | | | | For windows (mingw32) ENOTSUP is not defined. Related to 3bfadb8587f59a74d373e26385d348a105c2e425
* Allow to disable CELT at runtimeMarc-André Lureau2012-04-212-3/+6
| | | | | We might want to make it a property, but having an environemnt variable is useful too, to override behaviour.
* build-sys: pyparsing req. moved to spice-commonMarc-André Lureau2012-04-212-11/+1
|
* Fix callback signature for --spice-debug option handlingDaniel P. Berrange2012-04-191-1/+2
| | | | | | | | | 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>
* Clear cache and glz dictionnary on switch-hostMarc-André Lureau2012-04-161-2/+6
| | | | | | 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
* Set new cert-subject when switching hostMarc-André Lureau2012-04-161-3/+6
| | | | https://bugzilla.redhat.com/show_bug.cgi?id=802574
* gtk: scroll event are not received with recent gtk+Marc-André Lureau2012-04-161-1/+2
| | | | Add explicit scroll event mask to make it work again.
* Fix cursor hide not hiding in some casesMarc-André Lureau2012-04-101-7/+11
| | | | | | | | | 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)
* Fix crash when closing while recordingMarc-André Lureau2012-04-061-2/+2
| | | | | | | | 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
* agent: avoid use of alloca for sending large msgMarc-André Lureau2012-04-051-20/+53
| | | | | | | | 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
* autogen.sh: default to --enable-vala when building from gitChristophe Fergeau2012-04-041-5/+2
| | | | | | | | | | 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.
* controller: handle USB redirection messagesChristophe Fergeau2012-04-043-0/+16
|
* autogen.sh: log configure command lineChristophe Fergeau2012-04-041-0/+1
| | | | | Since --enable-vala may or may not be passed to configure, seeing the actual command line that was used is helpful.
* fix build with glib < 2.32Marc-André Lureau2012-04-031-0/+8
| | | | Reported and verified by Nicolas Prochazka
* SpiceDisplay: Fix rounding of mouse motion events with GTK-3.0Hans de Goede2012-04-031-5/+15
| | | | | | | 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>
* SpiceDisplay: Don't try to scale mouse coordinates when we're not scalingHans de Goede2012-04-031-1/+1
| | | | | | | | 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>
* controller: add support for DISABLE_EFFECTS and COLOR_DEPTHYonit Halperin2012-04-033-0/+12
| | | | | | rhbz #787449 Signed-off-by: Yonit Halperin <yhalperi@redhat.com>
* Handle grab-broken eventMarc-André Lureau2012-03-311-1/+18
| | | | | | | | | | 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.
* widget: fix invalid memory ref after channel is distroyedMarc-André Lureau2012-03-312-20/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* mjpeg: fix blue-tinted video stream with old serverMarc-André Lureau2012-03-311-6/+19
| | | | The major == 1 uses RGB colorspace for mjpeg streams.
* session: take pubkey reference in setterMarc-André Lureau2012-03-302-1/+1
| | | | | | | 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
* Be more tolerant on NULL arraysMarc-André Lureau2012-03-302-1/+5
| | | | | 2 places where we should be more carreful with NULL arrays, and we can avoid potential crashes.
* usb-device-widget: Call set_active on the toggle_button, not the alignmentHans de Goede2012-03-291-2/+4
| | | | | | | | | 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>
* usb-acl-helper: add a missing "break"Uri Lublin2012-03-291-0/+1
|
* build-sys: move codegen & proto to spice-commonMarc-André Lureau2012-03-2527-5867/+194
| | | | | | | | | | 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 release shm of primary surfacesMarc-André Lureau2012-03-221-5/+1
| | | | | Always remove shared memory segment of primary surfaces when destroying its canvas.
* controllers: signal when a client is connectedMarc-André Lureau2012-03-212-0/+8
|
* controller: handle SEND_CAD message as a propertyMarc-André Lureau2012-03-211-1/+5
|
* Fix cursor not being shown in client mode in some casesMarc-André Lureau2012-03-211-2/+2
| | | | | | | | | | | | | | | | | 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.
* build-sys: fix make distclean going twice in vapi dirMarc-André Lureau2012-03-201-3/+1
| | | | Don't use DIST_SUBDIRS, it's not needed anyway.
* build-sys: fix compilation of bindingsMarc-André Lureau2012-03-201-6/+6
| | | | | | | | | | | 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.
* doc: gtk-doc cleanupMarc-André Lureau2012-03-2014-111/+78
| | | | Fix all the unused symbols and a few warnings (a lot left)
* Add SPICE_DISABLE_DEPRECATED guardMarc-André Lureau2012-03-206-23/+25
|
* build-sys: improve maintainer cleanMarc-André Lureau2012-03-203-55/+69
|
* build-sys: use new git.mkMarc-André Lureau2012-03-202-10/+35
|
* Hide cursor when it is on a different screen in server modeMarc-André Lureau2012-03-192-16/+17
| | | | | | | | | | | 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
* Do not grab display widgetMarc-André Lureau2012-03-181-1/+1
| | | | | | | | | | | | | 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).