diff options
| author | Lennart Poettering <lennart@poettering.net> | 2009-10-07 00:36:47 +0200 | 
|---|---|---|
| committer | Lennart Poettering <lennart@poettering.net> | 2009-10-07 00:40:30 +0200 | 
| commit | fe61f0f5eecbefc54f56b4e5786c66ef6192f047 (patch) | |
| tree | 22b5b2b67187a7ee04984ce823740705bf5f72a7 | |
| parent | 76b422c1cb1df676d90fc48171e729317d9b8889 (diff) | |
gtk: refresh event->window after dequeing
| -rw-r--r-- | src/canberra-gtk-module.c | 8 | 
1 files changed, 8 insertions, 0 deletions
| diff --git a/src/canberra-gtk-module.c b/src/canberra-gtk-module.c index f9b5463..391c559 100644 --- a/src/canberra-gtk-module.c +++ b/src/canberra-gtk-module.c @@ -392,6 +392,14 @@ static void dispatch_sound_event(SoundEventData *d) {      if (g_object_get_qdata(d->object, disable_sound_quark))          return; +    /* The GdkWindow of the the widget might have changed while this +     * event was queued for us. Make sure to update it from the +     * current one if necessary. */ +    if (d->event && d->event->any.window) { +        g_object_unref(d->event->any.window); +        d->event->any.window = g_object_ref(GTK_OBJECT(gtk_widget_get_window(GTK_WIDGET(d->object)))); +    } +      if (d->signal_id == signal_id_widget_show) {          GdkWindowTypeHint hint; | 
