b=623380 destroy XtClient child window on unrealize r=stransky
☠☠ backed out by e8c8d9373eba ☠ ☠
authorKarl Tomlinson <karlt+@karlt.net>
Mon, 04 Feb 2013 17:50:21 +1300
changeset 133583 dd103ec4c44ba305cc5a08350e1352a7afcdb8ce
parent 133582 60c254ffc78fc1b3bd6bf7e5b6d5b02335695812
child 133584 a911d160ec6b5a8953093aaad1facd363c62de0d
push id336
push userakeybl@mozilla.com
push dateMon, 17 Jun 2013 22:53:19 +0000
treeherdermozilla-release@574a39cdf657 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersstransky
bugs623380
milestone22.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
@@ -560,16 +560,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