--- gnome-settings-daemon-2.27.1/plugins/mouse/gsd-locate-pointer.c 2009-05-03 14:15:30.000000000 -0400 +++ hacked/plugins/mouse/gsd-locate-pointer.c 2009-06-08 21:54:05.537099156 -0400 @@ -195,6 +195,22 @@ } static void +unset_transparent_shape (GdkWindow *window) +{ + gdk_window_shape_combine_mask (data->window, NULL, 0, 0); +} + +static void +composited_changed (GtkWidget *widget, + GsdLocatePointerData *data) +{ + if (!gtk_widget_is_composited (widget)) + set_transparent_shape (data->window); + else + unset_transparent_shape (data->window); +} + +static void timeline_finished_cb (GsdTimeline *timeline, gpointer user_data) { @@ -317,8 +333,10 @@ data->progress = 0.; - if (!gtk_widget_is_composited (data->widget)) - set_transparent_shape (data->window); + g_signal_connect (data->widget, "composited-changed", + G_CALLBACK (composited_changed), data); + + composited_changed (data->widget, data); gdk_window_show (data->window); move_locate_pointer_window (data, screen);