Index: player/swfplay.c =================================================================== 49c49,52 < GtkWidget *window, *widget; --- > GtkWidget *window; > GtkWidget *widget; > GdkScreen *screen; > GdkColormap *colormap; 52d54 < gtk_window_set_icon_name (GTK_WINDOW (window), "swfdec"); 56c58,63 < gtk_container_add (GTK_CONTAINER (window), widget); --- > // The widget is already in the event_box container so we need to put the event_box in the container below > gtk_container_add (GTK_CONTAINER (window), widget->parent); > screen = gtk_widget_get_screen(GTK_WIDGET (widget)); > colormap = gdk_screen_get_rgba_colormap(screen); > gtk_widget_set_colormap(window, colormap); > gtk_window_set_icon_name (GTK_WINDOW (window), "swfdec"); 59c66 < g_signal_connect (widget, "notify::has-focus", G_CALLBACK (set_playing), player); --- > g_signal_connect (widget->parent, "notify::has-focus", G_CALLBACK (set_playing), player); 92a100 > gboolean no_decorations = FALSE; 100a109 > { "no-decorations", 'd', 0, G_OPTION_ARG_NONE, &no_decorations, "don't show window frames and decorations", NULL }, 155a165,167 > if (no_decorations) { > gtk_window_set_decorated(GTK_WINDOW(window), FALSE); > } Index: swfdec-gtk/swfdec_gtk_widget.c =================================================================== 41a42,43 > gboolean transparency; /* TRUE if our widget renders itself on the parent window using transparency */ > GtkWidget * event_box; /* For transparent widgets we cannot receive events for the window. So we use this instead */ 50c52,53 < PROP_RENDERER --- > PROP_RENDERER, > PROP_TRANSPARENCY, 52a56,57 > #define TRANSPARENCY_DEFAULT TRUE > 80c85 < swfdec_gtk_widget_motion_notify (GtkWidget *gtkwidget, GdkEventMotion *event) --- > swfdec_gtk_widget_motion_notify (GtkWidget *event_box, GdkEventMotion *event) 82,83c87,90 < SwfdecGtkWidget *widget = SWFDEC_GTK_WIDGET (gtkwidget); < SwfdecGtkWidgetPrivate *priv = widget->priv; --- > GList *children = gtk_container_get_children (GTK_CONTAINER(event_box)); > GtkWidget *gtkwidget = NULL; > SwfdecGtkWidget *widget; > SwfdecGtkWidgetPrivate *priv; 86c93,98 < gdk_window_get_pointer (gtkwidget->window, &x, &y, NULL); --- > children = g_list_first(children); > gtkwidget = children->data; > widget = SWFDEC_GTK_WIDGET (gtkwidget); > priv = widget->priv; > > gdk_window_get_pointer (gtk_widget_get_parent_window(gtkwidget), &x, &y, NULL); 95c107 < swfdec_gtk_widget_leave_notify (GtkWidget *gtkwidget, GdkEventCrossing *event) --- > swfdec_gtk_widget_leave_notify (GtkWidget *event_box, GdkEventCrossing *event) 97,98c109,117 < SwfdecGtkWidget *widget = SWFDEC_GTK_WIDGET (gtkwidget); < SwfdecGtkWidgetPrivate *priv = widget->priv; --- > GList *children = gtk_container_get_children (GTK_CONTAINER(event_box)); > GtkWidget *gtkwidget; > SwfdecGtkWidget *widget; > SwfdecGtkWidgetPrivate *priv; > > children = g_list_first(children); > gtkwidget = children->data; > widget = SWFDEC_GTK_WIDGET (gtkwidget); > priv = widget->priv; 107c126 < swfdec_gtk_widget_button_press (GtkWidget *gtkwidget, GdkEventButton *event) --- > swfdec_gtk_widget_button_press (GtkWidget *event_box, GdkEventButton *event) 109,110c128,136 < SwfdecGtkWidget *widget = SWFDEC_GTK_WIDGET (gtkwidget); < SwfdecGtkWidgetPrivate *priv = widget->priv; --- > GList *children = gtk_container_get_children (GTK_CONTAINER(event_box)); > GtkWidget *gtkwidget; > SwfdecGtkWidget *widget; > SwfdecGtkWidgetPrivate *priv; > > children = g_list_first(children); > gtkwidget = children->data; > widget = SWFDEC_GTK_WIDGET (gtkwidget); > priv = widget->priv; 122c148 < swfdec_gtk_widget_button_release (GtkWidget *gtkwidget, GdkEventButton *event) --- > swfdec_gtk_widget_button_release (GtkWidget *event_box, GdkEventButton *event) 124,125c150,158 < SwfdecGtkWidget *widget = SWFDEC_GTK_WIDGET (gtkwidget); < SwfdecGtkWidgetPrivate *priv = widget->priv; --- > GList *children = gtk_container_get_children (GTK_CONTAINER(event_box)); > GtkWidget *gtkwidget; > SwfdecGtkWidget *widget; > SwfdecGtkWidgetPrivate *priv; > > children = g_list_first(children); > gtkwidget = children->data; > widget = SWFDEC_GTK_WIDGET (gtkwidget); > priv = widget->priv; 164c197 < swfdec_gtk_widget_key_press (GtkWidget *gtkwidget, GdkEventKey *event) --- > swfdec_gtk_widget_key_press (GtkWidget *event_box, GdkEventKey *event) 166,167c199,207 < SwfdecGtkWidget *widget = SWFDEC_GTK_WIDGET (gtkwidget); < SwfdecGtkWidgetPrivate *priv = widget->priv; --- > GList *children = gtk_container_get_children (GTK_CONTAINER(event_box)); > GtkWidget *gtkwidget; > SwfdecGtkWidget *widget; > SwfdecGtkWidgetPrivate *priv; > > children = g_list_first(children); > gtkwidget = children->data; > widget = SWFDEC_GTK_WIDGET (gtkwidget); > priv = widget->priv; 185c225 < swfdec_gtk_widget_key_release (GtkWidget *gtkwidget, GdkEventKey *event) --- > swfdec_gtk_widget_key_release (GtkWidget *event_box, GdkEventKey *event) 187,188c227,235 < SwfdecGtkWidget *widget = SWFDEC_GTK_WIDGET (gtkwidget); < SwfdecGtkWidgetPrivate *priv = widget->priv; --- > GList *children = gtk_container_get_children (GTK_CONTAINER(event_box)); > GtkWidget *gtkwidget; > SwfdecGtkWidget *widget; > SwfdecGtkWidgetPrivate *priv; > > children = g_list_first(children); > gtkwidget = children->data; > widget = SWFDEC_GTK_WIDGET (gtkwidget); > priv = widget->priv; 207c254 < swfdec_gtk_widget_focus_inout (GtkWidget *gtkwidget, GdkEventFocus *focus) --- > swfdec_gtk_widget_focus_inout (GtkWidget *event_box, GdkEventFocus *focus) 209,210c256,259 < SwfdecGtkWidget *widget = SWFDEC_GTK_WIDGET (gtkwidget); < SwfdecGtkWidgetPrivate *priv = widget->priv; --- > GList *children; > GtkWidget *gtkwidget; > SwfdecGtkWidget *widget; > SwfdecGtkWidgetPrivate *priv; 212c261,267 < if (priv->interactive && priv->player) --- > children = gtk_container_get_children (GTK_CONTAINER(event_box)); > children = g_list_first(children); > gtkwidget = children->data; > widget = SWFDEC_GTK_WIDGET (gtkwidget); > priv = widget->priv; > > if (priv->interactive && priv->player) { 213a269 > } 218c274 < swfdec_gtk_widget_focus (GtkWidget *gtkwidget, GtkDirectionType direction) --- > swfdec_gtk_widget_focus (GtkWidget *event_box, GtkDirectionType direction) 220,221c276,284 < SwfdecGtkWidget *widget = SWFDEC_GTK_WIDGET (gtkwidget); < SwfdecGtkWidgetPrivate *priv = widget->priv; --- > GList *children = gtk_container_get_children (GTK_CONTAINER(event_box)); > GtkWidget *gtkwidget; > SwfdecGtkWidget *widget; > SwfdecGtkWidgetPrivate *priv; > > children = g_list_first(children); > gtkwidget = children->data; > widget = SWFDEC_GTK_WIDGET (gtkwidget); > priv = widget->priv; 223c286 < if (!priv->interactive || priv->player == NULL) --- > if (!priv->interactive || priv->player == NULL) { 224a288 > } 257,258c321,322 < SwfdecGtkWidget *widget = SWFDEC_GTK_WIDGET (gtkwidget); < SwfdecGtkWidgetPrivate *priv = widget->priv; --- > SwfdecGtkWidget *widget; > SwfdecGtkWidgetPrivate *priv; 262c326,329 < if (event->window != gtkwidget->window || --- > widget = SWFDEC_GTK_WIDGET (gtkwidget); > priv = widget->priv; > > if (event->window != gtk_widget_get_parent_window(gtkwidget) || 273c340 < cr = gdk_cairo_create (gtkwidget->window); --- > cr = gdk_cairo_create (event->window); 279a347,351 > if (priv->transparency) { > cairo_set_operator (cr, CAIRO_OPERATOR_CLEAR); > cairo_paint (cr); > cairo_set_operator (cr, CAIRO_OPERATOR_OVER); > } 289c361 < cairo_t *crw = gdk_cairo_create (gtkwidget->window); --- > cairo_t *crw = gdk_cairo_create (event->window); 320a393,395 > case PROP_TRANSPARENCY: > g_value_set_boolean (value, priv->transparency); > break; 352a428,430 > case PROP_TRANSPARENCY: > swfdec_gtk_widget_set_transparency (widget, g_value_get_boolean (value)); > break; 363a442,444 > GtkWidget *event_box = priv->event_box; > > G_OBJECT_CLASS (swfdec_gtk_widget_parent_class)->dispose(G_OBJECT(event_box)); 378c459 < swfdec_gtk_widget_size_allocate (GtkWidget *gtkwidget, GtkAllocation *allocation) --- > swfdec_gtk_widget_size_allocate (GtkWidget *event_box, GtkAllocation *allocation) 380,381c461,469 < SwfdecGtkWidget *widget = SWFDEC_GTK_WIDGET (gtkwidget); < SwfdecGtkWidgetPrivate *priv = widget->priv; --- > GList *children = gtk_container_get_children (GTK_CONTAINER(event_box)); > GtkWidget *gtkwidget; > SwfdecGtkWidget *widget; > SwfdecGtkWidgetPrivate *priv; > > children = g_list_first(children); > gtkwidget = children->data; > widget = SWFDEC_GTK_WIDGET (gtkwidget); > priv = widget->priv; 388c476 < gdk_window_move_resize (gtkwidget->window, --- > gdk_window_move_resize (gtk_widget_get_parent_window(gtkwidget), 394c482 < swfdec_gtk_widget_size_request (GtkWidget *gtkwidget, GtkRequisition *req) --- > swfdec_gtk_widget_size_request (GtkWidget *event_box, GtkRequisition *req) 396,397c484,492 < SwfdecGtkWidget * widget = SWFDEC_GTK_WIDGET (gtkwidget); < SwfdecGtkWidgetPrivate *priv = widget->priv; --- > GList *children = gtk_container_get_children (GTK_CONTAINER(event_box)); > GtkWidget *gtkwidget; > SwfdecGtkWidget *widget; > SwfdecGtkWidgetPrivate *priv; > > children = g_list_first(children); > gtkwidget = children->data; > widget = SWFDEC_GTK_WIDGET (gtkwidget); > priv = widget->priv; 418c513 < GdkWindow *window = GTK_WIDGET (widget)->window; --- > GdkWindow *window = gtk_widget_get_parent_window (GTK_WIDGET (widget)); 499c594 < cairo_t *cr = gdk_cairo_create (GTK_WIDGET (widget)->window); --- > cairo_t *cr = gdk_cairo_create (gtk_widget_get_parent_window(GTK_WIDGET (widget))); 512c607 < GdkWindow *window = GTK_WIDGET (widget)->window; --- > GdkWindow *window = gtk_widget_get_parent_window(GTK_WIDGET (widget)); 533c628 < swfdec_gtk_widget_realize (GtkWidget *widget) --- > swfdec_gtk_widget_realize (GtkWidget *event_box) 534a630,632 > GList *children = gtk_container_get_children (GTK_CONTAINER(event_box)); > GtkWidget *gtkwidget; > SwfdecGtkWidget *widget; 538c636,639 < GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED); --- > children = g_list_first(children); > gtkwidget = children->data; > > GTK_WIDGET_SET_FLAGS (gtkwidget, GTK_REALIZED); 541,544c642,645 < attributes.x = widget->allocation.x; < attributes.y = widget->allocation.y; < attributes.width = widget->allocation.width; < attributes.height = widget->allocation.height; --- > attributes.x = gtkwidget->allocation.x; > attributes.y = gtkwidget->allocation.y; > attributes.width = gtkwidget->allocation.width; > attributes.height = gtkwidget->allocation.height; 546c647 < attributes.event_mask = gtk_widget_get_events (widget); --- > attributes.event_mask = gtk_widget_get_events (gtkwidget); 559,561c660,671 < widget->window = gdk_window_new (gtk_widget_get_parent_window (widget), < &attributes, attributes_mask); < gdk_window_set_user_data (widget->window, widget); --- > widget = SWFDEC_GTK_WIDGET (gtkwidget); > > // The widget needs to paint itself > gtk_widget_set_app_paintable(gtkwidget, TRUE); > > // We need to draw on the parents window > gtkwidget->window = gtk_widget_get_parent_window (gtkwidget); > > //gdk_window_set_events (widget->window, attributes_mask); > > // Re-direct events for widget->window to widget > gdk_window_set_user_data (gtkwidget->window, widget); 563,564c673,674 < swfdec_gtk_widget_update_background (SWFDEC_GTK_WIDGET (widget)); < widget->style = gtk_style_attach (widget->style, widget->window); --- > swfdec_gtk_widget_update_background (widget); > gtkwidget->style = gtk_style_attach (gtkwidget->style, gtkwidget->window); 566,567c676,677 < if (SWFDEC_GTK_WIDGET (widget)->priv->player) { < swfdec_gtk_widget_update_cursor (SWFDEC_GTK_WIDGET (widget)); --- > if (widget->priv->player) { > swfdec_gtk_widget_update_cursor (widget); 569c679 < swfdec_gtk_widget_update_renderer (SWFDEC_GTK_WIDGET (widget)); --- > swfdec_gtk_widget_update_renderer (widget); 573c683 < swfdec_gtk_widget_unrealize (GtkWidget *widget) --- > swfdec_gtk_widget_unrealize (GtkWidget *event_box) 575c685,686 < GTK_WIDGET_CLASS (swfdec_gtk_widget_parent_class)->unrealize (widget); --- > GList *children = gtk_container_get_children (GTK_CONTAINER(event_box)); > GtkWidget *gtkwidget; 577c688,693 < swfdec_gtk_widget_update_renderer (SWFDEC_GTK_WIDGET (widget)); --- > children = g_list_first(children); > gtkwidget = children->data; > > GTK_WIDGET_CLASS (swfdec_gtk_widget_parent_class)->unrealize (gtkwidget); > > swfdec_gtk_widget_update_renderer (SWFDEC_GTK_WIDGET (gtkwidget)); 581c697 < swfdec_gtk_widget_map (GtkWidget *gtkwidget) --- > swfdec_gtk_widget_map (GtkWidget *event_box) 582a699,703 > GList *children = gtk_container_get_children (GTK_CONTAINER(event_box)); > GtkWidget *gtkwidget; > > children = g_list_first(children); > gtkwidget = children->data; 589c710 < swfdec_gtk_widget_unmap (GtkWidget *gtkwidget) --- > swfdec_gtk_widget_unmap (GtkWidget *event_box) 591c712,718 < SwfdecGtkWidget *widget = SWFDEC_GTK_WIDGET (gtkwidget); --- > GList *children = gtk_container_get_children (GTK_CONTAINER(event_box)); > GtkWidget *gtkwidget; > SwfdecGtkWidget *widget; > > children = g_list_first(children); > gtkwidget = children->data; > widget = SWFDEC_GTK_WIDGET (gtkwidget); 599c726 < swfdec_gtk_widget_style_set (GtkWidget *gtkwidget, GtkStyle *previous) --- > swfdec_gtk_widget_style_set (GtkWidget *event_box, GtkStyle *previous) 629a757,759 > g_object_class_install_property (object_class, PROP_TRANSPARENCY, > g_param_spec_boolean ("transparency", "transparency", "if widget background should be transparent", > TRANSPARENCY_DEFAULT, G_PARAM_READWRITE)); 631,637d760 < widget_class->realize = swfdec_gtk_widget_realize; < widget_class->unrealize = swfdec_gtk_widget_unrealize; < widget_class->map = swfdec_gtk_widget_map; < widget_class->unmap = swfdec_gtk_widget_unmap; < widget_class->style_set = swfdec_gtk_widget_style_set; < widget_class->size_request = swfdec_gtk_widget_size_request; < widget_class->size_allocate = swfdec_gtk_widget_size_allocate; 639,647d761 < widget_class->button_press_event = swfdec_gtk_widget_button_press; < widget_class->button_release_event = swfdec_gtk_widget_button_release; < widget_class->motion_notify_event = swfdec_gtk_widget_motion_notify; < widget_class->leave_notify_event = swfdec_gtk_widget_leave_notify; < widget_class->key_press_event = swfdec_gtk_widget_key_press; < widget_class->key_release_event = swfdec_gtk_widget_key_release; < widget_class->focus_in_event = swfdec_gtk_widget_focus_inout; < widget_class->focus_out_event = swfdec_gtk_widget_focus_inout; < widget_class->focus = swfdec_gtk_widget_focus; 665c779,826 < GTK_WIDGET_SET_FLAGS (widget, GTK_CAN_FOCUS); --- > priv->transparency = TRANSPARENCY_DEFAULT; > GTK_WIDGET_SET_FLAGS (widget, GTK_COMPOSITE_CHILD); > // You need to send expose events from the parent window to the widget. > // After the next flag the X will not generate these commands anymore > GTK_WIDGET_SET_FLAGS (widget, GTK_NO_WINDOW); > // We need the event box for receiving the events as we have no window anymore. > priv->event_box = gtk_event_box_new(); > GTK_WIDGET_SET_FLAGS (priv->event_box, GTK_CAN_FOCUS); > gtk_container_add (GTK_CONTAINER(priv->event_box), GTK_WIDGET(widget)); > gtk_event_box_set_above_child (GTK_EVENT_BOX(priv->event_box), FALSE); > gtk_widget_add_events(priv->event_box, GDK_EXPOSURE_MASK | > GDK_BUTTON_PRESS_MASK | > GDK_BUTTON_RELEASE_MASK | > GDK_LEAVE_NOTIFY_MASK | > GDK_POINTER_MOTION_MASK | > GDK_POINTER_MOTION_HINT_MASK | > GDK_KEY_PRESS_MASK | > GDK_KEY_RELEASE_MASK | > GDK_FOCUS_CHANGE_MASK); > g_signal_connect (priv->event_box, "realize", G_CALLBACK(swfdec_gtk_widget_realize), NULL); > g_signal_connect (priv->event_box, "unrealize", G_CALLBACK(swfdec_gtk_widget_unrealize), NULL); > g_signal_connect (priv->event_box, "map", G_CALLBACK(swfdec_gtk_widget_map), NULL); > g_signal_connect (priv->event_box, "unmap", G_CALLBACK(swfdec_gtk_widget_unmap), NULL); > g_signal_connect (priv->event_box, "style_set", G_CALLBACK(swfdec_gtk_widget_style_set), NULL); > g_signal_connect (priv->event_box, "size_request", G_CALLBACK(swfdec_gtk_widget_size_request), NULL); > g_signal_connect (priv->event_box, "size_allocate", G_CALLBACK(swfdec_gtk_widget_size_allocate), NULL); > g_signal_connect (priv->event_box, "button_press_event", G_CALLBACK(swfdec_gtk_widget_button_press), NULL); > g_signal_connect (priv->event_box, "button_release_event", G_CALLBACK(swfdec_gtk_widget_button_release), NULL); > g_signal_connect (priv->event_box, "motion_notify_event", G_CALLBACK(swfdec_gtk_widget_motion_notify), NULL); > g_signal_connect (priv->event_box, "leave_notify_event", G_CALLBACK(swfdec_gtk_widget_leave_notify), NULL); > g_signal_connect (priv->event_box, "key_press_event", G_CALLBACK(swfdec_gtk_widget_key_press), NULL); > g_signal_connect (priv->event_box, "key_release_event", G_CALLBACK(swfdec_gtk_widget_key_release), NULL); > g_signal_connect (priv->event_box, "focus_in_event", G_CALLBACK(swfdec_gtk_widget_focus_inout), NULL); > g_signal_connect (priv->event_box, "focus_out_event", G_CALLBACK(swfdec_gtk_widget_focus_inout), NULL); > g_signal_connect (priv->event_box, "focus", G_CALLBACK(swfdec_gtk_widget_focus), NULL); > g_signal_connect (priv->event_box, "expose-event", G_CALLBACK(swfdec_gtk_widget_expose), NULL); > > // If we want transparency we also need rgba colormap > if (gtk_widget_has_screen (GTK_WIDGET(widget))) { > GdkScreen *screen; > GdkColormap *colormap; > > screen = gtk_widget_get_screen (GTK_WIDGET(widget)); > colormap = gdk_screen_get_rgba_colormap(screen); > if (colormap) { > gtk_widget_set_colormap(GTK_WIDGET(widget), colormap); > } > } 683c844 < const SwfdecRectangle *rect, guint n_rects, SwfdecGtkWidget *widget) --- > const SwfdecRectangle *rect, guint n_rects, GtkWidget *event_box) 685c846,849 < SwfdecGtkWidgetPrivate *priv = widget->priv; --- > GList *children = gtk_container_get_children (GTK_CONTAINER(event_box)); > GtkWidget *gtkwidget; > SwfdecGtkWidget *widget; > SwfdecGtkWidgetPrivate *priv; 687a852,859 > children = g_list_first(children); > g_assert(children != NULL); > gtkwidget = children->data; > g_assert(gtkwidget != NULL); > widget = SWFDEC_GTK_WIDGET (gtkwidget); > g_assert(widget != NULL); > priv = widget->priv; > 729c901 < swfdec_gtk_widget_notify_cb (SwfdecPlayer *player, GParamSpec *pspec, SwfdecGtkWidget *widget) --- > swfdec_gtk_widget_notify_cb (SwfdecPlayer *player, GParamSpec *pspec, GtkWidget *event_box) 730a903,909 > GList *children = gtk_container_get_children (GTK_CONTAINER(event_box)); > GtkWidget *gtkwidget; > SwfdecGtkWidget *widget; > > children = g_list_first(children); > gtkwidget = children->data; > widget = SWFDEC_GTK_WIDGET (gtkwidget); 751c930 < int *width, int *height, SwfdecGtkWidget *widget) --- > int *width, int *height, GtkWidget *event_box) 753c932,940 < SwfdecGtkWidgetPrivate *priv = widget->priv; --- > GList *children = gtk_container_get_children (GTK_CONTAINER(event_box)); > GtkWidget *gtkwidget; > SwfdecGtkWidget *widget; > SwfdecGtkWidgetPrivate *priv; > > children = g_list_first(children); > gtkwidget = children->data; > widget = SWFDEC_GTK_WIDGET (gtkwidget); > priv = widget->priv; 760c947 < GdkWindow *window = GTK_WIDGET (widget)->window; --- > GdkWindow *window = gtkwidget->window; 773d959 < GtkWidget *gtkwidget = GTK_WIDGET (widget); 803,805c989,991 < g_signal_connect (player, "invalidate", G_CALLBACK (swfdec_gtk_widget_invalidate_cb), widget); < g_signal_connect (player, "notify", G_CALLBACK (swfdec_gtk_widget_notify_cb), widget); < g_signal_connect (player, "query-size", G_CALLBACK (swfdec_gtk_widget_query_size_cb), widget); --- > g_signal_connect (player, "invalidate", G_CALLBACK (swfdec_gtk_widget_invalidate_cb), priv->event_box); > g_signal_connect (player, "notify", G_CALLBACK (swfdec_gtk_widget_notify_cb), priv->event_box); > g_signal_connect (player, "query-size", G_CALLBACK (swfdec_gtk_widget_query_size_cb), priv->event_box); 808c994 < swfdec_player_set_focus (player, GTK_WIDGET_HAS_FOCUS (GTK_WIDGET (widget))); --- > swfdec_player_set_focus (player, GTK_WIDGET_HAS_FOCUS (GTK_WIDGET (priv->event_box))); 814,816c1000,1002 < g_signal_handlers_disconnect_by_func (priv->player, swfdec_gtk_widget_invalidate_cb, widget); < g_signal_handlers_disconnect_by_func (priv->player, swfdec_gtk_widget_notify_cb, widget); < g_signal_handlers_disconnect_by_func (priv->player, swfdec_gtk_widget_query_size_cb, widget); --- > g_signal_handlers_disconnect_by_func (priv->player, swfdec_gtk_widget_invalidate_cb, priv->event_box); > g_signal_handlers_disconnect_by_func (priv->player, swfdec_gtk_widget_notify_cb, priv->event_box); > g_signal_handlers_disconnect_by_func (priv->player, swfdec_gtk_widget_query_size_cb, priv->event_box); 998a1185,1219 > /** > * swfdec_gtk_widget_set_transparency: > * @widget: a #SwfdecGtkWidget > * @transparency: %TRUE to make the widget background transparent > * > * Sets the widget background to be transparent or not. A transparent widget renders > * itself of its parents window. Widgets are transparent by default. > **/ > void > swfdec_gtk_widget_set_transparency (SwfdecGtkWidget *widget, gboolean transparency) > { > g_return_if_fail (SWFDEC_IS_GTK_WIDGET (widget)); > > widget->priv->transparency = transparency; > swfdec_gtk_widget_update_cursor (widget); > g_object_notify (G_OBJECT (widget), "transparency"); > } > > /** > * swfdec_gtk_widget_get_transparency: > * @widget: a #SwfdecGtkWidget > * > * Queries if the @widget is currently transparent. See > * swfdec_gtk_widget_set_transparency() for details. > * > * Returns: %TRUE if the widget has transparency, %FALSE otherwise. > **/ > gboolean > swfdec_gtk_widget_get_transparency (SwfdecGtkWidget *widget) > { > g_return_val_if_fail (SWFDEC_IS_GTK_WIDGET (widget), FALSE); > > return widget->priv->transparency; > } > Index: swfdec-gtk/swfdec_gtk_widget.h =================================================================== 67a68,70 > void swfdec_gtk_widget_set_transparency (SwfdecGtkWidget * widget, > gboolean transparency); > gboolean swfdec_gtk_widget_get_transparency (SwfdecGtkWidget * widget);