b=623380 destroy XtClient child window on unrealize r=stransky
authorKarl Tomlinson <karlt+@karlt.net>
Thu, 03 Jan 2013 09:45:10 +1300
changeset 127241 54501cee764e7ef9675e872c1aa5c39bcded898f
parent 127240 8ed517f540d197fc607cd704bed2d38c5ddab9ea
child 127242 eed2a6f242433d6f701dace4cb54a5ae5d436112
push id297
push userlsblakk@mozilla.com
push dateTue, 26 Mar 2013 17:28:00 +0000
treeherdermozilla-release@64d7b45c34e6 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersstransky
bugs623380
milestone20.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
b=623380 destroy XtClient child window on unrealize r=stransky
widget/gtkxtbin/gtk2xtbin.c
--- a/widget/gtkxtbin/gtk2xtbin.c
+++ b/widget/gtkxtbin/gtk2xtbin.c
@@ -614,16 +614,21 @@ xt_client_create ( XtClient* xtclient ,
                     (XtEventHandler)xt_client_focus_listener, 
                     xtclient);
   XSync(xtclient->xtdisplay, FALSE);
 }
 
 void
 xt_client_unrealize ( XtClient* xtclient )
 {
+  /* Explicitly destroy the child_widget window because this is actually a
+     child of the socket window.  It is not a child of top_widget's window
+     when that is destroyed. */
+  XtUnrealizeWidget(xtclient->child_widget);
+
 #if XlibSpecificationRelease >= 6
   XtUnregisterDrawable(xtclient->xtdisplay,
                        xtclient->top_widget->core.window);
 #else
   _XtUnregisterWindow(xtclient->top_widget->core.window,
                       xtclient->top_widget);
 #endif