From fe61f0f5eecbefc54f56b4e5786c66ef6192f047 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 7 Oct 2009 00:36:47 +0200 Subject: gtk: refresh event->window after dequeing --- src/canberra-gtk-module.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src') 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; -- cgit