Background is already being drawn transparent in spice_cairo_draw_event() in spice-widget-cairo.c by calling cairo_set_source_rgba(cr, 0, 0, 0, 0); cairo_fill(cr); there's no need to draw it twice. --- src/spice-widget.c | 30 +----------------------------- 1 file changed, 1 insertion(+), 29 deletions(-) diff --git a/src/spice-widget.c b/src/spice-widget.c index bac9c97..fe8117f 100644 --- a/src/spice-widget.c +++ b/src/spice-widget.c @@ -123,7 +123,6 @@ static void size_allocate(GtkWidget *widget, GtkAllocation *conf, gpointer data) static gboolean draw_event(GtkWidget *widget, cairo_t *cr, gpointer data); static void update_size_request(SpiceDisplay *display); static GdkDevice *spice_gdk_window_get_pointing_device(GdkWindow *window); -static gboolean draw_seamless(GtkWidget *widget, GdkEventExpose *event, gpointer userdata); static void main_seamless_mode_update(SpiceChannel *channel, GParamSpec *pspec, SpiceDisplay *display); static void set_seamless_mode(SpiceChannel *channel, GParamSpec *pspec, SpiceDisplay *display); @@ -3079,22 +3078,6 @@ static void channel_destroy(SpiceSession *s, SpiceChannel *channel, gpointer dat return; } -static gboolean draw_seamless(GtkWidget *widget, GdkEventExpose *event, gpointer userdata) -{ - cairo_t *cr; - - cr = gdk_cairo_create(gtk_widget_get_window(widget)); - - cairo_set_source_rgba(cr, 1.0, 1.0, 1.0, 0.0); - - cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE); - cairo_paint(cr); - - cairo_destroy(cr); - - return FALSE; -} - static void main_seamless_mode_update(SpiceChannel *channel, GParamSpec *pspec, SpiceDisplay *display) @@ -3110,23 +3093,12 @@ static void set_seamless_mode(SpiceChannel *channel, g_object_get(display->priv->main, "seamless-mode", &enabled, NULL); if (enabled) - { - GtkWidget *toplevel = gtk_widget_get_toplevel(GTK_WIDGET(display)); - - g_signal_connect(G_OBJECT(toplevel), "draw", - G_CALLBACK(draw_seamless), NULL); - g_signal_connect(display->priv->main, "notify::seamless-mode-list", G_CALLBACK(main_seamless_mode_update), display); - } else { - g_signal_handlers_disconnect_by_func(display->priv->main, - G_CALLBACK(draw_seamless), - NULL); - + else g_signal_handlers_disconnect_by_func(display->priv->main, G_CALLBACK(main_seamless_mode_update), display); - } } /** -- 2.13.4 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel