Commit Graph

1935 Commits

Author SHA1 Message Date
Marc-André Lureau
c075c54729 widget: modify update-area to not require primary surface
If egl display is enabled, use GL scanout geometry to check intersection
with the monitor area. This solves displaying GL display without
software canvas (currently d->area is empty and gl drawing fails)

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Pavel Grunt <pgrunt@redhat.com>
2016-03-24 16:55:58 +01:00
Marc-André Lureau
ec6bfc00f8 main: don't update display timer for unchanged config
With virgl, set_monitor_ready() may be called each time the scanout is
updated to set the monitor area. This will call
spice_main_update_display(), and keep the timer postponed even if the
monitor configuration didn't change. Treat unchanged configuration as a
no-op and keep configuration timer unchanged. This fixes monitor
autoconfig with virgl (when the display is regularly updated).

It also solves/avoids problems with a guest running on wayland when the
"resize-guest" property is TRUE.

Fixes:
https://bugzilla.redhat.com/show_bug.cgi?id=1266484

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2016-03-24 16:55:58 +01:00
Marc-André Lureau
962ebf97e7 widget: update d->ready based on scanout image available
d->ready is updated based on monitor area & canvas. In case of GL
rendering, update it based on monitor area & scanout and add check
before drawing update.

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Pavel Grunt <pgrunt@redhat.com>
2016-03-24 16:55:58 +01:00
Marc-André Lureau
629eb3db57 egl: check and update scanout after egl init
Once the egl/GL context are initialized, check if there is a scanout to
associate to display widget. This solves races when scanout update is
happening before the egl/GL context is ready.

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Pavel Grunt <pgrunt@redhat.com>
2016-03-24 16:55:58 +01:00
Marc-André Lureau
75efdeaeba widget: make gl-scanout and update-monitor-area privately exported
The following changes will call these functions from spice-widget-egl.c

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Pavel Grunt <pgrunt@redhat.com>
2016-03-24 16:55:58 +01:00
Marc-André Lureau
81767eb476 display: return NULL in spice_display_get_gl_scanout()
If there is no valid scanout, return NULL.

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Pavel Grunt <pgrunt@redhat.com>
2016-03-24 16:55:58 +01:00
Marc-André Lureau
804b50fa44 widget: enable egl before updating scanout
The GLArea is realized lazily, when it is made visible in
set_egl_enabled(). The egl context is initialized once the GLArea is
realized. Enable egl before updating the scanout.

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Pavel Grunt <pgrunt@redhat.com>
2016-03-24 16:55:58 +01:00
Marc-André Lureau
ec20a61d68 egl: check context is ready
Add a new GL status field to check if the GL context is ready. This
helps debugging races where GL is called before the context is ready.

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Pavel Grunt <pgrunt@redhat.com>
2016-03-24 16:55:58 +01:00
Marc-André Lureau
f6d351662d widget: remove superflous WIN32 check
The egl call is already inside a X11 conditional block.

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Pavel Grunt <pgrunt@redhat.com>
2016-03-24 16:55:58 +01:00
Victor Toso
e47075093d channel-main: fix leak on volume-sync
7 bytes in 1 blocks are definitely lost in loss record 128 of 10,009
   at 0x4C2A988: calloc (vg_replace_malloc.c:711)
   by 0xB6C3200: g_malloc0 (gmem.c:124)
   by 0x740BD5F: audio_playback_volume_info_cb (channel-main.c:1216)
   by 0xB11D488: g_task_return_now (gtask.c:1107)
   by 0xB11DCBD: g_task_return (gtask.c:1165)
   by 0x742D1F5: spice_pulse_complete_all_async_tasks (spice-pulse.c:1034)
   by 0x8B6B57C: ext_stream_restore_read_cb (ext-stream-restore.c:141)
   by 0x10BA63C0: run_action (pdispatch.c:284)
   by 0x10BA6722: pa_pdispatch_run (pdispatch.c:337)
   by 0x8B6520D: pstream_packet_callback (context.c:338)
   by 0x10BA8D7E: do_read (pstream.c:879)
   by 0x10BAB39A: do_pstream_read_write (pstream.c:189)

7 bytes in 1 blocks are definitely lost in loss record 129 of 10,009
   at 0x4C2A988: calloc (vg_replace_malloc.c:711)
   by 0xB6C3200: g_malloc0 (gmem.c:124)
   by 0x740BFBF: audio_record_volume_info_cb (channel-main.c:1273)
   by 0xB11D488: g_task_return_now (gtask.c:1107)
   by 0xB11DCBD: g_task_return (gtask.c:1165)
   by 0x742D1F5: spice_pulse_complete_all_async_tasks (spice-pulse.c:1034)
   by 0x8B6B57C: ext_stream_restore_read_cb (ext-stream-restore.c:141)
   by 0x10BA63C0: run_action (pdispatch.c:284)
   by 0x10BA6722: pa_pdispatch_run (pdispatch.c:337)
   by 0x8B6520D: pstream_packet_callback (context.c:338)
   by 0x10BA8D7E: do_read (pstream.c:879)
   by 0x10BAB39A: do_pstream_read_write (pstream.c:189)

Acked-by: Christophe Fergeau <cfergeau@redhat.com>
2016-03-24 12:28:20 +01:00
Marc-André Lureau
3390203021 widget: use allocation instead of window size
Since spice-gtk 57df040cc, the SpiceDisplay no longer forces its own
window. Get allocation instead of window size.  This fixes a "top
border" issue in spicy with gtk+ >= 3.19.8.

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Pavel Grunt <pgrunt@redhat.com>
2016-03-23 17:18:43 +01:00
Marc-André Lureau
8d10969828 widget: offset draw updates by widget allocation if necessary
According to gtk_widget_queue_draw_area() documentation:

"The region here is specified in widget coordinates. Widget coordinates
are a bit odd; for historical reasons, they are defined as
widget->window coordinates for widgets that return TRUE for
gtk_widget_get_has_window(), and are relative to widget->allocation.x ,
widget->allocation.y otherwise."

Since spice-gtk 57df040cc, the SpiceDisplay no longer forces its own
window. During gtk+ 3.19.8, gtk stack also no longer use its own
window (commit 9d0e8401). In order to make drawing update resilient to
such changes, add a function applying offset if necessary.

This solves drawing glitches and perceived slowness with spice-gtk git
and gtk+ >= 3.19.8.

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Pavel Grunt <pgrunt@redhat.com>
2016-03-23 17:18:22 +01:00
Pavel Grunt
a8974ed4ce spicy: Remove configure-event callback
It is a leftover - see "Remove GnomeRR code"
commit 30986505ba

Acked-by: Christophe Fergeau <cfergeau@redhat.com>
Acked-by: Marc-André Lureau <mlureau@redhat.com>
2016-03-23 17:15:08 +01:00
Frediano Ziglio
1174c439dc Avoid to access array with negative numbers 2016-03-23 15:51:56 +00:00
Fabiano Fidêncio
e81d97cc00 vmcstream,gtask: Do idle ourself instead of leaving it to GTask's heuristic
Seems that GTask heuristic only makes sense in a non-coroutine case.
After opening a bug[0] on spice-gtk and a few discussions in the mailing
list, seems that is completely fine for coroutine code to deal with the
idle explicitly.

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
Acked-by: Marc-André Lureau <mlureau@redhat.com>
2016-03-22 23:00:33 +01:00
Fabiano Fidêncio
5b008c35c3 vmcstream,gtask: Fix crash when trying to use webdav
Don't try to get the cancellable from a task that is, for sure (ensured
by us), NULL. See the backtrace:

 #0  0x00007ffff29cf250 in g_task_get_cancellable () at /lib64/libgio-2.0.so.0
 #1  0x00007ffff78a9012 in spice_vmc_input_stream_read_all_async (stream=<optimized out>, buffer=0x7070f8, count=8, io_priority=<optimized out>, cancellable=0x7fffcc00a470, callback=0x7ffff788c190 <client_read_cb>, user_data=0x707b30) at vmcstream.c:187
 #2  0x00007ffff788c0ab in start_demux (self=0x707b30) at channel-webdav.c:498
 #3  0x00007ffff2700578 in g_closure_invoke () at /lib64/libgobject-2.0.so.0
 #4  0x00007ffff27135f0 in signal_emit_unlocked_R () at /lib64/libgobject-2.0.so.0
 #5  0x00007ffff271c43c in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
 #6  0x00007ffff788acca in emit_main_context (opaque=0x7fffbfffe880) at gio-coroutine.c:200
 #7  0x00007ffff242bab3 in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
 #8  0x00007ffff242be60 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
 #9  0x00007ffff242c182 in g_main_loop_run () at /lib64/libglib-2.0.so.0
 #10 0x0000000000405df6 in main (argc=<optimized out>, argv=<optimized out>) at spicy.c:1897

It was pointed out during the review and, somehow, missed :-\

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
Signed-off-by: Pavel Grunt <pgrunt@redhat.com>
Acked-by: Victor Toso <victortoso@redhat.com>
2016-03-22 21:18:57 +01:00
Jeremy White
e00995bae3 Include gdk/gdkwayland.h anytime GDK_WINDOWING_WAYLAND is defined.
A specific GTK version check is not appropriate for this particular include.
This fixes compilation on Debian Jessie.

Signed-off-by: Jeremy White <jwhite@codeweavers.com>
2016-03-22 15:17:15 +01:00
Pavel Grunt
6c8df8caa7 Remove extra checks before g_cancellable_disconnect()
If cancellable is NULL or handler_id is 0 the function does nothing.
Acked-by: Victor Toso <victortoso@redhat.com>
2016-03-22 11:39:23 +01:00
Pavel Grunt
ae8f97eb5a usb-device-manager: Remove invalid return annotation
Acked-by: Victor Toso <victortoso@redhat.com>
2016-03-22 11:32:08 +01:00
snir sheriber
d56e64dc30 usbredir_handle_msg: rename data to err_data
To better reflect what this variable is used for and change the declare
location such that it will be declared only if it should
Acked-by: Victor Toso <victortoso@redhat.com>
2016-03-22 11:31:21 +01:00
Fabiano Fidêncio
74a5ef7dcf mingw: Fix build failure due to epoxy/egl.h header
epoxy/egl.h header is not provided by mingw-epoxy package.
Let's avoid egl usage when building using mingw then.

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
Acked-by: Marc-André Lureau <mlureau@redhat.com>
2016-03-21 16:17:31 +01:00
Fabiano Fidêncio
7774b8c0dd channel-usbredir: Fix crash due to a Task returning earlier than expected
g_task_return_error() has been completing the task immediately, not
cleaning up/setting up the device state to STATE_DISCONNECTED. It's been
causing a double free when trying to redirect a device without having
the ACL permissions for doing it. See the backtrace:

 #0  0x00007ffff24dc07d in g_type_check_instance_is_fundamentally_a (type_instance=type_instance@entry=0x14779d0, fundamental_type=fundamental_type@entry=80) at gtype.c:4032
 #1  0x00007ffff24bc447 in g_object_unref (_object=0x14779d0) at gobject.c:3076
 #2  0x00007ffff7bafc2a in connect_cb (gobject=0x87d9a0 [SpiceUsbDeviceManager], res=0x96f830, user_data=0x143e0e0)
     at usb-device-widget.c:485
 #3  0x00007ffff277f5a3 in g_task_return_now (task=0x96f830 [GTask]) at gtask.c:1106
 #4  0x00007ffff277fc4e in g_task_return (task=0x96f830 [GTask], type=<optimized out>) at gtask.c:1164
 #5  0x00007ffff786c277 in spice_usb_device_manager_channel_connect_cb (gobject=0x917940 [SpiceUsbredirChannel], channel_res=0x96f900, user_data=0x96f830) at usb-device-manager.c:1094
 #6  0x00007ffff277f5a3 in g_task_return_now (task=0x96f900 [GTask]) at gtask.c:1106
 #7  0x00007ffff277fc4e in g_task_return (task=0x96f900 [GTask], type=<optimized out>) at gtask.c:1164
 #8  0x00007ffff786699c in spice_usbredir_channel_open_acl_cb (gobject=0xa73b00 [SpiceUsbAclHelper], acl_res=0x96f9d0, user_data=0x917940) at channel-usbredir.c:300
 #9  0x00007ffff277f5a3 in g_task_return_now (task=0x96f9d0 [GTask]) at gtask.c:1106
 #10 0x00007ffff277fc4e in g_task_return (task=0x96f9d0 [GTask], type=<optimized out>) at gtask.c:1164
 #11 0x00007ffff27804d0 in g_task_return_new_error (task=0x96f9d0 [GTask], domain=<optimized out>, code=<optimized out>, format=<optimized out>) at gtask.c:1744
 #12 0x00007ffff786eade in cb_out_watch (channel=0x1488740, cond=G_IO_IN, user_data=0xa73b00) at usb-acl-helper.c:128
 #13 0x00007ffff21b8e3a in g_main_context_dispatch (context=0x647390) at gmain.c:3154
 #14 0x00007ffff21b8e3a in g_main_context_dispatch (context=context@entry=0x647390) at gmain.c:3769
 #15 0x00007ffff21b91d0 in g_main_context_iterate (context=0x647390, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3840
 #16 0x00007ffff21b94f2 in g_main_loop_run (loop=0x13d1ae0) at gmain.c:4034
 #17 0x00007ffff3ca5440 in gtk_dialog_run () at /lib64/libgtk-3.so.0
 #18 0x0000000000406a18 in menu_cb_select_usb_devices (action=0x9d62f0 [GtkAction], data=0x69aef0) at spicy.c:394
 #22 0x00007ffff24d28ff in <emit signal ??? on instance 0x9d62f0 [GtkAction]> (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3439
     #19 0x00007ffff24b77a5 in g_closure_invoke (closure=0xa0d0c0, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x7fffffffcf70, invocation_hint=invocation_hint@entry=0x7fffffffcef0) at gclosure.c:801
     #20 0x00007ffff24c9851 in signal_emit_unlocked_R (node=node@entry=0x63fc10, detail=detail@entry=0, instance=instance@entry=0x9d62f0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffcf70) at gsignal.c:3627
     #21 0x00007ffff24d2530 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffd130) at gsignal.c:3383
 #23 0x00007ffff3bc23b0 in _gtk_action_emit_activate () at /lib64/libgtk-3.so.0
 #27 0x00007ffff24d28ff in <emit signal ??? on instance 0x9a8730 [GtkImageMenuItem]> (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3439
     #24 0x00007ffff24b77a5 in g_closure_invoke (closure=closure@entry=0x6607d0, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x7fffffffd3f0, invocation_hint=invocation_hint@entry=0x7fffffffd370) at gclosure.c:801
     #25 0x00007ffff24c938c in signal_emit_unlocked_R (node=node@entry=0x661050, detail=detail@entry=0, instance=instance@entry=0x9a8730, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffd3f0) at gsignal.c:3557
     #26 0x00007ffff24d2530 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffd5b0) at gsignal.c:3383
 #28 0x00007ffff3e7094e in gtk_widget_activate () at /lib64/libgtk-3.so.0
 #29 0x00007ffff3d4e4f6 in gtk_menu_shell_activate_item () at /lib64/libgtk-3.so.0
 #30 0x00007ffff3d4e824 in gtk_menu_shell_button_release () at /lib64/libgtk-3.so.0
 #31 0x00007ffff3d30fda in _gtk_marshal_BOOLEAN__BOXEDv () at /lib64/libgtk-3.so.0
 #32 0x00007ffff24b79d4 in _g_closure_invoke_va (closure=closure@entry=0x644d10, return_value=return_value@entry=0x7fffffffd900, instance=instance@entry=0x80faa0, args=args@entry=0x7fffffffd9d0, n_params=<optimized out>, param_types=0x644d40) at gclosure.c:864
 #33 0x00007ffff24d1dd3 in g_signal_emit_valist (instance=0x80faa0, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7fffffffd9d0) at gsignal.c:3292
 #34 0x00007ffff24d28ff in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3439
 #35 0x00007ffff3e6e4bc in gtk_widget_event_internal () at /lib64/libgtk-3.so.0
 #36 0x00007ffff3d2e34e in propagate_event () at /lib64/libgtk-3.so.0
 #37 0x00007ffff3d300fc in gtk_main_do_event () at /lib64/libgtk-3.so.0
 #38 0x00007ffff38a8e92 in gdk_event_source_dispatch () at /lib64/libgdk-3.so.0
 #39 0x00007ffff21b8e3a in g_main_context_dispatch (context=0x647390) at gmain.c:3154
 #40 0x00007ffff21b8e3a in g_main_context_dispatch (context=context@entry=0x647390) at gmain.c:3769
 #41 0x00007ffff21b91d0 in g_main_context_iterate (context=0x647390, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3840
 #42 0x00007ffff21b94f2 in g_main_loop_run (loop=0x6e2730) at gmain.c:4034
 #43 0x000000000040b2f9 in main (argc=1, argv=0x7fffffffde48) at spicy.c:1920

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
Acked-by: Pavel Grunt <pgrunt@redhat.com>
2016-03-21 12:21:08 +01:00
Pavel Grunt
5b17818bcd Adjust to Gtk+ 3.10
Dependency since f9a1aad85f

Remove unneeded GTK_CHECK_VERSION guards

Acked-by: Victor Toso <victortoso@redhat.com>
2016-03-18 11:42:44 +01:00
Pavel Grunt
0a9ec4ec01 Adjust to GLib 2.36
Dependency since 8693e7d3f7

Remove glib-compat files and most of GLIB_CHECK_VERSION guards

Acked-by: Victor Toso <victortoso@redhat.com>
2016-03-18 11:42:31 +01:00
Pavel Grunt
23cd3e6041 Move strtok_r from glib-compat to spice-uri
It is not glib specific and it is only used in spice-uri

Acked-by: Victor Toso <victortoso@redhat.com>
2016-03-18 11:42:25 +01:00
Pavel Grunt
c2e48b7c31 spice-util: Fix alignment
Acked-by: Victor Toso <victortoso@redhat.com>
2016-03-18 11:42:17 +01:00
Pavel Grunt
fdeef8e6dd usb-acl-helper: Remove extra check for NULL
g_cancellable_cancel() and g_clear_object() can handle it

Acked-by: Victor Toso <victortoso@redhat.com>
2016-03-18 11:42:08 +01:00
Pavel Grunt
923d74b5a7 spicy: s/Automagic/Automatic/
Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
2016-03-17 08:19:08 +01:00
Pavel Grunt
ff3380d406 spice-display: Remove auto-clipboard notify
It was used to notify the (deprecated) auto-clipboard property of
the SpiceDisplay everytime the SpiceGtkSession emits its auto-clipboard
notify.

The commit 70a00b8fcc removed the property
from SpiceDisplay causing a runtime warning:

GLib-GObject-WARNING **: g_object_notify: object class 'SpiceDisplay' has no property named 'auto-clipboard'
Acked-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
2016-03-17 08:18:37 +01:00
Pavel Grunt
c0c721bbaa display: Lower level of warning for empty monitor config
It is a valid case when a guest requests to turn off monitors, eg:
 xrandr --output Virtual-0 --off

Related:
https://bugzilla.redhat.com/show_bug.cgi?id=1061942

Acked-by: Frediano Ziglio <fziglio@redhat.com>
2016-03-17 08:18:37 +01:00
Marc-André Lureau
3c6b4ae867 build-sys: fix 'Only <spice-client.h> can be included directly' warning
Tests should be allowed to include directly private headers. Set
__SPICE_CLIENT_H_INSIDE__ where necessary or include spice-client.h
where possible.

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2016-03-15 17:11:18 +01:00
Marc-André Lureau
f9a1aad85f Lower gtk+ requirement to 3.10
Make GtkGlArea optional allows to lower gtk+ requirement to
3.10 (required for GtkStack). However, gl display is unsupported on
wayland with gtk+ < 3.16.

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2016-03-15 17:11:14 +01:00
Marc-André Lureau
23c8f7d10d build-sys: remove epoxy from pc requires
libepoxy doesn't need to figure in spice-gtk pkg-config requires, it's a
private dependency.

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2016-03-15 17:11:10 +01:00
Fabiano Fidêncio
f2f9ed4f90 wocky-http-proxy: Use GTask instead of GSimpleAsyncResult
Instead of using GSimpleAsyncResult, use the new GTask API, which is
much more straightforward.

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2016-03-14 22:48:00 +01:00
Fabiano Fidêncio
ef02f447e5 win-usb-driver-install: Use GTask instead of GSimpleAsyncResult
Instead of using GSimpleAsyncResult, use the new GTask API, which is
much more straightforward.

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2016-03-14 22:47:53 +01:00
Fabiano Fidêncio
9d20a84b3c vmcstream: Use GTask instead of GSimpleAsyncResult
Instead of using GSimpleAsyncResult, use the new GTask API, which is
much more straightforward.

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2016-03-14 22:47:49 +01:00
Fabiano Fidêncio
379aac1dc7 usb-device-manager: Use GTask instead of GSimpleAsyncResult
Instead of using GSimpleAsyncResult, use the new GTask API, which is
much more straightforward.

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2016-03-14 22:47:44 +01:00
Fabiano Fidêncio
79ed45373f usb-acl-helper: Use GTask instead of GSimpleAsyncResult
Instead of using GSimpleAsyncResult, use the new GTask API, which is
much more straightforward.

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2016-03-14 22:47:40 +01:00
Fabiano Fidêncio
fe44cc70ed spice-pulse: Use GTask instead of GSimpleAsyncResult
Instead of using GSimpleAsyncResult, use the new GTask API, which is
much more straightforward.

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2016-03-14 22:47:37 +01:00
Fabiano Fidêncio
f8e4ec428a spice-gstaudio: Use GTask instead of GSimpleAsyncResult
Instead of using GSimpleAsyncResult, use the new GTask API, which is
much more straightforward.

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2016-03-14 22:47:33 +01:00
Fabiano Fidêncio
9c7a6df606 spice-channel: Use GTask instead of GSimpleAsyncResult
Instead of using GSimpleAsyncResult, use the new GTask API, which is
much more straightforward.

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2016-03-14 22:47:29 +01:00
Fabiano Fidêncio
0ec8c08da9 smartcard-manager: Use GTask instead of GSimpleAsyncResult
Instead of using GSimpleAsyncResult, use the new GTask API, which is
much more straightforward.

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2016-03-14 22:47:25 +01:00
Fabiano Fidêncio
f0866e141e channel-usbredir: Use GTask instead of GSimpleAsyncResult
Instead of using GSimpleAsyncResult, use the new GTask API, which is
much more straightforward.

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2016-03-14 22:47:21 +01:00
Fabiano Fidêncio
3b130da8fc channel-port: Use GTask instead of GSimpleAsyncResult
Instead of using GSimpleAsyncResult, use the new GTask API, which is
much more straightforward.

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2016-03-14 22:47:16 +01:00
Fabiano Fidêncio
a172e8f115 channel-main: Use GTask instead of GSimpleAsyncResult
Instead of using GSimpleAsyncResult, use the new GTask API, which is
much more straightforward.

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2016-03-14 22:47:11 +01:00
Fabiano Fidêncio
8693e7d3f7 channel-base: Use GTask instead of GSimpleAsyncResult
Instead of using GSimpleAsyncResult, use the new GTask API, which is
much more straightforward.
For using the new GTask API, let's bump GIO (part of GLib) dependency
version to 2.36, which is safe based on major distro support:
- Debian Jessie: glib-2.42
- RHEL-7.1: glib-2.40
- SLES12: glib-2.38
- Ubuntu LTS 14.04: glib-2.40

Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
2016-03-14 22:46:30 +01:00
Marc-André Lureau
6d8ca210d8 gtk: add GtkGLArea
GtkGLArea is the proper modern way to have opengl in an gtk+
application. Unfortunately, it may use various backends and interfaces
to initialize it, but dmabuf image sharing requires egl atm.

This patch keeps using our egl setup on X11, while it uses gtkglarea on
known gdk backend based on egl, such as the wayland one. This brings
wayland support for local gl to spice-gtk.

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2016-03-14 13:48:48 +01:00
Marc-André Lureau
2cb74f4ac1 gtk: use GtkStack
Move the GtkDrawingArea in a GtkStack, so other widgets can be switched
to for the display: the next patch adds a GtkGLArea for an opengl
rendering. One can imagine other display widgets to show text etc..

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2016-03-14 13:48:47 +01:00
Marc-André Lureau
c73950df1f gtk: require gtk+ 3.16
3.16 is the minimal version for GtkGLArea widget, used in following
patches.

Drop conditional epoxy support, as it is now required by gtk+.

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2016-03-14 13:48:45 +01:00
Marc-André Lureau
70a00b8fcc gtk: drop deprecated stuff from spice-gtk
Breaking ABI is a good time to remove deprecated code.

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
2016-03-14 12:02:53 +01:00