gtk: Fix race between queue_draw and destroy
authorNicolas Dufresne <nicolas.dufresne@collabora.com>
Wed, 15 Jul 2015 18:32:42 +0000 (14:32 -0400)
committerNicolas Dufresne <nicolas.dufresne@collabora.com>
Thu, 16 Jul 2015 21:05:36 +0000 (17:05 -0400)
commit0bc7e9a240dd55eb1b4bc34e730a8a6e28e2de53
treeab70f3073307d240fbeac171777004e2bed33941
parent53a431a3239918cd04763879845e09bc87bb8883
gtk: Fix race between queue_draw and destroy

In GTK dispose can be called before the last ref is reached. This
happens when you close the container window. The dispose will be
explicitly called, and destroyed notify will be fired. This patch
fixes this race by properly tracking the widget state.

In the sink, we now set the widget pointer to NULL, so the widget
will properly get created again if you set your pipeline to NULL
state after the widget was destroy, and set it back to PLAYING.

https://bugzilla.gnome.org/show_bug.cgi?id=751104
ext/gtk/gstgtkglsink.c
ext/gtk/gstgtkglsink.h
ext/gtk/gstgtksink.c
ext/gtk/gtkgstglwidget.c
ext/gtk/gtkgstwidget.c